{"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\/nl\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","title":{"rendered":"Museria \u2014 een decentraal muziekopslagsysteem","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria \u2014 een decentraal muziekopslagsysteem\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOp een dag besloot ik een applicatie te schrijven om muziek voor mezelf te selecteren en thuis, buiten of tijdens trainingen te luisteren, enzovoorts. En alles moest in een flow werken, met minimale deelname van mijn kant. Ik bedacht de architectuur, schetste een prototype en stuitte uiteindelijk op \u00e9\u00e9n 'klein probleem'. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nMaar het was onduidelijk waar ik de muziekbestanden vandaan moest halen. Tegen die tijd had VKontakte al de API gesloten, en op de grote muziekportalen was er ook niets te vinden; zelfs de nummers werden in stukjes aangeboden om te voorkomen dat ze geparsed werden. Er bleven alleen een paar losse websites over met veel reclame en rommel, allerlei twijfelachtige grabberprogramma's en andere 'vuile' opties. Kortom, geen enkele werkelijke goede oplossing. Je kunt natuurlijk een abonnement kopen op Yandex Music of iets dergelijks. Maar nogmaals, daar is geen open publieke API en heb je geen toegang tot muziek via een programma. Een paar grote bedrijven hebben in feite de toegang tot muziek voor anderen beperkt. Waarom is dit \u00fcberhaupt gebeurd? Na wat dieper graven, bleek dat het belangrijkste probleem de auteursrechten zijn. De huidige oplossing in de vorm van abonnementen bevalt veel commerci\u00eble auteurs van muzikale werken en deze bedrijven. Tegelijkertijd vallen ook niet-commerci\u00eble en voorwaardelijk commerci\u00eble muziek in de algemene lijst. Je betaalt ofwel voor alles, of je luistert helemaal niets.<\/p>\n<p>En ik begon na te denken over wat ik hiermee moest doen. Hoe kun je een vrije verspreiding van muziek organiseren? Wat zou ik doen als ik zelf muziek cre\u00eberde en er geld mee wilde verdienen? Zou ik het leuk vinden als mijn nummers op een piratensite verspreid werden? Wat zijn alternatieve oplossingen? <\/p>\n<p>Uiteindelijk kwamen er twee belangrijke problemen naar voren die opgelost moeten worden:<\/p>\n<ul>\n<li>Het organiseren van een vrije verspreiding van muziek op manieren die voor de meeste mensen handig zijn, ook via software.<\/li>\n<li>Het aanbieden van alternatieven voor muziekcreators om te kunnen verdienen.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Een wereldwijd gedecentraliseerd opslagplaats voor muziek.<\/h3>\n<p>\nIn eerste instantie probeerde ik bestaande oplossingen te vinden en alles op basis daarvan te cre\u00ebren. Na enige tijd zoeken, viel mijn oog als eerste op <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>. Ik begon met de uitvoering van mijn idee, maar ontdekte na een tijdje enkele kritische problemen met deze oplossing:<\/p>\n<ul>\n<li>Ipfs \u2014 een opslagplaats voor alles en nog wat. Hier vind je afbeeldingen, muziek, video's en werkelijk alles. In wezen is het een grote planetaire 'afvalbak'. Dus wanneer je je node opstart, krijg je onmiddellijk een enorme belasting. De machine kreunt gewoon van de pijn. <\/li>\n<li>Een of andere onafgebouwde mechanismen voor het verzamelen van 'afval'. Ik weet niet hoe het er nu mee is, maar op dat moment, als je in de configuratie aangaf dat je de opslag op tien gigabyte gegevens wilde beperken, betekende dat niets. De opslag breidde zich uit, negeerde veel configuratieparameters. Uiteindelijk moest je een enorme hoeveelheid schijfruimte hebben totdat ipfs uiteindelijk doorhad hoe het onnodige bestanden kon verwijderen.<\/li>\n<li>Toen ik de bibliotheek gebruikte (ik weet niet hoe het er nu mee is), had de client geen time-outs ge\u00efmplementeerd. Je verstuurt een aanvraag om een bestand te verkrijgen, en als het er niet is, blijf je gewoon hangen. Natuurlijk hebben mensen allerlei omwegen bedacht die het probleem gedeeltelijk oplosten, maar dat waren allemaal tijdelijke oplossingen. Dit soort dingen moet standaard aanwezig zijn.<\/li>\n<\/ul>\n<p>\nEr waren nog veel kleine problemen, de indruk die ik destijds kreeg was eenduidig: dit kan niet voor een project worden gebruikt. Ik ben verder gaan zoeken naar opslag, heb verschillende opties bestudeerd, maar vond uiteindelijk niets geschikts.<\/p>\n<p>Uiteindelijk besloot ik dat ik moest proberen om zelf een gedecentraliseerde opslag te schrijven. Laat het dan niet de ambitie hebben om interplanetaire opslag te zijn, maar het zal specifiek de gestelde taak oplossen.<\/p>\n<p>Zo is het ontstaan <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 dit is de belangrijkste, onderste laag die het mogelijk maakt om nodes in een netwerk te verbinden. Hierin is een algoritme ingebouwd, dat ik tot nu toe gedeeltelijk heb ge\u00efmplementeerd voor ongeveer 10.000 servers. De volledige versie van het algoritme is veel complexer in implementatie en zou nog enkele maanden extra vergen (misschien zelfs meer).<\/p>\n<p>Ik zal spreadable hier niet in detail beschrijven, ik schrijf er liever een aparte keer een artikel over. Hier wil ik slechts enkele kenmerken opmerken:<\/p>\n<ul>\n<li>Werkt via http\/https.<\/li>\n<li>Je kunt een apart netwerk opzetten voor een specifieke taak, wat de belasting op elk afzonderlijk project aanzienlijk vermindert dan als ze allemaal in \u00e9\u00e9n netwerk zouden zitten.<\/li>\n<li>Er is aanvankelijk een mechanisme voor time-outs en andere kleine dingen bedacht. En dat werkt voor alle methoden, zowel in de client als in de node. Je kunt flexibel parameters beheren vanuit je eigen applicatie.<\/li>\n<li>De bibliotheek is geschreven in nodejs. De prestatieproblemen van de stack worden gecompenseerd door de gedecentraliseerde natuur. De belasting kan worden 'uitgesmeerd' door het aantal knooppunten te vergroten. Daar staan veel voordelen tegenover: een enorme community, eenvoud en gebruiksvriendelijkheid, een isomorfe client, geen externe afhankelijkheden, enzovoort.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 is een laag die erft van spreadable en die het mogelijk maakt om bestanden in het netwerk op te slaan. Elk bestand heeft zijn eigen hash op basis van de inhoud, waarmee het later kan worden opgehaald. Bestanden worden niet in blokken verdeeld, maar volledig opgeslagen.<\/p>\n<p><b>metastocle <\/b> \u2014 is een laag die erft van spreadable en die het mogelijk maakt om gegevens in het netwerk op te slaan, maar geen bestanden. De interface lijkt op no-sql databases. Je kunt bijvoorbeeld een bestand toevoegen aan storacle, de hash ophalen en deze in metastocle opslaan met een koppeling naar iets.<\/p>\n<p><b>museria<\/b> \u2014 erft van storacle en metastocle. Deze laag is verantwoordelijk voor het opslaan van muziek. De opslag werkt alleen met mp3-bestanden en id3-tags. <\/p>\n<p>Als 'sleutel' voor een nummer wordt de volledige titel gebruikt in de vorm van <b>Artiest (TPE1) \u2014 Titel (TIT2)<\/b>. Bijvoorbeeld:<\/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>\nOm maximaal gedetailleerd te leren hoe songtitels worden gevormd, kun je <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">here<\/a><\/noindex>de functie bekijken <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>Een overeenkomst op basis van sleutels wordt gedefinieerd als een percentage dat in de knooppuntinstellingen is ingesteld. Bijvoorbeeld, een waarde van 0.85 betekent dat als de vergelijkingsfunctie van sleutels (songtitels) een overeenkomst van meer dan 85% detecteert, het hetzelfde nummer is.<\/p>\n<p>Het algoritme voor het bepalen van overeenkomsten bevindt zich daar ook, in de functie <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>De cover van het nummer kan voor latere toegang ook worden gekoppeld via tags (<b>APIC<\/b>). In de hulpprogramma's (utils) zijn alle noodzakelijke methoden voor het verkrijgen en verwerken van tags beschikbaar.<\/p>\n<p>Een voorbeeld van het werken met de opslag via de client kan worden bekeken in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">readme<\/a><\/noindex>.<\/p>\n<blockquote><p>Al deze genoemde lagen zijn zelfvoorzienend en kunnen afzonderlijk worden gebruikt als lagere lagen voor andere projecten. Bijvoorbeeld, er is al een idee om een laag voor het opslaan van boeken te maken.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 is een al geconfigureerde git-repository voor het starten van je eigen knooppunt in het wereldwijde muzieknetwerk. Je kloont, <b>npm i &amp;&amp; npm<\/b> start en dat is eigenlijk alles. Je kunt het gedetailleerder instellen, in Docker draaien, enzovoort. Gedetailleerde informatie is beschikbaar op <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global#museria-global-storage-alpha-\">GitHub<\/a><\/noindex>.<\/p>\n<p>Wanneer de repository wordt bijgewerkt, moet u ook uw knooppunt bijwerken. Als het hoofd- of subversienummer verandert, is deze actie noodzakelijk; anders worden oude knooppunten genegeerd door het netwerk.<\/p>\n<p>U kunt met nummers werken, zowel handmatig als programmatisch. Elk knooppunt start een server voor verschillende taken. Bij het bezoeken van de standaard eindpunt krijgt u een interface voor het werken met muziek. Bijvoorbeeld, u kunt naar <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">het hoofd- of wortelknop<\/a><\/noindex> (de link kan later niet meer actueel zijn, toegangsknooppunten zijn ook beschikbaar via <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">Telegram<\/a><\/noindex>, of u kunt updates bekijken op GitHub).<\/p>\n<p>Zo kunt u nummers zoeken en in de opslag uploaden. Het uploaden van nummers kan plaatsvinden in twee modi: standaard en gemodereerd. De tweede modus betekent dat een mens het werk uitvoert, niet een programma. En als u dit vinkje aanvinkt bij het toevoegen, moet u de captcha oplossen. Nummers kunnen worden toegevoegd met prioriteiten van -1, 0 of 1. Prioriteit 1 kan alleen worden ingesteld in de gemodereerde modus. Prioriteiten zijn nodig zodat de opslag effici\u00ebnter kan beslissen wat te doen wanneer u probeert een bestaand nummer door een nieuw nummer te vervangen. Hoe hoger de prioriteit, hoe groter de kans dat u het bestaande bestand vervangt. Dit helpt om spam te bestrijden en verhoogt de kwaliteit van de ge\u00fcploade nummers. <\/p>\n<p>Als u begint nummers aan de opslag toe te voegen, probeer dan ook afbeeldingen (cover) bij te voegen, hoewel dit veld niet verplicht is. In 99% van de gevallen zijn de eerste afbeeldingen op Google bij de titels van nummers albumcover.<\/p>\n<p>Technisch gezien, hoe het toevoegen van bestanden in zijn werk gaat, in het kort:<\/p>\n<ul>\n<li>De cli\u00ebnt ontvangt het adres van een vrij knooppunt, dat voor een korte periode de co\u00f6rdinator wordt.<\/li>\n<li>De functie voor het toevoegen van een nummer (door een persoon of code) wordt getriggerd, er wordt een verzoek gedaan om toe te voegen aan het eindpunt van de co\u00f6rdinator.<\/li>\n<li>De co\u00f6rdinator berekent hoeveel duplicaten moeten worden bewaard (een configureerbare parameter).<\/li>\n<li>De meest geschikte knooppunten voor opslag worden gezocht.<\/li>\n<li>Het bestand gaat rechtstreeks naar deze knooppunten. <\/li>\n<\/ul>\n<p>\nTechnisch gezien, hoe het verkrijgen van bestanden in zijn werk gaat:<\/p>\n<ul>\n<li>De cli\u00ebnt ontvangt het adres van een vrij knooppunt, dat voor een korte periode de co\u00f6rdinator wordt.<\/li>\n<li>De functie voor het verkrijgen van een nummer (door een persoon of code) wordt getriggerd, er wordt een verzoek gedaan om te verkrijgen aan het eindpunt van de co\u00f6rdinator.<\/li>\n<li>De co\u00f6rdinator controleert of de link in de cache aanwezig is. Als deze er is en werkt, wordt deze onmiddellijk aan de cli\u00ebnt teruggegeven, anders worden de knooppunten bevraagd naar de beschikbaarheid.<\/li>\n<li>Het bestand wordt gedownload via de link, als deze beschikbaar is. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternatieven voor muziekproducenten<\/h3>\n<p>\nIk heb altijd de vraag gesteld hoe je de waarde van veel creatieve werken objectief kunt beoordelen. Waarom stelt iemand bijvoorbeeld zijn muziekalbum voor $10? Of voor $20 of zelfs $100? Waar is het algoritme? Wanneer we het bijvoorbeeld hebben over een fysiek product of zelfs veel soorten diensten, kunnen we tenminste de kostprijs berekenen en daar vanuit gaan. <\/p>\n<p>Ok\u00e9, stel dat we $10 hebben vastgesteld. Is dat echt effectief? Stel dat ik het album ergens heb beluisterd of een nummer daarvan en besloot mijn waardering te tonen. Maar naar mijn gevoel en mijn mogelijkheden is $3 mijn maximum. En wat nu? Waarschijnlijk doe ik gewoon niets, net als de meeste mensen. <\/p>\n<p>Door een vaste prijs te stellen voor creatief werk, beperk je jezelf gewoon; je laat niet een groter aantal mensen de mogelijkheid om jou kleinere bedragen te sturen, die samen misschien indrukwekkender zijn dan wat degenen die tegen jouw vastgestelde prijs kopen besteden. Voor mij lijkt het erop dat creativiteit precies het gebied is waar donaties vooral moeten worden aangemoedigd. Hiervoor is het nodig:<\/p>\n<ul>\n<li>Mensen leren om op deze manier dankbaarheid te tonen. De makers moeten dit duidelijk aangeven dat ze donaties willen ontvangen, links naar verschillende betaalmethoden overal toevoegen, enz.<\/li>\n<li>Er zijn meer mechanismen nodig om deze processen te vereenvoudigen en te versterken. Bijvoorbeeld, het cre\u00ebren van een soort globale site waar mensen kunnen doneren voor creatieve werken via auteurslinks.\n<p>Stel, de link ziet er ongeveer zo uit: <\/p>\n<p><b><code>http:\/\/someartistsdonationsite.site\/category\/artist?external-info<\/code><\/b><\/p>\n<p>Als we het beperken tot muzikanten:<\/p>\n<p><b><code>http:\/\/someartistsdonationsite.com\/music\/miyagi?song=blabla<\/code><\/b><\/p>\n<p>De artiest moet zijn gebruikersnaam verifi\u00ebren en deze aan zichzelf koppelen.<\/p>\n<p>In de client Museria voegen we de functie voor het genereren van dergelijke links toe, en alle projecten die de opslag gebruiken, kunnen knoppen voor donaties met deze links naast de nummers op hun websites\/applicaties plaatsen. Gebruikers hebben de mogelijkheid om zeer snel en eenvoudig te doneren. Uiteraard kan deze aanpak in elk project en categorie van creativiteit worden gebruikt, niet alleen via de opslag.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Waarom, specifiek voor jou, een muziek opslagplaats is en hoe je daaraan kunt deelnemen<\/h3>\n<p><\/p>\n<ul>\n<li>Als je aan een project werkt dat met muziek te maken heeft of van plan bent er een te maken, dan is dit alles bedacht. Je kunt museria gebruiken om nummers op te slaan en te ontvangen, waardoor de stroom van muziek online toeneemt. Als je bovendien in staat bent om minstens \u00e9\u00e9n eigen knoop op te zetten en te onderhouden, is dat de beste bijdrage aan de ontwikkeling van het netwerk.<\/li>\n<li>Misschien ben je bereid om een andere rol op je te nemen: helpen met code, of gegevens in te vullen en te modereren, informatie over het project met je vrienden te verspreiden, enzovoort.<\/li>\n<li>Misschien vind je het idee leuk en ben je bereid financieel bij te dragen, zodat het allemaal kan blijven bestaan en zich kan ontwikkelen. Hoe meer knopen, hoe meer nummers.<\/li>\n<li>Of je hebt gewoon op een bepaald moment behoefte om een nummer te vinden en te downloaden. Je kunt dit heel eenvoudig doen, bijvoorbeeld via <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">de Telegram-bot.<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nHet project bevindt zich momenteel in de beginfase. Het testnet is opgestart, knopen kunnen vaak opnieuw opstarten, moeten updates vereisen, enzovoort. Als er geen kritieke problemen zijn tijdens de evaluatieperiode, zal dit netwerk worden getransformeerd in het hoofdnetwerk.<\/p>\n<p>Informatie over een knoop van buitenaf bekijken: het aantal nummers, vrije ruimte, enzovoort, kan via een link van het type <b><code>http:\/\/node-address\/status<\/code><\/b> of <b><code>http:\/\/node-address\/status?pretty<\/code><\/b><\/p>\n<p>Mijn contactgegevens:<\/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\">Groep op Telegram in het Engels.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">En de website, dankzij welke dit idee is ontstaan.<\/a><\/noindex><\/li>\n<\/ul>\n<p>Bron: <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.3 - 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\/nl\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\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\/nl\/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 een gedecentraliseerde muziekopslag | ProHoster","description":"Eens was ik van plan een applicatie te schrijven om.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","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\/nl\/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\/nl\/wp-json\/wp\/v2\/posts\/80222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=80222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/80222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media\/80223"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=80222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=80222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=80222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}