{"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\/hr\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","title":{"rendered":"Museria \u2014 decentralizirano skladi\u0161te glazbe","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria \u2014 decentralizirano skladi\u0161te glazbe\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJednom sam odlu\u010dio napisati aplikaciju za odabir glazbe koju bih slu\u0161ao kod ku\u0107e, vani, tijekom treninga itd. I da sve to radi u pozadini, s minimalnim mojim sudjelovanjem. Smislio sam arhitekturu, skicirao prototip i na kraju se suo\u010dio s jednim \"malim problemom\". <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAli nije bilo jasno odakle uzeti same datoteke pjesama. Do tog trenutka, VKontakte je ve\u0107 zatvorio API, na velikim glazbenim portalima tako\u0111er nema ni\u0161ta, \u010dak se i pjesme isporu\u010duju u komadima, kako ih ne bi parsirali. Ostali su samo neki odvojeni site-ovi s puno reklama i sme\u0107a, razne sumnjive programe za grabljenje i druge \"prljave\" opcije. Uglavnom, nijedno valjano dobro rje\u0161enje. Naravno, moglo bi se kupiti pretplatu na neku Yandex glazbu ili sli\u010dno. Ali opet, nigdje nema otvorenog javnog API-ja i nema\u0161 pristup glazbi programatski. Nekoliko velikih kompanija, u su\u0161tini, ograni\u010dilo je drugim pristup glazbi. Za\u0161to se to uop\u0107e dogodilo? Kada smo dublje istra\u017eili, postalo je jasno da je osnovni problem u autorskim pravima. Trenutno rje\u0161enje u obliku pretplata zadovoljava mnoge komercijalne autore glazbenih djela i te iste kompanije. U isto vrijeme, nekomercijalna i uvjetno komercijalna glazba tako\u0111er ulaze u op\u0107i popis. Ili pla\u0107a\u0161 za sve ili ne slu\u0161a\u0161 ni\u0161ta.<\/p>\n<p>I po\u010deo sam razmi\u0161ljati \u0161to u\u010diniti s tim svime. Kako organizirati slobodno \u0161irenje glazbe? \u0160to bih radio da se sam bavim stvaranjem glazbe i \u017eelio bih zara\u0111ivati na tome? Bi li mi se svidjelo da se moje pjesme po\u010dnu \u0161irenjem piratski? Koje alternativno rje\u0161enje uop\u0107e postoji? <\/p>\n<p>Na kraju su se stvorila dva osnovna problema koja treba rije\u0161iti:<\/p>\n<ul>\n<li>Organizacija slobodnog \u0161irenja glazbe na na\u010din koji je prikladan ve\u0107ini ljudi, uklju\u010duju\u0107i programske metode.<\/li>\n<li>Ponuda alternativa kreatorima glazbe za zaradu<\/li>\n<\/ul>\n<p><\/p>\n<h3>Globalno decentralizirano skladi\u0161te glazbe<\/h3>\n<p>\nIsprva sam poku\u0161ao prona\u0107i ve\u0107 postoje\u0107a rje\u0161enja i izgraditi sve na bazi toga. Nakon nekog vremena pretra\u017eivanja, prvo \u0161to mi je zapelo za oko <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>. Po\u010deo sam realizirati svoju ideju, ali nakon nekog vremena otkrio nekoliko kriti\u010dnih problema u ovom rje\u0161enju:<\/p>\n<ul>\n<li>Ipfs \u2014 spremi\u0161te za sve i sva\u0161ta. Ovdje su slike, muzika, video i sve \u0161to mo\u017ee\u0161 zamisliti. Uglavnom, velika planetary \u201edeponija\u201c. Stoga, kada pokrene\u0161 svoj \u010dvor, odmah dobija\u0161 ogroman teret. Ra\u010dunar se jednostavno mu\u010di od boli. <\/li>\n<li>Neki nedovr\u0161eni mehanizam za sklapanje \u201eotpada\u201c. Ne znam kako je sada, ali tada, ako si u konfiguraciji naveo da \u017eeli\u0161 ograni\u010diti pohranu na deset gigabajta podataka, to nije zna\u010dilo ni\u0161ta. Pohrana se \u0161irila, ignoriraju\u0107i mnoge parametre konfiguracije. Na kraju, trebao si imati ogroman kapacitet diska dok ipfs shvati kako se osloboditi nepotrebnog.<\/li>\n<li>U trenutku kori\u0161tenja biblioteke (ne znam kako je sada), klijent nije imao implementirane vrijeme isteka. Po\u0161alje\u0161 zahtjev za preuzimanje datoteke, i ako je nema, jednostavno visi\u0161. Naravno, ljudi su smislili razne zaobilazne puteve koji su djelomi\u010dno rje\u0161avali problem, ali to su bili improvizirani lijekovi. Takve stvari treba imati iz kutije.<\/li>\n<\/ul>\n<p>\nBilo je jo\u0161 mnogo manjih problema, pa me dojam bio nedvojben: to se ne mo\u017ee koristiti za projekt. Nastavio sam tra\u017eiti skladi\u0161te, prou\u010davao razli\u010dite opcije, ali nisam prona\u0161ao ni\u0161ta prikladno.<\/p>\n<p>Na kraju, odlu\u010dio sam poku\u0161ati napisati decentralizirano skladi\u0161te sam. Neka ne pretendira na me\u0111uzvjezdano, ali \u0107e rje\u0161avati konkretan zadatak.<\/p>\n<p>Tako su nastali <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 to je osnovni, najdonji sloj koji omogu\u0107uje povezivanje \u010dvorova u mre\u017eu. U njemu je ugra\u0111en algoritam koji sam za sada implementirao djelomi\u010dno s predvi\u0111anjem za otprilike 10000 servera. Potpuna verzija algoritma bila bi mnogo slo\u017eenija za implementaciju i zahtijevala bi jo\u0161 nekoliko dodatnih mjeseci (mo\u017eda i vi\u0161e).<\/p>\n<p>Detaljno ne\u0107u opisivati spreadable u ovom \u010dlanku, bolje \u0107u pisati poseban neki put. Ovdje \u0107u samo napomenuti neke posebnosti:<\/p>\n<ul>\n<li>Radi preko http\/https.<\/li>\n<li>Mo\u017ee\u0161 stvoriti posebnu mre\u017eu za specifi\u010dan zadatak, \u0161to znatno smanjuje optere\u0107enje na svaki pojedina\u010dni projekt, u usporedbi s tim da su svi u jednoj mre\u017ei.<\/li>\n<li>U po\u010detku je osmi\u0161ljen mehanizam s vremenima isteka i drugim sitnicama. I to radi za sve metode, i u klijentu i u \u010dvoru. Mo\u017ee\u0161 fleksibilno upravljati parametrima iz svoje aplikacije.<\/li>\n<li>Biblioteka je napisana u nodejs-u. Problemi s performansama stoga nadokna\u0111uju decentralizirana priroda. Optere\u0107enje se mo\u017ee 'rasporediti' pove\u0107anjem broja \u010dvorova. U zamjenu, postoje mnoge prednosti: ogromna zajednica, jednostavnost i prakti\u010dnost kori\u0161tenja, izomorfni klijent, odsutnost vanjskih ovisnosti itd.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 to je sloj koji naslje\u0111uje od spreadable, koji omogu\u0107ava pohranu datoteka u mre\u017ei. Svaka datoteka ima svoj hash prema sadr\u017eaju, prema kojem se kasnije mo\u017ee dohvatiti. Datoteke se ne dijele na blokove, ve\u0107 se pohranjuju u cjelini.<\/p>\n<p><b>metastocle <\/b> \u2014 sloj koji naslje\u0111uje od spreadable, koji omogu\u0107ava pohranu podataka u mre\u017ei, ali ne i datoteka. Su\u010delje je sli\u010dno nosql bazama podataka. Na primjer, mo\u017eete dodati datoteku u storacle, dobiti njen hash i zapisati u metastocle s povezivanjem na ne\u0161to.<\/p>\n<p><b>museria<\/b> \u2014 naslje\u0111uje od storacle i metastocle. Ovaj sloj izravno odgovara za pohranu glazbe. Skladi\u0161te radi isklju\u010divo s mp3 datotekama i id3 tagovima. <\/p>\n<p>Kao \"klju\u010d\" za pjesmu koristi se njezin puni naziv u obliku <b>Izvo\u0111a\u010d (TPE1) \u2014 Naziv (TIT2)<\/b>. Na primjer:<\/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>\nNajdetaljnije saznati kako se formiraju nazivi pjesama mo\u017eete <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">ovdje<\/a><\/noindex>. Treba pogledati funkciju <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>Poklapanje prema klju\u010devima smatra se odre\u0111enim postotkom definiranom u postavkama \u010dvora. Na primjer, vrijednost 0.85 ozna\u010dava da ako funkcija usporedbe klju\u010deva (naziva pjesama) otkrije sli\u010dnost ve\u0107u od 85%, to je ista pjesma.<\/p>\n<p>Algoritam za odre\u0111ivanje sli\u010dnosti nalazi se tako\u0111er u funkciji <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>Omot za pjesmu, za naknadno dobivanje, tako\u0111er se pri\u010dvr\u0161\u0107uje putem tagova (<b>APIC<\/b>). U alatima (utils) postoje sve potrebne metode za dobivanje i obradu tagova.<\/p>\n<p>Primjer rada s skladi\u0161tem putem klijenta mo\u017eete vidjeti u <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">readme<\/a><\/noindex>.<\/p>\n<blockquote><p>Svi gornji slojevi su samodostatni i mogu se koristiti odvojeno kao ni\u017ei slojevi za druge projekte. Na primjer, ve\u0107 sada postoji ideja o stvaranju sloja za pohranu knjiga.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 to je ve\u0107 konfigurirani git repozitorij za pokretanje vlastitog \u010dvora u globalnoj mre\u017ei glazbe. Klonirajte, <b>npm i &amp;&amp; npm<\/b> start i u su\u0161tini to je to. Mo\u017eete detaljnije konfigurirati, pokrenuti u Dockeru itd. Detaljne informacije nalaze se na <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global#museria-global-storage-alpha-\">githubu<\/a><\/noindex>.<\/p>\n<p>Kada se repozitorij a\u017eurira, potrebno je a\u017eurirati i svoj \u010dvor. Ako se mijenja glavni ili sekundarni broj verzije, tada je ova radnja obavezna, ina\u010de \u0107e stari \u010dvorovi biti ignorirani od strane mre\u017ee.<\/p>\n<p>Rad s pjesmama mo\u017ee se obavljati ru\u010dno ili programski. Svaki \u010dvor pokre\u0107e server za razli\u010dite zadatke. Uklju\u010duju\u0107i, kada posjetite zadani endpoint, dobit \u0107ete su\u010delje za rad s muzikom. Na primjer, mo\u017eete posjetiti <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">glavni \u010dvor<\/a><\/noindex> (- poveznica mo\u017eda vi\u0161e ne\u0107e biti aktualna kasnije, ulazni \u010dvorovi se tako\u0111er mogu dobiti na <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">Telegramu<\/a><\/noindex>, ili pogledati a\u017euriranja na GitHub-u).<\/p>\n<p>Tako mo\u017eete pretra\u017eivati i preuzimati pjesme u skladi\u0161tu. Preuzimanje pjesama mo\u017ee se odvijati u dva moda: obi\u010dni i moderirani. Drugi na\u010din zna\u010di da posao vodi \u010dovjek, a ne program. Ako ozna\u010dite ovu opciju prilikom dodavanja, morat \u0107ete rije\u0161iti CAPTCHA. Pjesme se mogu dodavati s prioritetima -1, 0 ili 1. Prioritet 1 mo\u017ee se postaviti samo u moderiranom re\u017eimu. Prioriteti su potrebni kako bi skladi\u0161te bolje odlu\u010dilo \u0161to u\u010diniti kada poku\u0161avate zamijeniti ve\u0107 postoje\u0107u pjesmu novom. \u0160to je ve\u0107i prioritet, to su ve\u0107e \u0161anse da \u0107ete prepisati postoje\u0107u datoteku. To poma\u017ee u borbi protiv spama i pove\u0107ava kvalitetu preuzimanih pjesama. <\/p>\n<p>Ako po\u010dnete dodavati pjesme u skladi\u0161te, poku\u0161ajte dodati i slike (cover), iako ovo polje nije obavezno. U 99% slu\u010dajeva prve slike u Googleu prema nazivima pjesama su coveri albuma.<\/p>\n<p>Kako tehni\u010dki izgleda dodavanje datoteka, u dvije rije\u010di:<\/p>\n<ul>\n<li>Klijent dobiva adresu slobodnog \u010dvora, koji \u0107e na neko vrijeme postati koordinator.<\/li>\n<li>Aktivira se funkcija dodavanja pjesme (od strane osobe ili koda), dolazi do zahtjeva za dodavanje na endpoint koordinatora.<\/li>\n<li>Koordinator izra\u010dunava koliko duplikata treba sa\u010duvati (konfigurabilni parametar).<\/li>\n<li>Tra\u017ee se najprikladniji \u010dvorovi za pohranu.<\/li>\n<li>Datoteka, izravno, odlazi na te \u010dvorove. <\/li>\n<\/ul>\n<p>\nKako tehni\u010dki izgleda preuzimanje datoteka:<\/p>\n<ul>\n<li>Klijent dobiva adresu slobodnog \u010dvora, koji \u0107e na neko vrijeme postati koordinator.<\/li>\n<li>Aktivira se funkcija preuzimanja pjesme (od strane osobe ili koda), dolazi do zahtjeva za preuzimanje na endpoint koordinatora.<\/li>\n<li>Koordinator provjerava postoji li veza u predmemoriji. Ako je postoji i radi, odmah se vra\u0107a klijentu, ina\u010de se ispituju \u010dvorovi o prisutnosti.<\/li>\n<li>Preuzimanje datoteke putem poveznice, ako je prona\u0111ena. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternativa za glazbene stvaratelje<\/h3>\n<p>\nOduvijek me zanimalo kako objektivno procijeniti cijenu mnogih kreativnih djela? Za\u0161to, na primjer, netko postavlja svoj glazbeni album na 10 dolara? Ili na 20 dolara ili na 100 dolara? Gdje je algoritam? Kada, na primjer, govorimo o nekom fizi\u010dkom proizvodu ili \u010dak o mnogim vrstama usluga, mo\u017eemo barem izra\u010dunati tro\u0161kovnu cijenu i krenuti od toga. <\/p>\n<p>U redu, pretpostavimo da smo postavili cijenu od 10 dolara. Je li to zaista u\u010dinkovito? Recimo da sam slu\u0161ao album negdje ili pjesmu s njega i odlu\u010dio zahvaliti. No prema mojim osje\u0107ajima i mogu\u0107nostima, 3 dolara je moj maksimum. Kako onda postupiti? Vjerojatno ne\u0107u u\u010diniti ni\u0161ta, kao ni ve\u0107ina ljudi. <\/p>\n<p>Postavljanjem fiksne cijene za kreativni rad jednostavno se ograni\u010dava\u0161, ne dozvoljava\u0161 ve\u0107em broju ljudi da ti po\u0161alje manje iznose koji u zbiru mogu biti zna\u010dajniji od onih koji kupuju po tvojim postavljenim cijenama. Smatram da bi kreativnost trebala biti podru\u010dje gdje donacije trebaju prvi vladati. Za to je potrebno:<\/p>\n<ul>\n<li>Nau\u010diti ljude da zahvaljuju na taj na\u010din. Stvaratelji sami trebaju jasno pokazati da bi \u017eeljeli primati donacije, dodati poveznice na razli\u010dite metode pla\u0107anja svuda.<\/li>\n<li>Potrebno je vi\u0161e mehanizama za pojednostavljenje i ja\u010danje tih procesa. Na primjer, stvoriti neku globalnu stranicu na kojoj se mo\u017ee donirati za kreativnost putem autorskih poveznica.\n<p>Pretpostavimo, poveznica bi otprilike izgledala ovako: <\/p>\n<p><b><code>http:\/\/someartistsdonationsite.site\/category\/artist?external-info<\/code><\/b><\/p>\n<p>Ako se suzimo na glazbenike, onda:<\/p>\n<p><b><code>http:\/\/someartistsdonationsite.com\/music\/miyagi?song=blabla<\/code><\/b><\/p>\n<p>Izvo\u0111a\u010d treba potvrditi svoj nadimak i povezati se s njim.<\/p>\n<p>U klijent museria dodajemo funkciju generiranja sli\u010dne poveznice, a svi projekti koji koriste skladi\u0161te mogu na svojim stranicama\/ aplikacijama postaviti gumbe za donacije s tim poveznicama uz pjesme. Korisnici imaju mogu\u0107nost vrlo brzo i jednostavno donirati. Naravno, ovaj pristup mo\u017ee se koristiti u bilo kojem projektu i kategoriji kreativnosti, ne samo preko skladi\u0161ta.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Za\u0161to, upravo tebi, glazbeno skladi\u0161te, i kako se u to mo\u017ee\u0161 uklju\u010diti?<\/h3>\n<p><\/p>\n<ul>\n<li>Ako radi\u0161 na projektu vezanom za muziku ili planira\u0161 takav stvoriti, sve je to zami\u0161ljeno za tu svrhu. Mo\u017ee\u0161 koristiti museria za pohranu i preuzimanje pjesama, pove\u0107avaju\u0107i protok pjesama na mre\u017ei. Ako pri tome ima\u0161 mogu\u0107nosti podi\u0107i i zadr\u017eati barem jedan vlastiti \u010dvor, to \u0107e biti najbolji doprinos razvoju mre\u017ee.<\/li>\n<li>Mo\u017eda si spreman preuzeti neku drugu ulogu: pomo\u0107i s kodiranjem, ili ispunjavati i moderirati bazu, \u0161iriti informacije o projektu svojim poznanicima itd.<\/li>\n<li>Mo\u017eda ti se svidjela ideja i spreman si pomo\u0107i finansijski da sve to \u017eivi i razvija se. \u0160to vi\u0161e \u010dvorova, to vi\u0161e pjesama.<\/li>\n<li>Ili ti samo u nekom trenutku zatreba da prona\u0111e\u0161 i preuzme\u0161 pjesmu. Mo\u017ee\u0161 to u\u010diniti vrlo jednostavno, na primjer, preko <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">telegram bota<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nProjekt je trenutno u samoj po\u010detnoj fazi. Pokrenuta je testna mre\u017ea, \u010dvorovi se mogu \u010desto ponovo pokretati, zahtijevati a\u017euriranja itd. U slu\u010daju da ne bude kriti\u010dnih problema tokom procjenjivanja, ova mre\u017ea \u0107e se transformirati u glavnu.<\/p>\n<p>Informacije o \u010dvoru izvana: broj pjesama, slobodnog prostora itd., mo\u017ee\u0161 vidjeti putem poveznice tipa <b><code>http:\/\/node-address\/status<\/code><\/b> ili <b><code>http:\/\/node-address\/status?pretty<\/code><\/b><\/p>\n<p>Moji kontakti:<\/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\">Grupa na telegramu na engleskom.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">A tu je i stranica zahvaljuju\u0107i kojoj je ova ideja nastala.<\/a><\/noindex><\/li>\n<\/ul>\n<p>Izvor: <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.4 - 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\/hr\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"hr_HR\" \/>\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\/hr\/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 decentralizirana pohrana muzike | ProHoster","description":"Jednom sam se sakupio da napi\u0161em aplikaciju da bih.","canonical_url":"https:\/\/prohoster.info\/hr\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hr_HR","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\/hr\/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\/hr\/wp-json\/wp\/v2\/posts\/80222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/comments?post=80222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/posts\/80222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media\/80223"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/media?parent=80222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/categories?post=80222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hr\/wp-json\/wp\/v2\/tags?post=80222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}