{"id":80222,"date":"2020-05-04T13:42:18","date_gmt":"2020-05-04T11:42:18","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki"},"modified":"2020-05-04T13:42:18","modified_gmt":"2020-05-04T11:42:18","slug":"museria-deczentralizovannoe-hranilishhe-muzyki","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","title":{"rendered":"Museria \u2014 ruajtje e decentralizuar e muzik\u00ebs","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria \u2014 ruajtje e decentralizuar e muzik\u00ebs\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNj\u00eb her\u00eb, vendosa t\u00eb krijoj nj\u00eb aplikacion p\u00ebr t\u00eb p\u00ebrzgjedhur muzik\u00ebn p\u00ebr vete dhe p\u00ebr ta d\u00ebgjuar n\u00eb sht\u00ebpi\/faqe ose gjat\u00eb st\u00ebrvitjeve, etj. Dhe q\u00eb gjith\u00e7ka t\u00eb funksiononte n\u00eb m\u00ebnyr\u00eb t\u00eb vazhdueshme, me nd\u00ebrhyrjen time minimale. Krijova arkitektur\u00ebn, skicova nj\u00eb prototip dhe n\u00eb fund u p\u00ebrballa me nj\u00eb \"problem t\u00eb vog\u00ebl\". <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nPor nuk ishte e qart\u00eb se nga t'i merrja vet\u00eb skedar\u00ebt e k\u00ebng\u00ebve. N\u00eb k\u00ebt\u00eb moment, VK kishte mbyllur API-n\u00eb, n\u00eb portalet e m\u00ebdha muzikore gjithashtu nuk kishte asgj\u00eb, madje edhe k\u00ebng\u00ebt jepeshin n\u00eb pjes\u00eb, p\u00ebr t\u00eb mos treguar. Kishin mbetur vet\u00ebm disa faqe t\u00eb ve\u00e7anta me shum\u00eb reklama dhe plehra, gjithashtu programe t\u00eb dyshimta dhe opsione \"t\u00eb ndotura\". N\u00eb p\u00ebrgjith\u00ebsi, asnj\u00eb zgjidhje funksionale e mir\u00eb. Sigurisht, mund t\u00eb blej nj\u00eb abonim p\u00ebr ndonj\u00eb muzik\u00eb si Yandex, ose di\u00e7ka tjet\u00ebr. Por prap\u00eb, atje nuk kishte asnj\u00eb API publik t\u00eb hapur dhe nuk kishe qasje n\u00eb muzik\u00eb programatikisht. Disa kompani t\u00eb m\u00ebdha, n\u00eb thelb, kufizuan qasjen e tjer\u00ebve n\u00eb muzik\u00eb. Pse ndodhi k\u00ebshtu? Duke k\u00ebrkuar m\u00eb thell\u00eb, \u00ebsht\u00eb e qart\u00eb se problemi kryesor \u00ebsht\u00eb n\u00eb t\u00eb drejtat e autorit. Zgjidhja aktuale n\u00eb form\u00ebn e abonimeve k\u00ebnaq shum\u00eb autor\u00ebt komercial\u00eb t\u00eb produksioneve muzikore dhe k\u00ebto kompani. Gjithashtu, muzika jo-komerciale dhe ndonj\u00ebher\u00eb komerciale gjithashtu p\u00ebrfshihen n\u00eb list\u00ebn e p\u00ebrgjithshme. Ti ose paguan p\u00ebr gjith\u00e7ka ose nuk d\u00ebgjon fare.<\/p>\n<p>Dhe fillova t\u00eb mendoj se \u00e7far\u00eb t\u00eb b\u00ebj me t\u00eb gjitha k\u00ebto. Si mund t\u00eb organizoj shp\u00ebrndarjen e lir\u00eb t\u00eb muzik\u00ebs? \u00c7far\u00eb do b\u00ebja, n\u00ebse do t\u00eb merresha me krijimin e muzik\u00ebs dhe do t\u00eb doja t\u00eb fitonja nga kjo? A do m\u00eb p\u00eblqente n\u00ebse k\u00ebng\u00ebt e mia do t\u00eb shp\u00ebrndaheshin n\u00eb m\u00ebnyr\u00eb piratike? \u00c7far\u00eb zgjidhje alternative ekziston? <\/p>\n<p>N\u00eb fund, u formuan dy probleme kryesore q\u00eb duhej t\u00eb zgjidheshin:<\/p>\n<ul>\n<li>Organizimi i shp\u00ebrndarjes s\u00eb lir\u00eb t\u00eb muzik\u00ebs me metoda t\u00eb p\u00ebrshtatshme p\u00ebr shumic\u00ebn e njer\u00ebzve, p\u00ebrfshir\u00eb metodologjit\u00eb programatike.<\/li>\n<li>Ofert\u00eb alternative p\u00ebr krijuesit e muzik\u00ebs p\u00ebr t\u00eb fituar<\/li>\n<\/ul>\n<p><\/p>\n<h3>Nj\u00eb depo globale dhe t\u00eb decentralizuar muzikore<\/h3>\n<p>\nFillimisht, p\u00ebrpiqesha t\u00eb gjeja zgjidhje ekzistuese dhe t\u00eb krijoja gjith\u00e7ka mbi k\u00ebt\u00eb baz\u00eb. Pas pak koh\u00ebsh k\u00ebrkimesh, m\u00eb ra n\u00eb sy <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>. Fillova realizimin e ideve t\u00eb mia, por pas disa koh\u00ebsh, zbulova disa probleme kritike n\u00eb k\u00ebt\u00eb zgjidhje:<\/p>\n<ul>\n<li>Ipfs \u2014 nj\u00eb depo p\u00ebr gjith\u00e7ka. K\u00ebtu ka imazhe, muzik\u00eb, video dhe gjith\u00e7ka tjet\u00ebr. T\u00eb themi se \u00ebsht\u00eb nj\u00eb \u00abdepozit\u00eb\u00bb planetare e madhe. Prandaj, kur fillon nodin t\u00ebnd, menj\u00ebher\u00eb ndjen nj\u00ebngarkes\u00eb t\u00eb madhe. Pjesa e makin\u00ebs thjesht nxjerr z\u00eb nga dhimbja. <\/li>\n<li>Nj\u00eb mekaniz\u00ebm nd\u00ebrtimi \u00abmbeturinash\u00bb i pap\u00ebrfunduar. Nuk e di si \u00ebsht\u00eb tani, por n\u00eb at\u00eb moment, n\u00ebse e vendosje n\u00eb konfigurim se doje ta kufizoje hap\u00ebsir\u00ebn n\u00eb dhjet\u00eb gigabajt t\u00eb dh\u00ebnash, kjo nuk do t\u00eb thoshte asgj\u00eb. Hapesira shtrihej, duke injoruar shum\u00eb parametra t\u00eb konfigurimit. N\u00eb fund, duhej t\u00eb kishe nj\u00eb rezerv\u00eb t\u00eb madhe disku, derisa ipfs t\u00eb kuptonte si t\u00eb hiqte gj\u00ebrat e panevojshme.<\/li>\n<li>N\u00eb momentin e p\u00ebrdorimit t\u00eb bibliotek\u00ebs (nuk e di si \u00ebsht\u00eb tani), klienti nuk kishte implementuar timeout-et. Dergoje nj\u00eb k\u00ebrkes\u00eb p\u00ebr t\u00eb marr\u00eb nj\u00eb skedar, dhe n\u00ebse nuk ka, thjesht vjesh. Sigurisht, njer\u00ebzit shpik\u00ebn disa rrug\u00eb alternative q\u00eb pjes\u00ebrisht zgjidhnin problemin, por k\u00ebto ishin zgjidhje t\u00eb p\u00ebrkohshme. K\u00ebto gj\u00ebra duhet t\u00eb ishin gati nga kutia.<\/li>\n<\/ul>\n<p>\nIshte dhe shum\u00eb probleme t\u00eb vogla, p\u00ebrshtypja q\u00eb krijova at\u00ebher\u00eb ishte e qart\u00eb: kjo nuk mund t\u00eb p\u00ebrdoret p\u00ebr nj\u00eb projekt. Un\u00eb vazhdova k\u00ebrkimin p\u00ebr nj\u00eb depo, studioja variante t\u00eb ndryshme, por nuk gjeta asgj\u00eb t\u00eb p\u00ebrshtatshme.<\/p>\n<p>N\u00eb fund, vendosa se ia vlen t\u00eb provoja t\u00eb shkruaja nj\u00eb depo decentralizuar vet\u00eb. Le t\u00eb mos pretendoj\u00eb t\u00eb jet\u00eb nd\u00ebrplanetare, por do t\u00eb zgjidh\u00eb detyr\u00ebn e caktuar.<\/p>\n<p>K\u00ebshtu e arrit\u00ebn <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/spreadable\">spreadable<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/storacle\/\">storacle<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/metastocle\">metastocle<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">museria<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global\">museria-global<\/a><\/noindex>. <\/p>\n<p><b>spreadable <\/b> \u2014 kjo \u00ebsht\u00eb shtresa kryesore, m\u00eb e ul\u00ebt, q\u00eb lejon bashkimin e nodeve n\u00eb rrjet. N\u00eb t\u00eb \u00ebsht\u00eb i inkorporuar nj\u00eb algorit\u00ebm, t\u00eb cilin e kam implementuar pjes\u00ebrisht deri n\u00eb 10000 server\u00eb. Versioni i plot\u00eb i algoritmit \u00ebsht\u00eb shum\u00eb m\u00eb i nd\u00ebrlikuar n\u00eb zbatim dhe do t\u00eb k\u00ebrkonte disa muaj shtes\u00eb (ndoshta edhe m\u00eb shum\u00eb).<\/p>\n<p>Nuk do t\u00eb hyj n\u00eb detaje t\u00eb spreadable n\u00eb k\u00ebt\u00eb artikull, m\u00eb mir\u00eb do t\u00eb shkruaj nj\u00eb t\u00eb ve\u00e7ant\u00eb ndonj\u00ebher\u00eb. K\u00ebtu do t\u00eb theksoj disa ve\u00e7ori:<\/p>\n<ul>\n<li>Punon p\u00ebrmes http\/https.<\/li>\n<li>Mund t\u00eb krijosh nj\u00eb rrjet t\u00eb ve\u00e7ant\u00eb p\u00ebr nj\u00eb detyr\u00eb specifike, gj\u00eb q\u00eb ndjesh\u00ebm do t\u00eb ulej ngarkesa n\u00eb \u00e7do projekt individual, p\u00ebrve\u00e7 n\u00ebse t\u00eb gjitha do t\u00eb ishin n\u00eb nj\u00eb rrjet.<\/li>\n<li>Fillimisht \u00ebsht\u00eb menduar mekanizmi me timeout-et dhe gj\u00ebra t\u00eb tjera t\u00eb vogla. Dhe kjo funksionon p\u00ebr t\u00eb gjitha metodat dhe n\u00eb klient dhe n\u00eb nod. Mund t\u00eb menaxhosh parametrat fleksib\u00ebl nga aplikacioni yt.<\/li>\n<li>Biblioteka \u00ebsht\u00eb shkruar n\u00eb nodejs. Problemet me performanc\u00ebn e grumbullit kompensohen nga natyra e decentralizuar. Ngarkesa mund t\u00eb \"shp\u00ebrndahet\" duke rritur numrin e nyjeve. N\u00eb vend t\u00eb k\u00ebsaj, ka shum\u00eb p\u00ebrfitime: nj\u00eb komunitet t\u00eb madh, thjesht\u00ebsi dhe leht\u00ebsi n\u00eb pun\u00eb, klient izomorfik, munges\u00eb e var\u00ebsive t\u00eb jashtme, etj.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 \u00ebsht\u00eb nj\u00eb sloj, q\u00eb trash\u00ebgohet nga spreadable, i cili lejon ruajtjen e skedar\u00ebve n\u00eb rrjet. \u00c7do skedar ka nj\u00eb hash sipas p\u00ebrmbajtjes, me t\u00eb cilin mund t\u00eb merret m\u00eb von\u00eb. Skedar\u00ebt nuk ndahen n\u00eb blloqe, por ruhen t\u00ebr\u00ebsisht.<\/p>\n<p><b>metastocle <\/b> \u2014 sloj q\u00eb trash\u00ebgohet nga spreadable, i cili lejon ruajtjen e t\u00eb dh\u00ebnave n\u00eb rrjet, por jo t\u00eb skedar\u00ebve. Nd\u00ebrfaqja \u00ebsht\u00eb e ngjashme me databazat nosql. Mund, p\u00ebr shembull, t\u00eb shtosh nj\u00eb skedar n\u00eb storacle, t\u00eb marr\u00ebsh hash-in e tij dhe ta regjistrosh n\u00eb metastocle lidhur me di\u00e7ka.<\/p>\n<p><b>museria<\/b> \u2014 trash\u00ebgohet nga storacle dhe metastocle. Ky sloj \u00ebsht\u00eb p\u00ebrgjegj\u00ebs drejtp\u00ebrdrejt p\u00ebr ruajtjen e muzik\u00ebs. Depoja punon vet\u00ebm me skedar\u00eb mp3 dhe etiketat id3. <\/p>\n<p>Si \"\u00e7el\u00ebsi\" p\u00ebr k\u00ebng\u00ebn p\u00ebrdoret emri i saj i plot\u00eb n\u00eb form\u00ebn <b>Interpretuesi (TPE1) \u2014 Titulli (TIT2)<\/b>. P\u00ebr shembull:<\/p>\n<ul>\n<li>Brimstone \u2014 The Burden<\/li>\n<li>Hi-rez \u2014 Lost My Way (feat. Emilio Rojas, Dani Devinci)<\/li>\n<\/ul>\n<p>\nP\u00ebr t\u00eb m\u00ebsuar sa m\u00eb detajisht si formohen titujt e k\u00ebng\u00ebve, mund t\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">k\u00ebtu<\/a><\/noindex>. Duhet t\u00eb shikosh funksionin <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>Nj\u00eb p\u00ebrputhje sipas \u00e7el\u00ebsave konsiderohet nj\u00eb p\u00ebrqindje e caktuar e caktuar n\u00eb cil\u00ebsimet e nyj\u00ebs. P\u00ebr shembull, vlera 0.85 do t\u00eb thot\u00eb se n\u00ebse funksioni i krahasimit t\u00eb \u00e7el\u00ebsave (titujve t\u00eb k\u00ebng\u00ebve) prej d\u00ebshmoi ngjashm\u00ebri m\u00eb shum\u00eb se 85%, at\u00ebher\u00eb kjo \u00ebsht\u00eb e nj\u00ebjta k\u00ebng\u00eb.<\/p>\n<p>Algoritmi i p\u00ebrcaktimit t\u00eb ngjashm\u00ebris\u00eb \u00ebsht\u00eb po aty, n\u00eb funksionin <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>Cover-i p\u00ebr k\u00ebng\u00ebn, p\u00ebr marrjen e m\u00ebvonshme, gjithashtu lidhet p\u00ebrmes etiketave (<b>APIC<\/b>). N\u00eb utilitetet (utils) ka t\u00eb gjitha metodat e nevojshme p\u00ebr marrjen dhe p\u00ebrpunimin e etiketimeve.<\/p>\n<p>Nj\u00eb shembull i pun\u00ebs me depot p\u00ebrmes klientit mund t\u00eb shihet n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">readme<\/a><\/noindex>.<\/p>\n<blockquote><p>T\u00eb gjitha slojrat e m\u00ebsip\u00ebrme jan\u00eb t\u00eb vet\u00ebq\u00ebndrueshme dhe mund t\u00eb p\u00ebrdoren ve\u00e7mas si slojra m\u00eb t\u00eb ulta p\u00ebr projekte t\u00eb tjera. P\u00ebr shembull, tashm\u00eb ka mendim p\u00ebr t\u00eb b\u00ebr\u00eb nj\u00eb sloj p\u00ebr ruajtjen e librave.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 \u00ebsht\u00eb nj\u00eb git-repozitor i konfiguruar tashm\u00eb p\u00ebr t\u00eb nisur nyj\u00ebn tuaj n\u00eb rrjetin global t\u00eb muzik\u00ebs. E klononi, <b>npm i &amp;&amp; npm<\/b> start dhe n\u00eb thelb \u00ebsht\u00eb gjith\u00e7ka. Mund t\u00eb konfiguroni m\u00eb n\u00eb detaje, ta nisni n\u00eb docker etj. Informacione t\u00eb detajuara ka n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global#museria-global-storage-alpha-\">GitHub<\/a><\/noindex>.<\/p>\n<p>Kur repozitoriumi p\u00ebrdit\u00ebsohet, duhet t\u00eb p\u00ebrdit\u00ebsohet edhe nyja juaj. N\u00ebse ndryshon numri i versionit t\u00eb madh ose t\u00eb vog\u00ebl, at\u00ebher\u00eb kjo veprim \u00ebsht\u00eb e domosdoshme, p\u00ebrndryshe nyjat e vjetra do t\u00eb injorohen nga rrjeti.<\/p>\n<p>Mund t\u00eb punoni me k\u00ebng\u00ebt manualisht dhe n\u00eb m\u00ebnyr\u00eb programore. \u00c7do nyj\u00eb aktivizon nj\u00eb server p\u00ebr detyra t\u00eb ndryshme. P\u00ebrfshir\u00eb, kur vizitoni endpoint-in e paracaktuar, do t\u00eb merrni nj\u00eb nd\u00ebrfaqe p\u00ebr t\u00eb punuar me muzik\u00ebn. P\u00ebr shembull, mund t\u00eb shkoni n\u00eb <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">nyjen rr\u00ebnjore<\/a><\/noindex> (linku mund t\u00eb mos jet\u00eb m\u00eb aktual m\u00eb von\u00eb, nyjat hyr\u00ebse mund t\u00eb merren gjithashtu n\u00eb <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">telegram<\/a><\/noindex>, ose t\u00eb shihni p\u00ebrdit\u00ebsimet n\u00eb GitHub).<\/p>\n<p>K\u00ebshtu mund t\u00eb k\u00ebrkoni dhe ngarkoni k\u00ebng\u00ebt n\u00eb depo. Ngarkimi i k\u00ebng\u00ebve mund t\u00eb ndodh\u00eb n\u00eb dy m\u00ebnyra: normale dhe t\u00eb moderuara. M\u00ebnyra e dyt\u00eb do t\u00eb thot\u00eb se puna udh\u00ebhiqet nga nj\u00eb person dhe jo nga nj\u00eb program. Dhe n\u00ebse e vendosni k\u00ebt\u00eb shenj\u00eb gjat\u00eb shtimit, do t\u00eb duhet t\u00eb zgjidhni kap\u00e7en. K\u00ebng\u00ebt mund t\u00eb shtohen me prioritete -1, 0 ose 1. Prioriteti 1 mund t\u00eb vendoset vet\u00ebm n\u00eb m\u00ebnyr\u00ebn e moderuar. Prioritetet jan\u00eb t\u00eb nevojshme p\u00ebr t\u00eb ndihmuar depon n\u00eb marrjen e vendimeve m\u00eb efikase kur p\u00ebrpiqeni t\u00eb z\u00ebvend\u00ebsoni nj\u00eb k\u00ebng\u00eb ekzistuese me nj\u00eb t\u00eb re. Sa m\u00eb i madh t\u00eb jet\u00eb prioriteti, aq m\u00eb shum\u00eb mund\u00ebsi keni q\u00eb t\u00eb z\u00ebvend\u00ebsoni skedarin ekzistues. Kjo ndihmon n\u00eb luftimin e spam-it dhe rrit cil\u00ebsin\u00eb e k\u00ebng\u00ebve t\u00eb ngarkuara. <\/p>\n<p>N\u00ebse filloni t\u00eb shtoni k\u00ebng\u00eb n\u00eb depo, p\u00ebrpiquni t\u00eb bashk\u00ebngjitni edhe imazhe (cover), megjith\u00ebse ky fush\u00eb nuk \u00ebsht\u00eb e detyrueshme. N\u00eb 99% t\u00eb rasteve, imazhet e para n\u00eb Google sipas emrave t\u00eb k\u00ebng\u00ebve jan\u00eb kopertinat e albumeve.<\/p>\n<p>Si ndodh teknikisht shtimi i skedar\u00ebve, n\u00eb dy fjal\u00eb:<\/p>\n<ul>\n<li>Klienti merr adres\u00ebn e nj\u00eb nyje t\u00eb lir\u00eb, e cila p\u00ebr nj\u00eb koh\u00eb t\u00eb caktuar do t\u00eb b\u00ebhet koordinatori.<\/li>\n<li>Aktivizohet funksioni i shtimit t\u00eb k\u00ebng\u00ebs (nga nj\u00eb person ose nga kodi), pranohet nj\u00eb k\u00ebrkes\u00eb p\u00ebr shtim n\u00eb endpoint-in e koordinatori.<\/li>\n<li>Koordinatori llogarit se sa kopje duhet t\u00eb ruhen (parametr i konfiguruesh\u00ebm).<\/li>\n<li>K\u00ebrkohen nyjat m\u00eb t\u00eb p\u00ebrshtatshme p\u00ebr ruajtje.<\/li>\n<li>Skedari, direkt, shkon n\u00eb k\u00ebto nyja. <\/li>\n<\/ul>\n<p>\nSi ndodh teknikisht marrja e skedar\u00ebve:<\/p>\n<ul>\n<li>Klienti merr adres\u00ebn e nj\u00eb nyje t\u00eb lir\u00eb, e cila p\u00ebr nj\u00eb koh\u00eb t\u00eb caktuar do t\u00eb b\u00ebhet koordinatori.<\/li>\n<li>Aktivizohet funksioni i marrjes s\u00eb k\u00ebng\u00ebs (nga nj\u00eb person ose nga kodi), pranohet nj\u00eb k\u00ebrkes\u00eb p\u00ebr marrje n\u00eb endpoint-in e koordinatori.<\/li>\n<li>Koordinatori kontrollon n\u00ebse linku \u00ebsht\u00eb n\u00eb cache. N\u00ebse \u00ebsht\u00eb k\u00ebshtu dhe \u00ebsht\u00eb funksional, ai menj\u00ebher\u00eb kthehet te klienti, p\u00ebrndryshe nyjat pyeten p\u00ebr t\u00eb gjetur n\u00ebse e kan\u00eb.<\/li>\n<li>Po shkarkohet skedari nga lidhja, n\u00ebse nj\u00eb e till\u00eb \u00ebsht\u00eb gjetur. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternativat p\u00ebr krijuesit e muzik\u00ebs<\/h3>\n<p>\nNdonj\u00ebher\u00eb m\u00eb ka interesuar si mund t\u00eb vler\u00ebsohet objektivisht \u00e7mimi i shum\u00eb veprave krijuese? Pse, p\u00ebr shembull, nj\u00eb person e nxjerr albumin e tij muzikor p\u00ebr 10$? Apo p\u00ebr 20$ ose 100$. Ku \u00ebsht\u00eb algoritmi? Kur, p\u00ebr shembull, flasim p\u00ebr ndonj\u00eb produkt fizik, ose madje p\u00ebr shum\u00eb lloje sh\u00ebrbimesh, mund t\u00eb llogarisim s\u00eb paku kosto dhe t\u00eb fillojm\u00eb nga aty. <\/p>\n<p>Ok, le t\u00eb themi se \u00e7mimi \u00ebsht\u00eb 10$. A \u00ebsht\u00eb kjo nj\u00eb strategji efektive? Le t\u00eb themi se e kam d\u00ebgjuar albumin diku ose nj\u00eb k\u00ebng\u00eb prej tij dhe vendosa t\u00eb kontribuoj. Por p\u00ebr ndjenjat dhe mund\u00ebsit\u00eb e mia, 3$ jan\u00eb maksimumi q\u00eb mund t\u00eb jap. \u00c7far\u00eb duhet b\u00ebr\u00eb n\u00eb k\u00ebt\u00eb rast? M\u00eb shum\u00eb gjasa nuk do t\u00eb b\u00ebj asgj\u00eb, ashtu si shumica e njer\u00ebzve. <\/p>\n<p>Duke vendosur nj\u00eb \u00e7mim t\u00eb fiksuar p\u00ebr pun\u00ebn krijuese, n\u00eb fakt po e kufizoni veten, duke mos lejuar nj\u00eb num\u00ebr m\u00eb t\u00eb madh njer\u00ebzish t\u00eb d\u00ebrgojn\u00eb ndihma m\u00eb t\u00eb vogla q\u00eb n\u00eb p\u00ebrllogaritje mund t\u00eb jen\u00eb m\u00eb t\u00eb r\u00ebnd\u00ebsishme se ata q\u00eb do t\u00eb blejn\u00eb sipas \u00e7mimit q\u00eb keni vendosur. M\u00eb duket se krijimtaria \u00ebsht\u00eb nj\u00eb fush\u00eb ku donacionet duhet t\u00eb jen\u00eb prioritet. P\u00ebr k\u00ebt\u00eb nevojiten:<\/p>\n<ul>\n<li>T\u00eb m\u00ebsojm\u00eb njer\u00ebzit t\u00eb fal\u00ebnderojn\u00eb pik\u00ebrisht n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb. Krijuesit vet\u00eb duhet ta tregojn\u00eb qart\u00eb se d\u00ebshirojn\u00eb t\u00eb marrin donacione, t\u00eb shtojn\u00eb lidhje p\u00ebr metoda t\u00eb ndryshme pagesash kudo, etj.<\/li>\n<li>Duhet t\u00eb krijohen m\u00eb shum\u00eb mekanizma p\u00ebr t\u00eb thjeshtuar dhe p\u00ebrforcuar k\u00ebto procese. P\u00ebr shembull, t\u00eb krijohet nj\u00eb sit global ku mund t\u00eb d\u00ebrgohen donacione p\u00ebr krijime p\u00ebrmes lidhjeve t\u00eb autor\u00ebve.\n<p>Le t\u00eb themi se lidhja \u00ebsht\u00eb rreth k\u00ebsaj: <\/p>\n<p><b><code>http:\/\/someartistsdonationsite.site\/category\/artist?external-info<\/code><\/b><\/p>\n<p>N\u00ebse e ngushtojm\u00eb p\u00ebr muzikant\u00ebt, at\u00ebher\u00eb:<\/p>\n<p><b><code>http:\/\/someartistsdonationsite.com\/music\/miyagi?song=blabla<\/code><\/b><\/p>\n<p>Krijuesi duhet t\u00eb verifikoj\u00eb emrin e tij dhe t\u00eb lidhet me t\u00eb.<\/p>\n<p>N\u00eb klientin museria, t\u00eb shtojm\u00eb funksionin e gjenerimit t\u00eb nj\u00eb lidhjeje t\u00eb till\u00eb, dhe t\u00eb gjitha projektet q\u00eb p\u00ebrdorin ruajtjen, mund t\u00eb vendosin n\u00eb faqet e tyre\/aplikacionet butona p\u00ebr donacione me k\u00ebto lidhje pran\u00eb k\u00ebng\u00ebve. P\u00ebrdoruesit kan\u00eb mund\u00ebsi t\u00eb b\u00ebjn\u00eb donacione shum\u00eb shpejt dhe leht\u00eb. Sigurisht, ky qasje mund t\u00eb p\u00ebrdoret n\u00eb \u00e7do projekt dhe kategori krijimi, jo vet\u00ebm p\u00ebrmes ruajtjes.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Pse, pik\u00ebrisht ti, ruajtja muzikore, dhe si mund t\u00eb marr\u00ebsh pjes\u00eb n\u00eb k\u00ebt\u00eb?<\/h3>\n<p><\/p>\n<ul>\n<li>N\u00ebse po punon n\u00eb nj\u00eb projekt q\u00eb ka t\u00eb b\u00ebj\u00eb me muzik\u00ebn, ose po planifikon t\u00eb krijosh nj\u00eb t\u00eb till\u00eb, at\u00ebher\u00eb p\u00ebr k\u00ebt\u00eb gjith\u00e7ka \u00ebsht\u00eb menduar. Mund t\u00eb p\u00ebrdor\u00ebsh museria p\u00ebr t\u00eb ruajtur dhe marr\u00eb k\u00ebng\u00eb, duke rritur rrjedh\u00ebn e k\u00ebng\u00ebve n\u00eb internet. N\u00ebse, p\u00ebr m\u00eb tep\u00ebr, ke mund\u00ebsi t\u00eb ngrish dhe mbash t\u00eb pakt\u00ebn nj\u00eb nod t\u00ebndin, kjo do t\u00eb ishte kontribuimi m\u00eb i mir\u00eb p\u00ebr zhvillimin e rrjetit.<\/li>\n<li>Ndoshta je gati t\u00eb marr\u00ebsh nj\u00eb rol tjet\u00ebr mbi vete: t\u00eb ndihmosh me kodin, ose t\u00eb plot\u00ebsosh dhe moderosh baz\u00ebn, t\u00eb p\u00ebrhap\u00ebsh informacionin p\u00ebr projektin tek njohurit e tu, etj.<\/li>\n<li>Mund t\u00eb t\u00eb p\u00eblqej\u00eb ideja dhe je gati t\u00eb ndihmosh financiarisht, q\u00eb gjith\u00e7ka t\u00eb jetoj\u00eb dhe t\u00eb zhvillohet. Sa m\u00eb shum\u00eb nod, aq m\u00eb shum\u00eb k\u00ebng\u00eb.<\/li>\n<li>Ose, ndoshta, n\u00eb nj\u00eb moment t\u00eb caktuar do t\u00eb t\u00eb nevojitet t\u00eb gjesh dhe shkarkosh nj\u00eb k\u00ebng\u00eb. Mund ta b\u00ebsh k\u00ebt\u00eb shum\u00eb leht\u00eb, p\u00ebr shembull, p\u00ebrmes <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">botit t\u00eb Telegramit<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nProjekti \u00ebsht\u00eb aktualisht n\u00eb faz\u00ebn m\u00eb t\u00eb hershme. Nj\u00eb rrjet testimi \u00ebsht\u00eb aktiv, nodet mund t\u00eb ribashkohen shpesh, k\u00ebrkojn\u00eb p\u00ebrdit\u00ebsime, etj. N\u00eb rast se nuk ka probleme kritike gjat\u00eb periudh\u00ebs s\u00eb vler\u00ebsimit, ky rrjet do t\u00eb transformohet n\u00eb at\u00eb kryesor.<\/p>\n<p>T\u00eb shikosh informacionin p\u00ebr nodin nga jasht\u00eb: numri i k\u00ebng\u00ebve, hap\u00ebsira e lir\u00eb, etj., mund t\u00eb b\u00ebhet p\u00ebrmes nj\u00eb lidhjeje t\u00eb formatit <b><code>http:\/\/node-address\/status<\/code><\/b> ose <b><code>http:\/\/node-address\/status?pretty<\/code><\/b><\/p>\n<p>Kontaktet e mia:<\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/ortex\">@ortex<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"mailto:mywebstreet@gmail.com\">mywebstreet@gmail.com<\/a><\/noindex>\n<\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">Grupi n\u00eb Telegram n\u00eb anglisht.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">Po ashtu, faqja e internetit, p\u00ebrmes s\u00eb cil\u00ebs lindi gjith\u00eb kjo ide.<\/a><\/noindex><\/li>\n<\/ul>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/495058\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0431\u0438\u0440\u0430\u0442\u044c \u043c\u0443\u0437\u044b\u043a\u0443 \u0434\u043b\u044f \u0441\u0435\u0431\u044f \u0438 \u0441\u043b\u0443\u0448\u0430\u0442\u044c \u0434\u043e\u043c\u0430\/\u043d\u0430 \u0443\u043b\u0438\u0446\u0435\/\u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u043a\u0430\u0445 \u0438.\u0442.\u0434. \u0418 \u0447\u0442\u043e\u0431\u044b \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e \u0432 \u043f\u043e\u0442\u043e\u043a\u0435, \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u043c\u043e\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u0438\u0435\u043c. \u041f\u0440\u0438\u0434\u0443\u043c\u0430\u043b \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u043d\u0430\u0431\u0440\u043e\u0441\u0430\u043b \u043f\u0440\u043e\u0442\u043e\u0442\u0438\u043f \u0438 \u0432 \u0438\u0442\u043e\u0433\u0435 \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0441\u044f \u0441 \u043e\u0434\u043d\u043e\u0439 \u201c\u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439\u201d. \u0410 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e \u043e\u0442\u043a\u0443\u0434\u0430 \u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u0438 \u0444\u0430\u0439\u043b\u044b \u043f\u0435\u0441\u0435\u043d. \u041a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u043c\u0435\u043d\u0442\u0443 \u0432\u043a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 \u0443\u0436\u0435 \u0437\u0430\u043a\u0440\u044b\u043b\u0430 api, \u043d\u0430 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043c\u0443\u0437\u044b\u043a\u0430\u043b\u044c\u043d\u044b\u0445 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":80223,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-80222","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47Museria \u2014 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043c\u0443\u0437\u044b\u043a\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-05-04T11:42:18+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-05-04T11:42:18+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Museria \u2014 nj\u00eb depo e decentralizuar p\u00ebr muzik\u00ebn | ProHoster","description":"Nj\u00eb her\u00eb vendosa t\u00eb shkruaj nj\u00eb aplikacion, p\u00ebr t\u00eb.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47Museria \u2014 \u0434\u0435\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u043c\u0443\u0437\u044b\u043a\u0438 | ProHoster","og:description":"\u0421\u043e\u0431\u0440\u0430\u043b\u0441\u044f \u044f \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0447\u0442\u043e\u0431\u044b.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-05-04T11:42:18+00:00","article:modified_time":"2020-05-04T11:42:18+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"80222","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:22:48","updated":"2022-10-08 10:56:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/80222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=80222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/80222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/80223"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=80222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=80222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=80222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}