{"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 \u2014 detsentraliseeritud muusikakogu","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria \u2014 detsentraliseeritud muusikakogu\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKord m\u00f5tlesin ma kirjutada rakenduse, et valida muusikat enda jaoks ja kuulata kodus\/v\u00e4ljas\/trenni ajal jne. Ja et k\u00f5ik see toimiks voos, minimaalse osa minu osalusel. M\u00f5tlesin v\u00e4lja arhitektuuri, visandasin protot\u00fc\u00fcbi ja l\u00f5ppkokkuv\u00f5ttes sattusin silmitsi \u00fche \"v\u00e4ikese probleemiga\". <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nKust v\u00f5iks nende laulude faile v\u00f5tta, on arusaamatu. Selleks ajaks oli Vkontakte juba API sulgenud ja suuremates muusikaportaalides oli samuti vaikus, isegi lood antakse \u00e4ra osade kaupa, et ei saaks eraldada. Alles j\u00e4id mingid \u00fcksikud petturlikud \u00fchep\u00e4evak\u00fclastused, kus on tonn reklaami ja igasugust pr\u00fcgi, kahtlased grabber-ide ja muud \"mustad\" variandid. \u00dches\u00f5naga, \u00fchtegi t\u00f5eliselt head lahendust ei olnud. Loomulikult v\u00f5ib osta tellimuse m\u00f5ne Yandex Muusika v\u00f5i muu sarnase teenuse jaoks. Kuid j\u00e4lle, seal ei ole kuskil avalikku API ja sul ei ole juurdep\u00e4\u00e4su muusikale programmiliselt. M\u00f5ned suured ettev\u00f5tted on sisuliselt piiranud teiste ligip\u00e4\u00e4su muusikale. Miks see \u00fcldse nii juhtus? S\u00fcgavamale kaevates sai selgeks, et peamine probleem on autori\u00f5igustes. Praegune lahendus tellimuste n\u00e4ol sobib paljudele kommertsalustele muusikateoste autoritele ja nendele ettev\u00f5tetele. Samuti satub \u00e4rav\u00f5etava muusika hulka ka mittekommertslik ja tinglikult kommertslik muusika. Kas maksad k\u00f5igi eest v\u00f5i ei kuula \u00fcldse midagi.<\/p>\n<p>Ja hakkasin m\u00f5tlema, mida sellega k\u00f5igega teha. Kuidas korraldada muusika vabalt levitamist? Mis ma teeksin, kui ma ise muusika loomisega tegeleksin ja sooviksin sellega raha teenida? Kas mulle meeldiks, kui mu laule hakaks salaja jagama? Millised alternatiivsed lahendused v\u00f5iksid olla? <\/p>\n<p>Loomulikult on kaks peamist probleemi, millega tuleb tegeleda:<\/p>\n<ul>\n<li>Muusika vabaks levitamiseks mugavate meetodite, sealhulgas tarkvarade kaudu korraldamine.<\/li>\n<li>Alternatiivsete v\u00f5imaluste pakkumine muusika loojatele raha teenimiseks.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Globaalselt jaotatud muusika salvestus.<\/h3>\n<p>\nEsialgu proovisin leida olemasolevaid lahendusi ja ehitada k\u00f5ik selle p\u00f5hjal. P\u00e4rast m\u00f5nda aega otsimist j\u00e4i mulle silma <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>. Alustasin oma idee rakendamist, kuid m\u00f5ne aja p\u00e4rast avastasin selles lahenduses mitmeid kriitilisi probleeme:<\/p>\n<ul>\n<li>Ipfs on k\u00f5ikeh\u00f5lmav salvestuslahendus. Siin on nii pildid, muusika, videod kui ka k\u00f5ik muu. \u00dches\u00f5naga suur planeetaarne \u201epr\u00fcgila\u201c. Seet\u00f5ttu, kui sa oma s\u00f5lme k\u00e4ivitad, saad kohe tohutu koormuse. Masin lihtsalt v\u00e4\u00e4nleb valu t\u00f5ttu. <\/li>\n<li>M\u00f5ni poolik \u00abpr\u00fcgimehhanism\u00bb. Ei tea, kuidas selle olukorra praegune seis on, aga siis, kui sa konfiguratsioonis m\u00e4\u00e4rasid, et soovid salvestust piirata k\u00fcmne gigabaidiga, ei t\u00e4hendanud see midagi. Salvestus laienes, ignoreerides paljusid konfiguratsiooniparameetreid. Tulemusena pidi olema tohutu k\u00f5vakettaruumi varu, kuni ipfs suudab aru saada, kuidas ebavajalikku eemaldada.<\/li>\n<li>Raamatukogu kasutamise ajal (ei tea, kuidas praegu on) ei olnud kliendil aja piire. Saadad faili saamise taotluse ja kui seda ei ole, siis lihtsalt ripud. Loomulikult on inimesed v\u00e4lja m\u00f5elnud igasuguseid \u00fcmbers\u00f5ite, mis osaliselt probleemi lahendasid, kuid need olid ikkagi ajutised lahendused. Sellised asjad peaksid olema v\u00e4lja pakutud juba algselt.<\/li>\n<\/ul>\n<p>\nLisaks oli palju v\u00e4ikeseid probleeme, \u00fcldine mulje oli selgelt negatiivne: seda ei saa projekti jaoks kasutada. J\u00e4tkasin salvestuslahenduste otsimist, uurisin erinevaid variante, kuid ei leidnud sobivat.<\/p>\n<p>L\u00f5puks otsustasin, et v\u00f5iks proovida ise detsentraliseeritud salvestust kirjutada. Olgu, et see ei p\u00fc\u00fca mitte mingil juhul olla interplanetaarne, aga see lahendab konkreetselt antud \u00fclesande.<\/p>\n<p>Nii see s\u00fcndis <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 \u00fchendab s\u00f5lmed v\u00f5rguks. Sellesse on sisse ehitatud algoritm, mille olen seni osaliselt ellu viinud ligikaudu 10 000 serveri jaoks. Algoritmi t\u00e4isversioon on tunduvalt keerulisem ja selle elluviimine v\u00f5taks veel mitu kuud (v\u00f5ib-olla rohkem).<\/p>\n<p>Ma ei hakka seda spreadable siin p\u00f5hjalikult kirjeldama, parem kirjutaksin sellest eraldi hiljem. Siin mainin ainult m\u00f5ningaid erip\u00e4rasid:<\/p>\n<ul>\n<li>T\u00f6\u00f6tleb http\/https kaudu.<\/li>\n<li>Saate luua eraldi v\u00f5rgu konkreetse \u00fclesande jaoks, mis v\u00e4hendab iga projekti koormust v\u00f5rreldes sellega, kui need k\u00f5ik oleksid \u00fches v\u00f5rgus.<\/li>\n<li>Alguses on ette n\u00e4htud mehhanismidega ajapiirangud ja muud pisiasjad. See toimib k\u00f5ikide meetodite jaoks, nii kliendis kui ka s\u00f5lmes. Parameetreid on v\u00f5imalik paindlikult hallata oma rakendusest.<\/li>\n<li>Raamatukogu on kirjutatud nodejs-is. J\u00f5udluse probleeme kompenseerib detsentraliseeritud iseloom. Koormust saab 'jaotada' s\u00f5lmede arvu suurendamisega. Vastutasuks on palju eeliseid: suur \u00fchiskond, t\u00f6\u00f6 lihtsus ja mugavus, isomorfne klient, v\u00e4list s\u00f5ltuvuste puudumine jne.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 see, miseldav layer, mis v\u00f5imaldab andmete salvestamist v\u00f5rgus. Iga faili sisu p\u00f5hjal on tal oma R\u00dcM ja seda saab hiljem uuesti k\u00e4tte saada. Failid ei jaotu plokkideks, vaid salvestatakse tervikuna.<\/p>\n<p><b>metastocle <\/b> \u2014 layer, mis p\u00e4rineb spreadable'ist ja v\u00f5imaldab andmete salvestamist v\u00f5rgus, kuid mitte faile. Liides sarnaneb nosql andmebaasidele. N\u00e4iteks saab faili lisada storaclesse, saada selle R\u00dcM ja salvestada metastoclesse m\u00f5nele k\u00fclge.<\/p>\n<p><b>museria<\/b> \u2014 p\u00e4rineb storacle'ist ja metastocle'ist. See layer vastutab otseselt muusika salvestamise eest. Laukas t\u00f6\u00f6tab ainult mp3 failidega ja id3 siltidega. <\/p>\n<p>Laulu \u201ev\u00f5tmena\u201d kasutatakse selle t\u00e4isnimi kujul <b>Esitaja (TPE1) \u2014 Pealkiri (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>\nMaksimaalne teave selle kohta, kuidas laulude nimetused kujunevad, on saadaval <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">siin<\/a><\/noindex>. Tuleb vaadata funktsiooni <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>V\u00f5tmete (laulude nimede) sarnasuse m\u00e4\u00e4ramine arvestab node'i seadistustes m\u00e4\u00e4ratud protsentidega. N\u00e4iteks v\u00e4\u00e4rtus 0.85 t\u00e4hendab, et kui v\u00f5rdlusfunktsioon tuvastab v\u00f5tmete (laulude) sarnasuse \u00fcle 85%, siis on see sama laul.<\/p>\n<p>Sarnasuse m\u00e4\u00e4ramise algoritm on seal sama, funktsioonis <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>Laulude katte, mis on edasise saamise jaoks, peab ka olema seotud siltide kaudu (<b>APIC<\/b>). Utiliitides (utils) on k\u00f5ik vajalikud meetodid siltide saamiseks ja t\u00f6\u00f6tlemiseks.<\/p>\n<p>N\u00e4idet selle kohta, kuidas salvestusega kliendi kaudu t\u00f6\u00f6tada, saab vaadata <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">readme<\/a><\/noindex>.<\/p>\n<blockquote><p>K\u00f5ik eespool nimetatud kihid on iseseisvad ja saavad olla eraldi kasutusel kui madalamad kihid teiste projektide jaoks. N\u00e4iteks on juba m\u00f5te luua kihiga raamatute hoidmise jaoks.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 see on juba konfigureeritud git-repositoorium enda s\u00f5lme k\u00e4ivitamiseks globaalsetes muusika v\u00f5rkudes. Kloonige, <b>npm i &amp;&amp; npm<\/b> start ja p\u00f5him\u00f5tteliselt k\u00f5ik. Saate seadistada detailsemalt, k\u00e4ivitada Dockeris jne. T\u00e4iendav teave on saadaval <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global#museria-global-storage-alpha-\">GitHubis<\/a><\/noindex>.<\/p>\n<p>Kui repositoorium uuendatakse, tuleb ka oma s\u00f5lm uuendada. Kui muudetakse peamist v\u00f5i alamversiooni numbrit, on see toiming kohustuslik, vastasel juhul ignoreeritakse vanu s\u00f5lmi v\u00f5rgus.<\/p>\n<p>Lauludega saab t\u00f6\u00f6tada k\u00e4sitsi ja programmiliselt. Iga s\u00f5lm k\u00e4ivitab serveri erinevate \u00fclesannete jaoks. Sealhulgas, kui k\u00fclastate vaikimisi l\u00f5pp-punkti, saate liidese muusikaga t\u00f6\u00f6tamiseks. N\u00e4iteks, v\u00f5ite k\u00fclastada <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">juurknot<\/a><\/noindex> (link v\u00f5ib hiljem kehtetuks muutuda, sisenemisallikaid saab samuti saada <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">telegrammis<\/a><\/noindex>, v\u00f5i vaadata uuendusi githubis).<\/p>\n<p>Nii saate otsida ja laadida laule salvestusse. Laulude \u00fcleslaadimine v\u00f5ib toimuda kahes re\u017eiimis: tavaline ja p\u00e4rastmoderatsioon. Viimane t\u00e4hendab, et t\u00f6\u00f6d teeb inimene, mitte programm. Ja kui lisate selle m\u00e4rkeruudu, peate lahendama CAPTCHA. Laule saab lisada prioriteetidega -1, 0 v\u00f5i 1. Prioriteet 1 v\u00f5ib olla ainult p\u00e4rastmoderatsioonire\u017eiimis. Prioriteedid on vajalikud, et salvestus saaks t\u00f5husamalt otsustada, mida teha, kui proovite olemasolevat laulu uuega asendada. Mida k\u00f5rgem on prioriteet, seda rohkem on v\u00f5imalusi, et kirjutate olemasoleva faili \u00fcle. See aitab v\u00f5idelda r\u00e4mpsposti vastu ja suurendab \u00fcleslaaditavate laulude kvaliteeti. <\/p>\n<p>Kui hakkate laule salvestusse lisama, proovige ka pilte (kaane) lisada, kuigi see v\u00e4li ei ole kohustuslik. 99% juhtudest on esimesed pildid Google\u2019is laulunimede j\u00e4rgi albumikaaned.<\/p>\n<p>Kuidas failide lisamine tehniliselt toimub, kahel s\u00f5nal:<\/p>\n<ul>\n<li>Kliendile antakse vaba s\u00f5lme aadress, mis mingiks ajaks muutub koordinaatoriks.<\/li>\n<li>Aktiveeritakse laulu lisamise funktsioon (inimese v\u00f5i koodi poolt), toimub p\u00e4ring lisamiseks koordinaatori l\u00f5pp-punkti.<\/li>\n<li>Koordinaator arvutab, kui palju koopiaid on vaja salvestada (konfigureeritav parameeter).<\/li>\n<li>Otsitakse k\u00f5ige sobivamaid s\u00f5lmi salvestamiseks.<\/li>\n<li>Fail saadetakse nendele s\u00f5lmedele. <\/li>\n<\/ul>\n<p>\nKuidas failide hankimine tehniliselt toimub:<\/p>\n<ul>\n<li>Kliendile antakse vaba s\u00f5lme aadress, mis mingiks ajaks muutub koordinaatoriks.<\/li>\n<li>Aktiveeritakse laulu saamise funktsioon (inimese v\u00f5i koodi poolt), toimub p\u00e4ring saamiseks koordinaatori l\u00f5pp-punkti.<\/li>\n<li>Koordinaator kontrollib, kas link on vahem\u00e4lus olemas. Kui see on olemas ja t\u00f6\u00f6tab, tagastatakse see kohe kliendile, vastasel juhul k\u00fcsitakse s\u00f5lmedelt olemasolu kohta.<\/li>\n<li>Faili hankimine toimub lingi kaudu, kui selline leiti. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternatiivid muusikategijatele<\/h3>\n<p>\nMind sempre on mindestus, kuidas \u00fcldiselt saab objektiivselt hinnata paljude loominguliste teoste hinda? Miks, n\u00e4iteks, inimene paneb oma muusikalbumi hinnaks 10$? V\u00f5i 20$ v\u00f5i 100$. Kus on algoritm? Kui me n\u00e4iteks r\u00e4\u00e4gime mingist f\u00fc\u00fcsilisest tootest v\u00f5i isegi paljusid teenuseid, siis saame v\u00e4hemalt arvutada tootmiskulu ja sellest alustada. <\/p>\n<p>Okei, oletame, et 10$ on seatud. Kas see on t\u00f5eliselt efektiivne? Oletame, et ma kuulasin albumit kuskil v\u00f5i seal on laul ja otsustasin t\u00e4nada. Kuid minu tunnetuste ja isiklike v\u00f5imaluste kohaselt on 3$ minu piir. Kuidas siis olla? T\u00f5en\u00e4oliselt ma ei tee midagi, nagu enamik inimesi. <\/p>\n<p>M\u00fc\u00fces mingi fikseeritud hinna loomingulise t\u00f6\u00f6 eest, piirad end lihtsalt, ei anna suuremale hulgale inimestele v\u00f5imalust anda sulle v\u00e4iksemaid summa, mis kokku v\u00f5ib olla muljetavaldavam kui need, kes ostavad sinu seatud hinnaga. Minu arust on looming just see valdkond, kus peaksid k\u00f5igepealt domineerima annetused. Selleks on vajalik:<\/p>\n<ul>\n<li>\u00d5petage inimesi t\u00e4nama just niimoodi. Loomehed peaksid selgelt n\u00e4itama, et nad soovivad toetusi, lisama igale poole lingid erinevatele makseviisidele jne.<\/li>\n<li>Vajame rohkem mehhanisme nende protsesside lihtsustamiseks ja tugevdamiseks. N\u00e4iteks luua globaalne veebisait, kuhu saab loomingut toetada 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 kitsendame muusikutele, siis:<\/p>\n<p><b><code>http:\/\/someartistsdonationsite.com\/music\/miyagi?song=blabla<\/code><\/b><\/p>\n<p>Esitaja peab kinnitama oma nimesildi ja sellega seotud olema.<\/p>\n<p>Lisame klienti museria funktsiooni sellise lingi genereerimiseks, ja k\u00f5ik projektid, mis kasutavad salvestusruumi, saavad paigutada oma veebisaitidele\/rakendustesse toetuse nuppe nende lingidega koos laulude k\u00f5rval. Kasutajatel on v\u00f5imalus v\u00e4ga kiiresti ja lihtsalt toetust teha. Loomulikult saab seda l\u00e4henemist kasutada igas projektis ja loomingukategoorias, mitte ainult salvestusruumi kaudu.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Miks on just sulle vajalik muusikaruumi, ja kuidas saad selles osaleda?<\/h3>\n<p><\/p>\n<ul>\n<li>Kui t\u00f6\u00f6tad muusikaga seotud projekti kallal v\u00f5i plaanid sellise loomist, siis just selleks see k\u00f5ik ongi m\u00f5eldud. Sa saad kasutada museriat laulude salvestamiseks ja hankimiseks, suurendades laulude voogu v\u00f5rgus. Kui sul on samas v\u00f5imalus t\u00f5sta ja hoida v\u00e4hemalt \u00fcht oma s\u00f5lme, siis see oleks parim panus v\u00f5rgu arengusse.<\/li>\n<li>V\u00f5ib-olla oled sa valmis v\u00f5tma endale m\u00f5ne muu rolli: aidata koodi kirjutada, t\u00e4ita ja modereerida baasi, levitada projekti teavet oma tuttavatele jne.<\/li>\n<li>V\u00f5ib-olla meeldis sulle idee ja oled valmis aitama rahaliselt, et k\u00f5ik see elaks ja areneks. Mida rohkem s\u00f5lmi, seda rohkem laule.<\/li>\n<li>V\u00f5i vajad sa lihtsalt mingil hetkel laulu leidmiseks ja allalaadimiseks. Sa saad seda teha v\u00e4ga lihtsalt, n\u00e4iteks l\u00e4bi <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">telegraafiboti<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nProjekt on hetkel k\u00f5ige algusj\u00e4rgus. On k\u00e4ivitatud testv\u00f5rk, s\u00f5lmed v\u00f5ivad tihti taask\u00e4ivituda, vajada v\u00e4rskendusi jne. Kui hindamisperioodil ei esine kriitilisi probleeme, muudetakse see sama v\u00f5rk p\u00f5hiv\u00f5rguks.<\/p>\n<p>V\u00e4lise node info vaatamiseks: laulude arv, vaba koht jne, saad k\u00fclastada linki, mis n\u00e4eb v\u00e4lja nagu <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\">Grup Telegrammis inglise keeles.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">Ja veebisait, mille t\u00f5ttu kogu see idee s\u00fcndis.<\/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 4.9.10 - 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 \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\" \/>\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) 4.9.10\" \/>\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 \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\" \/>\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 otsustanud kirjutada rakenduse, et valida muusikat enda jaoks ja kuulata seda kodus\/\u00f5ues\/trennides jne. Ja et see k\u00f5ik t\u00f6\u00f6taks voos, minimaalse osalusega minult. M\u00f5tlesin v\u00e4lja arhitektuuri, joonistasin protot\u00fc\u00fcbi ja l\u00f5puks silmitsi \u00fcht \u201ev\u00e4ikest probleemi\u201c. Ei olnud selge, kust v\u00f5tta laulufailid. Sellesse aega oli VKontakte juba API suletud, suurte muusika","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 \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","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"},"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}]}}