{"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\/et\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","title":{"rendered":"Museria \u2013 detsentraliseeritud muusikahoidla","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria \u2013 detsentraliseeritud muusikahoidla\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOlin \u00fchel p\u00e4eval otsustanud kirjutada rakenduse, et valida muusikat endale ning kuulata seda kodus\/v\u00e4ljas\/trenni jne. Ja et k\u00f5ik see toimiks sujuvalt, minimaalse mu osalusega. M\u00f5tlesin v\u00e4lja arhitektuuri, joonistasin protot\u00fc\u00fcbi ja l\u00f5puks kohtusin \u00fche \"v\u00e4ikse probleemiga\". <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nAga ei ole selge, kust v\u00f5tta muusikafailid. Sel hetkel oli VKontakte juba sulgenud API, suurtes muusikaportaalides oli samuti k\u00f5ik vaikne, isegi laulud anti plaate jupikaupa, et neid ei saaks kraapida. J\u00e4\u00e4nud olid ainult mingid eraldi p\u00e4eva veebisaidid tohutu reklaami ja igasuguse jamaga, kahtlased grabber programm ja muud \"r\u00e4pased\" variantid. Kokkuv\u00f5ttes ei olnud \u00fchtegi t\u00f5eliselt head lahendust. Muidugi, v\u00f5iks osta tellimuse mingisse Yandex Muusika v\u00f5i sarnasesse teenusesse. Kuid j\u00e4lle, seal ei ole kuskil avatud avalikku API-d ja sul ei ole juurdep\u00e4\u00e4su muusikale programmide kaudu. Mitmed suured ettev\u00f5tted on p\u00f5him\u00f5tteliselt piiranud teiste juurdep\u00e4\u00e4su muusikale. Kuidas see \u00fcldse juhtus? S\u00fcgavamale kaevates sai selgeks, et peamine probleem on autorikaitse. Praegune lahendus tellimuste n\u00e4ol rahuldab paljusid kommertsautori muusikateoseid ja neid samu ettev\u00f5tteid. Samuti langeb k\u00f5igi teiste mittekommertsliku ja tingimuslikult kommertsmuusika \u00fcldisesse nimekirja. Sa kas maksad k\u00f5igi eest v\u00f5i ei kuule \u00fcldse midagi.<\/p>\n<p>Ja ma hakkasin m\u00f5tlema, mida sellega teha. Kuidas korraldada muusika vabalt levitamist? Mida ma teeksin, kui ma ise teeksin muusikat ja sooviksin sellega raha teenida? Kas mulle meeldiks, kui mu laule hakata levitama salaja? Millised on \u00fcldse alternatiivsed lahendused? <\/p>\n<p>L\u00f5puks kujunesid v\u00e4lja kaks peamist probleemi, mida tuleb lahendada:<\/p>\n<ul>\n<li>Muusika vabalt levitamise korraldamine enamiku inimeste jaoks mugavates vormides, sealhulgas programmiliselt.<\/li>\n<li>Alternatiivide pakkumine muusika loojatele raha teenimiseks<\/li>\n<\/ul>\n<p><\/p>\n<h3>Globaalselt detsentraliseeritud muusikalaos<\/h3>\n<p>\nAlguses proovisin leida juba olemasolevaid lahendusi ja luua k\u00f5ik selle alusel. P\u00e4rast m\u00f5ningaid otsinguid j\u00e4i silma esimene <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>. Alustasin oma idee elluviimist, kuid m\u00f5ne aja p\u00e4rast avastasin selle lahenduse juures mitu kriitilist probleemi:<\/p>\n<ul>\n<li>Ipfs \u2014 salvestus k\u00f5igile ja k\u00f5igest. Siit leiad nii pilte kui muusikat, videoid ja k\u00f5ike muud. \u00dches\u00f5naga, suur planeetaarne \u201epr\u00fcgikast\u201c. Seet\u00f5ttu, kui sa k\u00e4ivitad oma s\u00f5lme, saad koheselt tohutu koormuse. Masin lihtsalt vaevleb valust. <\/li>\n<li>Mingisugune saamatu pr\u00fcgi kogumise mehhanism. Ma ei tea, kuidas sellega praegu on, aga tookord, kui sa seadetes \u00fctlesid, et tahad salvestust piirata k\u00fcmne gigabaidiga, ei t\u00e4hendanud see midagi. Salvestus laienes, j\u00e4ttes paljud konfigureerimisparameetrid t\u00e4helepanuta. L\u00f5ppude l\u00f5puks tuli sul olla tohutult k\u00f5vakettaruumi, kuni ipfs suutis aru saada, kuidas \u00fcleliigset mahaviskamist ette v\u00f5tta.<\/li>\n<li>Raamatukogu kasutamise hetkel (ma ei tea, kuidas praegu on) ei olnud kliendil rakendatud ajapiiranguid. Saatsid faili saamise p\u00e4ringu, ja kui seda ei olnud, lihtsalt rippusid. Loomulikult, inimesed t\u00f6\u00f6tasid v\u00e4lja erinevaid k\u00f5rvalteid, mis osaliselt lahendasid probleemi, kuid see oli nagu karkudega k\u00e4imine. Sellised asjad peaksid olema v\u00e4lja t\u00f6\u00f6tatud toote osana.<\/li>\n<\/ul>\n<p>\nLisaks oli palju v\u00e4iksemaid probleeme ning mul j\u00e4i selge mulje, et seda ei saa projekti jaoks kasutada. Otsisin edasi salvestuslahendusi, uurisin erinevaid v\u00f5imalusi, kuid ei leidnud midagi sobivat.<\/p>\n<p>L\u00f5puks otsustasin, et prooviks ise kirjutada detsentraliseeritud salvestuse. Las see ei pretendeeri planeetidevahelisele rollile, aga lahendab kindla \u00fclesande.<\/p>\n<p>Nii saigi hakkama <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 see on p\u00f5hikiht, mis v\u00f5imaldab s\u00f5lmi omavahel v\u00f5rku \u00fchendada. Sellel on algoritm, mille ma olen osaliselt rakendanud ligikaudu 10000 serveri jaoks. T\u00e4ielik algoritmi versioon on palju keerulisem ellu viia ja n\u00f5uaks veel m\u00f5nda t\u00e4iendavat kuud (v\u00f5ib-olla isegi rohkem).<\/p>\n<p>Ma ei hakka spreadable'i detailselt selle artikli raames kirjeldama, parem kirjutan sellest millalgi eraldi. Siin mainin vaid m\u00f5ningaid erip\u00e4ra:<\/p>\n<ul>\n<li>T\u00f6\u00f6tatakse l\u00e4bi http\/https.<\/li>\n<li>V\u00f5imalik on luua eraldi v\u00f5rk konkreetse \u00fclesande jaoks, mis v\u00e4hendab oluliselt koormust iga eraldi projekti peal, v\u00f5rreldes olukorraga, kui k\u00f5ik oleksid \u00fches v\u00f5rgus.<\/li>\n<li>Algusest peale oli m\u00f5eldud mehhanism ajapiirangutega ja teiste v\u00e4ikeste detailidega. Ja see t\u00f6\u00f6tab k\u00f5igi meetodite jaoks nii kliendil kui ka s\u00f5lmel. Sa saad paindlikult hallata parameetreid oma rakendusest.<\/li>\n<li>Raamatukogu on kirjutatud nodejs-is. Stekki j\u00f5udlusprobleemide kompenseerimine toimub t\u00e4nu detsentraliseeritud iseloomule. Koormust saab \"laiali jagada\" s\u00f5lmede arvu suurendamisega. Vastutasuks on palju eeliseid: tohutu kogukond, lihtsus ja mugavustunne, isomorfne klient, v\u00e4liste s\u00f5ltuvuste puudumine jne.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 see on kihistumine, mis p\u00e4rineb spreadable-ilt ja v\u00f5imaldab salvestada v\u00f5rku faile. Igal failil on oma hash sisu j\u00e4rgi, mille kaudu saab selle hiljem k\u00e4tte. Faile ei jaotata blokiks, vaid need salvestatakse tervikuna.<\/p>\n<p><b>metastocle <\/b> \u2014 kihistumine, mis p\u00e4rineb spreadable-ilt ja v\u00f5imaldab v\u00f5rgus andmete salvestamist, kuid mitte faile. Liides on sarnane nosql andmebaasidega. Saate n\u00e4iteks lisada faili storacle\u2019i, saada selle hash ja salvestada metastocle\u2019i seosega millelegi.<\/p>\n<p><b>museria<\/b> \u2014 p\u00e4rineb storacle-ilt ja metastocle-ilt. See kiht vastutab otseselt muusika salvestamise eest. Ladustamine t\u00f6\u00f6tab ainult mp3 failidega ja id3 siltidega. <\/p>\n<p>Laulu \"v\u00f5tmena\" kasutatakse selle t\u00e4isnime kujul <b>Esitaja (TPE1) \u2014 Nimi (TIT2)<\/b>. N\u00e4iteks:<\/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>\nMaksimaalselt \u00fcksikasjalikult \u00f5ppida, kuidas laulu nimesid formuleeritakse, saab <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">siit<\/a><\/noindex>. Tuleb vaadata funktsiooni <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>V\u00f5tmete (laulunimede) sarnasuseks loetakse s\u00f5lme seadistustes m\u00e4\u00e4ratud protsent. N\u00e4iteks v\u00e4\u00e4rtus 0.85 t\u00e4hendab, et kui v\u00f5tmete v\u00f5rdlemise funktsioon on leidnud sarnase \u00fcle 85%, siis on see sama laul.<\/p>\n<p>Sarnasuse m\u00e4\u00e4ramise algoritm on seal, funktsiooni sees <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>Laulu kaanepilt, edasise saamiseks kinnitatakse samuti siltide kaudu (<b>APIC<\/b>). Utiliidid (utils) sisaldavad k\u00f5iki vajalikke meetodeid siltide saamiseks ja t\u00f6\u00f6tlemiseks.<\/p>\n<p>N\u00e4idet t\u00f6\u00f6 tegemisest salvestustega kliendi kaudu saab vaadata <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">readme<\/a><\/noindex>.<\/p>\n<blockquote><p>K\u00f5ik \u00fclaltoodud kihid on iseseisvad ja neid saab kasutada eraldi kui madalamaid kihte teiste projektide jaoks. N\u00e4iteks on juba praegu plaanis luua kiht raamatute salvestamiseks.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 see on juba konfigureeritud git-repo oma s\u00f5lme k\u00e4ivitamiseks globaalsetes muusikas\u00fcsteemides. Kloonige, <b>npm i &amp;&amp; npm<\/b> start ja p\u00f5him\u00f5tteliselt ongi k\u00f5ik. Saab seadistada detailsemalt, k\u00e4ivitada dockeris jne. \u00dcksikasjalik teave on olemas <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global#museria-global-storage-alpha-\">GitHubis<\/a><\/noindex>.<\/p>\n<p>Kui repotite uuendatakse, tuleb samuti uuendada oma s\u00f5lme. Kui versiooni peamine v\u00f5i v\u00e4ike number muutub, on see tegevus kohustuslik, vastasel juhul vanad s\u00f5lmed ignoreeritakse v\u00f5rgu poolt.<\/p>\n<p>Lauludega saab t\u00f6\u00f6tada k\u00e4sitsi ja programmeeritult. Iga s\u00f5lm k\u00e4ivitab teenuse erinevate \u00fclesannete jaoks. Sealhulgas, kui k\u00fclastate vaike l\u00f5pp-punkti, saate liidese muusika t\u00f6\u00f6tlemiseks. N\u00e4iteks saate minna <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">juurs\u00f5lmele<\/a><\/noindex> (link v\u00f5ib hiljem muutuda ebaaktiivseks, sisenemis-s\u00f5lmed on saadaval ka <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">Telegramis<\/a><\/noindex>, v\u00f5i saate j\u00e4lgida uuendusi GitHubis).<\/p>\n<p>Nii saate otsida ja alla laadida laule andmebaasi. Laulude \u00fcleslaadimine v\u00f5ib toimuda kahes re\u017eiimis: tavaline ja modereeritud. Teine re\u017eiim t\u00e4hendab, et t\u00f6\u00f6d juhib inimene, mitte programm. Ja kui m\u00e4rkite selle ruudu lisamise ajal, peate lahendama captcha. Laulesid saab lisada prioriteetidega -1, 0 v\u00f5i 1. Prioriteeti 1 saab seada ainult modereeritud re\u017eiimis. Prioriteedid on vajalikud, et andmebaas saaks efektiivsemalt otsustada, mida teha, kui proovite asendada juba olemasolevat laulu uuega. Mida k\u00f5rgem on prioriteet, seda suuremad on t\u00f5en\u00e4osused, et asendate olemasoleva faili. See aitab v\u00f5idelda r\u00e4mpsposti ja t\u00f5stab \u00fcleslaaditud laulude kvaliteeti. <\/p>\n<p>Kui hakkate laule andmebaasi lisama, p\u00fc\u00fcdke lisada ka pilte (cover), kuigi see v\u00e4li ei ole kohustuslik. 99% juhtudel on esimeste piltide hulgas Google'is laulunimetuste j\u00e4rgi albumikaaned.<\/p>\n<p>Kuidas toimub failide lisamine tehniliselt, hoides kaks s\u00f5na:<\/p>\n<ul>\n<li>Kliendile antakse aadress vaba s\u00f5lme, mis m\u00f5neks ajaks muutub koordinaatoriks.<\/li>\n<li>K\u00e4ivitub laulu lisamise funktsioon (inimese v\u00f5i koodi poolt), toimub p\u00e4ring lisamise kohta koordinaatori l\u00f5pp-punktile.<\/li>\n<li>Koordinaator arvutab, kui palju koopiaid s\u00e4ilitada (konfigureeritav parameeter).<\/li>\n<li>Otsitakse sobivamaid s\u00f5lmi salvestamiseks.<\/li>\n<li>Fail saadetakse otse nendele s\u00f5lmedele. <\/li>\n<\/ul>\n<p>\nKuidas toimub failide hankimine tehniliselt:<\/p>\n<ul>\n<li>Kliendile antakse aadress vaba s\u00f5lme, mis m\u00f5neks ajaks muutub koordinaatoriks.<\/li>\n<li>K\u00e4ivitub laulu hankimise funktsioon (inimese v\u00f5i koodi poolt), toimub p\u00e4ring hankimise kohta koordinaatori l\u00f5pp-punktile.<\/li>\n<li>Koordinaator kontrollib, kas link on vahem\u00e4lus. Kui see on olemas ja t\u00f6\u00f6tab, tagastatakse see koheselt kliendile, vastasel juhul k\u00fcsitakse s\u00f5lmedelt olemasolu kohta.<\/li>\n<li>Faili hankimiseks kasutatakse linki, kui see leitakse. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternatiivid muusikategijatele<\/h3>\n<p>\nMind on alati huvitanud k\u00fcsimus, kuidas saab objektiivselt hinnata paljude loominguliste teoste v\u00e4\u00e4rtust? Miks, n\u00e4iteks, pakub inimene oma muusikaalbumit 10 dollari eest? V\u00f5i 20 dollari v\u00f5i 100 dollari eest. Kus on algoritm? Kui me r\u00e4\u00e4gime mingist f\u00fc\u00fcsilisest tootest v\u00f5i isegi paljudest teenustest, saame v\u00e4hemalt arvutada omahinna ja sellest l\u00e4htuda. <\/p>\n<p>Okei, oletame, et 10 dollarit on seatud. Kas see on t\u00f5eliselt efektiivne? Oletame, et ma kuulasin albumit kuskil v\u00f5i laulu sealt ja otsustasin t\u00e4nada. Aga minu tunnetuse ja v\u00f5imaluste j\u00e4rgi on 3 dollarit minu maksimum. Kuidas siis edasi? T\u00f5en\u00e4oliselt ei tee ma midagi, nagu ka enamik inimesi. <\/p>\n<p>Seades mingisuguse kindla hinna loomingulise t\u00f6\u00f6 eest, piirad sa lihtsalt ennast, ei luba suuremal arvul inimestel saata sulle v\u00e4iksemaid summasid, mis kokku v\u00f5ivad olla suuremad, kui need, kes ostavad sinu seatud hinnaga. Minu arvates on looming just see valdkond, kus peaksid esmat\u00e4htsad olema annetused. Selleks on vajalik:<\/p>\n<ul>\n<li>Inimesi tuleb \u00f5petada t\u00e4nama just niimoodi. Loome ise peavad selgelt n\u00e4itama, et nad soovivad saada annetusi, lisama igale poole linke erinevatele makseviisidele jne.<\/li>\n<li>Vaja on rohkem mehhanisme nende protsesside lihtsustamiseks ja tugevdamiseks. N\u00e4iteks luua mingi globaalne sait, kuhu saab annetada loomingute eest autorite linkide kaudu.\n<p>Oletame, et link on umbes selline: <\/p>\n<p><b><code>http:\/\/someartistsdonationsite.site\/category\/artist?external-info<\/code><\/b><\/p>\n<p>Kui kitsendada muusikutele, siis:<\/p>\n<p><b><code>http:\/\/someartistsdonationsite.com\/music\/miyagi?song=blabla<\/code><\/b><\/p>\n<p>Esitajal on vaja oma h\u00fc\u00fcdnime verifitseerida ja sellega siduda.<\/p>\n<p>Kliendi muserias lisame sarnase lingi genereerimise funktsiooni ning k\u00f5ik projektid, mis kasutavad salvestust, saavad oma saitidel\/rakendustes paigutada nuppu annetuste jaoks koos nende linkidega laulude k\u00f5rval. Kasutajad saavad v\u00e4ga kiiresti ja lihtsalt annetada. Loomulikult saab seda l\u00e4henemist rakendada igasugustes projektides ja loomingukategooriates, mitte ainult salvestuse kaudu.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Miks on just sina, muusika salvestus, ja kuidas selles osaleda<\/h3>\n<p><\/p>\n<ul>\n<li>Kui t\u00f6\u00f6tad muusikaga seotud projekti kallal v\u00f5i plaanid sellist luua, siis on see k\u00f5ik selleks m\u00f5eldud. Sa saad kasutada museriat laulude salvestamiseks ja saamiseks, suurendades laulude voogu v\u00f5rgus. Kui sul on v\u00f5imalus \u00fcles seada ja hoida v\u00e4hemalt \u00fcks oma node, siis on see parim panus v\u00f5rgu arendamisse.<\/li>\n<li>V\u00f5ib-olla oled valmis v\u00f5tma endale m\u00f5ne teise rolli: aitama koodi kirjutada, t\u00e4itma ja modereerima andmebaasi, levitama teavet projekti kohta oma tuttavatele jne.<\/li>\n<li>V\u00f5ib-olla meeldib sulle idee ja oled valmis aitama rahaliselt, et see k\u00f5ik elaks ja areneks. Mida rohkem node, seda rohkem laule.<\/li>\n<li>V\u00f5i v\u00f5ib-olla vajad sa lihtsalt mingil hetkel laulu leidmiseks ja allalaadimiseks. Seda saad teha v\u00e4ga lihtsalt, n\u00e4iteks l\u00e4bi <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">Telegrammi boti<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nProjekt on hetkel algstaadiumis. Testv\u00f5rk on k\u00e4ivitatud, node v\u00f5ivad tihti taask\u00e4ivituda, vajada p\u00f5hikirju jne. Kui kriitilisi probleeme ei esine hindamisperioodi jooksul, muudetakse sama v\u00f5rku p\u00f5hiv\u00f5rguks.<\/p>\n<p>Node'i v\u00e4lise teabe n\u00e4gemiseks: laulude arv, vaba ruum jne, saad \u00fcle vaadata lingil kujul <b><code>http:\/\/node-address\/status<\/code><\/b> v\u00f5i <b><code>http:\/\/node-address\/status?pretty<\/code><\/b><\/p>\n<p>Minu kontaktid:<\/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\">Grupis Telegramis inglise keeles.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">Ja veebileht, mille kaudu see idee alguse sai.<\/a><\/noindex><\/li>\n<\/ul>\n<p>Allikas: <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.1.1 - 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\/et\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\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\/et\/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 detsentraliseeritud muusika salvestus | ProHoster","description":"Olin kord kogunenud kirjutama rakendust, et.","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/80222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=80222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/80222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/80223"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=80222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=80222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=80222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}