{"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\/it\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","title":{"rendered":"Museria \u2014 archivio musicale decentralizzato","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria \u2014 archivio musicale decentralizzato\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nUna volta mi sono messo a scrivere un'applicazione per selezionare musica per me stesso e ascoltarla a casa\/su strada\/in allenamento, ecc. E affinch\u00e9 tutto ci\u00f2 funzionasse senza il mio intervento. Ho ideato un'architettura, ho abbozzato un prototipo e alla fine mi sono imbattuto in un 'piccolo problema'. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nMa non era chiaro da dove prendere i file delle canzoni. A quel punto, VKontakte aveva gi\u00e0 chiuso l'API, anche nei grandi portali musicali non c'era nulla, nemmeno le canzoni venivano rilasciate in piccoli pezzi per evitare il parsing. Restavano solo alcuni siti usa e getta pieni di pubblicit\u00e0 e spazzatura, vari programmi-grabber dubbiosi e altre opzioni 'sporche'. In generale, non esisteva una vera e propria soluzione valida. Certo, posso acquistare un abbonamento a qualche servizio musicale come Yandex Music o simili. Ma di nuovo, non c'\u00e8 un'API pubblica aperta e non hai accesso alla musica tramite programmi. Alcune grandi aziende, in sostanza, hanno bloccato l'accesso alla musica per il resto. Perch\u00e9 \u00e8 successo tutto ci\u00f2? Addentrandomi, \u00e8 diventato chiaro che il problema principale risiede nei diritti d'autore. L'attuale soluzione sotto forma di abbonamenti soddisfa molti autori commerciali di opere musicali e queste stesse aziende. Nel contempo, la musica non commerciale e quella di tipo semi-commerciale rientrano anch'esse nella lista generale. O paghi per tutto, o non ascolti nulla.<\/p>\n<p>E ho iniziato a riflettere su cosa farne. Come posso organizzare la distribuzione libera della musica? Cosa farei se fossi io a creare musica e volessi guadagnarci? Mi piacerebbe se le mie canzoni venissero diffuse in modo pirata? Quali sono le soluzioni alternative in generale? <\/p>\n<p>Cos\u00ec si sono presentati due problemi principali da risolvere:<\/p>\n<ul>\n<li>Organizzazione della distribuzione libera della musica con metodi convenienti per la maggior parte delle persone, compresi quelli software.<\/li>\n<li>Offrire alternative agli autori musicali per guadagnare<\/li>\n<\/ul>\n<p><\/p>\n<h3>Un archivio musicale globale e decentralizzato<\/h3>\n<p>\nInizialmente ho cercato di trovare soluzioni gi\u00e0 esistenti e costruire tutto su questa base. Dopo un po' di tempo di ricerca, il primo che mi ha colpito \u00e8 stato <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>. Ho iniziato l'implementazione della mia idea, ma dopo un po' ho scoperto alcuni problemi critici in questa soluzione:<\/p>\n<ul>\n<li>Ipfs \u00e8 un archivio per tutto e per tutti. Qui ci sono immagini, musica, video e qualsiasi altra cosa. Insomma, una grande \"discarica\" planetaria. Quindi, quando avvii il tuo nodo, ricevi subito un'enorme carico di lavoro. La macchina si contorce dal dolore. <\/li>\n<li>Qualche meccanismo incompleto per l'assemblaggio della \"spazzatura\". Non so come sia ora, ma in quel momento, se nel file di configurazione indicavi che volevi limitare l'archivio a dieci gigabyte di dati, questo non significava nulla. L'archivio cresceva, ignorando molti parametri di configurazione. Alla fine, bisognava avere un enorme spazio su disco, finch\u00e9 ipfs non capiva come eliminare il superfluo.<\/li>\n<li>Al momento dell'utilizzo della libreria (non so come sia ora), il client non implementava i timeout. Inviavi una richiesta per ottenere un file, e se non era presente, semplicemente restavi bloccato. Naturalmente, le persone avevano trovato varie soluzioni alternative che in parte risolvevano il problema, ma erano dei palliativi. Queste cose dovrebbero funzionare gi\u00e0 \"fuori dalla scatola\".<\/li>\n<\/ul>\n<p>\nC'erano anche molti piccoli problemi, e la sensazione che si era creata era chiara: non si poteva utilizzare per un progetto. Ho continuato a cercare archivi, studiando diverse opzioni, ma non ho trovato nulla di adatto.<\/p>\n<p>Alla fine, ho deciso che valeva la pena provare a scrivere un archivio decentralizzato da solo. Anche se non ambir\u00e0 a essere interplanetario, risolver\u00e0 un compito specifico.<\/p>\n<p>E cos\u00ec sono nati <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> \u2013 questo \u00e8 lo strato principale, il livello pi\u00f9 basso, che consente di unire i nodi in una rete. \u00c8 basato su un algoritmo che ho implementato parzialmente calcolando per circa 10.000 server. La versione completa dell'algoritmo \u00e8 molto pi\u00f9 complessa da implementare e richiederebbe alcuni mesi aggiuntivi (forse anche di pi\u00f9).<\/p>\n<p>Non descriver\u00f2 dettagliatamente spreadable in questo articolo, sar\u00e0 meglio che ne scriva uno separato in un altro momento. Qui segnaler\u00f2 solo alcune peculiarit\u00e0:<\/p>\n<ul>\n<li>Funziona tramite http\/https.<\/li>\n<li>\u00c8 possibile creare una rete separata per specifici compiti, il che ridurr\u00e0 notevolmente il carico su ogni singolo progetto, rispetto a quando sono tutti nella stessa rete.<\/li>\n<li>\u00c8 stato progettato un meccanismo con timeout e altre piccole cose fin dall'inizio. E funziona per tutti i metodi sia nel client che nel nodo. \u00c8 possibile gestire in modo flessibile i parametri dalla propria applicazione.<\/li>\n<li>La libreria \u00e8 scritta in nodejs. I problemi di prestazioni dello stack sono compensati dalla natura decentralizzata. Il carico pu\u00f2 essere \"spalmato\" aumentando il numero di nodi. In cambio ci sono molti vantaggi: una comunit\u00e0 enorme, semplicit\u00e0 e facilit\u00e0 d'uso, un client isomorfico, assenza di dipendenze esterne, ecc.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 \u00e8 uno strato ereditato da spreadable, che consente di memorizzare file in rete. Ogni file ha un proprio hash basato sul contenuto, tramite il quale pu\u00f2 essere recuperato successivamente. I file non sono suddivisi in blocchi, ma memorizzati interamente.<\/p>\n<p><b>metastocle <\/b> \u2014 uno strato ereditato da spreadable, che consente di memorizzare dati in rete, ma non file. L'interfaccia \u00e8 simile a un database nosql. \u00c8 possibile, ad esempio, aggiungere un file in storacle, ottenere il suo hash e registrarlo in metastocle legato a qualcosa.<\/p>\n<p><b>museria<\/b> \u2014 \u00e8 ereditato da storacle e metastocle. Questo strato si occupa direttamente della memorizzazione della musica. Lo storage funziona solo con file mp3 e tag id3. <\/p>\n<p>Come \"chiave\" per la canzone viene utilizzato il suo titolo completo sotto forma di <b>Artista (TPE1) \u2014 Titolo (TIT2)<\/b>. Ad esempio:<\/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>\nPer sapere nel dettaglio come vengono formati i titoli delle canzoni si pu\u00f2 <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">qui<\/a><\/noindex>. Bisogna controllare la funzione <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>Una corrispondenza per chiavi \u00e8 considerata una percentuale definita nelle impostazioni del nodo. Ad esempio, un valore di 0.85 significa che se la funzione di comparazione delle chiavi (titoli delle canzoni) rileva una somiglianza superiore all'85%, allora si tratta della stessa canzone.<\/p>\n<p>L'algoritmo di determinazione della somiglianza si trova anch'esso nella funzione <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>La copertina della canzone, per un successivo recupero, deve essere ancorata anche tramite tag (<b>APIC<\/b>). Nelle utility (utils) ci sono tutti i metodi necessari per ottenere e elaborare i tag.<\/p>\n<p>Un esempio di lavoro con lo storage tramite client pu\u00f2 essere visto in <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">readme<\/a><\/noindex>.<\/p>\n<blockquote><p>Tutti gli strati sopra menzionati sono autonomi e possono essere utilizzati separatamente come strati inferiori per altri progetti. Ad esempio, c'\u00e8 gi\u00e0 l'idea di creare uno strato per memorizzare libri.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 \u00e8 un repository git gi\u00e0 configurato per l'avvio del proprio nodo nella rete globale della musica. Clonati, <b>npm i &amp;&amp; npm<\/b> start ed \u00e8 praticamente tutto. \u00c8 possibile configurare in modo pi\u00f9 dettagliato, eseguire in docker, ecc. Maggiori informazioni sono disponibili su <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global#museria-global-storage-alpha-\">GitHub<\/a><\/noindex>.<\/p>\n<p>Quando il repository viene aggiornato, \u00e8 necessario aggiornare anche il proprio nodo. Se cambia il numero di versione principale o secondaria, questa azione \u00e8 obbligatoria, altrimenti i nodi obsoleti saranno ignorati dalla rete.<\/p>\n<p>Puoi lavorare con le canzoni manualmente o programmando. Ogni nodo avvia un server per vari compiti. Ad esempio, visitando l'endpoint predefinito, otterrai un'interfaccia per lavorare con la musica. Puoi andare su <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">nodo principale<\/a><\/noindex> (il link potrebbe non essere pi\u00f9 valido in seguito, i nodi di ingresso possono essere ottenuti anche in <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">telegramma<\/a><\/noindex>, o puoi controllare gli aggiornamenti su GitHub).<\/p>\n<p>In questo modo puoi cercare e caricare canzoni nella memoria. Il caricamento delle canzoni pu\u00f2 avvenire in due modalit\u00e0: ordinaria e moderata. La seconda modalit\u00e0 significa che il lavoro \u00e8 svolto da una persona, non da un programma. E se selezioni questa opzione durante l'aggiunta, sar\u00e0 necessario risolvere un CAPTCHA. Le canzoni possono essere aggiunte con priorit\u00e0 -1, 0 o 1. La priorit\u00e0 1 pu\u00f2 essere impostata solo in modalit\u00e0 moderata. Le priorit\u00e0 sono necessarie affinch\u00e9 la memoria prenda decisioni pi\u00f9 efficaci quando tenti di sostituire una canzone esistente con una nuova. Maggiore \u00e8 la priorit\u00e0, maggiori sono le possibilit\u00e0 che tu sovrascriva il file esistente. Questo aiuta a combattere lo spam e aumenta la qualit\u00e0 delle canzoni caricate. <\/p>\n<p>Se inizi ad aggiungere canzoni nella memoria, cerca di allegare anche le immagini (cover), anche se questo campo non \u00e8 obbligatorio. Nel 99% dei casi, le prime immagini su Google con i titoli delle canzoni sono le copertine degli album.<\/p>\n<p>Come avviene tecnicamente l'aggiunta di file, in poche parole:<\/p>\n<ul>\n<li>Il client riceve l'indirizzo di un nodo libero, che diventer\u00e0 coordinatore per un certo periodo.<\/li>\n<li>Viene attivata la funzione di aggiunta della canzone (da parte di una persona o da codice), e si invia una richiesta per aggiungere all'endpoint del coordinatore.<\/li>\n<li>Il coordinatore calcola quanti duplicati devono essere mantenuti (parametro configurabile).<\/li>\n<li>Vengono cercati i nodi pi\u00f9 adatti per il salvataggio.<\/li>\n<li>Il file, direttamente, viene inviato a questi nodi. <\/li>\n<\/ul>\n<p>\nCome avviene tecnicamente il recupero dei file:<\/p>\n<ul>\n<li>Il client riceve l'indirizzo di un nodo libero, che diventer\u00e0 coordinatore per un certo periodo.<\/li>\n<li>Viene attivata la funzione di recupero della canzone (da parte di una persona o da codice), e si invia una richiesta per il recupero all'endpoint del coordinatore.<\/li>\n<li>Il coordinatore controlla la presenza del link nella cache. Se esiste ed \u00e8 funzionante, viene restituito immediatamente al client, altrimenti vengono interrogati i nodi per verificarne la disponibilit\u00e0.<\/li>\n<li>Si sta recuperando il file dal link, se disponibile. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternative per i creatori di musica<\/h3>\n<p>\nMi sono sempre chiesto come si possa valutare obiettivamente il prezzo di molte opere creative. Perch\u00e9, ad esempio, una persona mette il proprio album musicale a 10$? O a 20$ o a 100$. Qual \u00e8 l'algoritmo? Quando, ad esempio, parliamo di un prodotto fisico, o anche di molti tipi di servizi, possiamo almeno calcolare il costo e partire da quello. <\/p>\n<p>Ok, supponiamo che abbiamo messo 10$. \u00c8 davvero efficace? Supponiamo di aver ascoltato un album da qualche parte o una canzone da l\u00ec e di aver deciso di ringraziare. Ma secondo le mie sensazioni e le mie possibilit\u00e0, 3$ \u00e8 il mio tetto. E come ci si comporta in questo caso? Probabilmente non far\u00f2 nulla, come la maggior parte delle persone. <\/p>\n<p>Impostando un prezzo fisso per il lavoro creativo, ti limiti semplicemente, non permetti a pi\u00f9 persone di inviarti somme inferiori che, sommate, potrebbero essere pi\u00f9 consistenti rispetto a coloro che acquistano al prezzo stabilito da te. Penso che la creativit\u00e0 sia proprio un settore dove le donazioni dovrebbero dominare. Per questo \u00e8 necessario:<\/p>\n<ul>\n<li>Insegnare alle persone a ringraziare in questo modo. I creatori devono mostrare chiaramente che vorrebbero ricevere donazioni, aggiungendo link su diversi metodi di pagamento ovunque.<\/li>\n<li>Ci sono bisogno di pi\u00f9 meccanismi per semplificare e potenziare questi processi. Ad esempio, creare un sito globale dove si possano fare donazioni per la creativit\u00e0 tramite link personalizzati.\n<p>Supponiamo che il link sia pi\u00f9 o meno cos\u00ec: <\/p>\n<p><b><code>http:\/\/someartistsdonationsite.site\/category\/artist?external-info<\/code><\/b><\/p>\n<p>Se restringiamo ai musicisti, allora:<\/p>\n<p><b><code>http:\/\/someartistsdonationsite.com\/music\/miyagi?song=blabla<\/code><\/b><\/p>\n<p>L'artista deve verificare il proprio nickname e associarsi ad esso.<\/p>\n<p>Nel client museria aggiungiamo una funzione di generazione di link simili, e tutti i progetti che utilizzano il repository possono posizionare nei propri siti\/applicazioni dei pulsanti per le donazioni con questi link accanto alle canzoni. Gli utenti hanno la possibilit\u00e0 di fare una donazione in modo molto rapido e semplice. Ovviamente, questo approccio pu\u00f2 essere utilizzato in qualsiasi progetto e categoria creativa, non solo attraverso il repository.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Perch\u00e9, proprio per te, uno storage musicale, e come puoi partecipare<\/h3>\n<p><\/p>\n<ul>\n<li>Se lavori a un progetto legato alla musica o stai pianificando di crearne uno, allora tutto questo \u00e8 stato concepito per te. Puoi utilizzare museria per archiviare e ottenere canzoni, aumentando il flusso musicale nella rete. Se hai la possibilit\u00e0 di gestire e mantenere almeno un nodo, sar\u00e0 il miglior contributo allo sviluppo della rete.<\/li>\n<li>Forse sei pronto a assumerti un altro ruolo: aiutare con il codice, o compilare e moderare il database, diffondere informazioni sul progetto ai tuoi conoscenti, ecc.<\/li>\n<li>Forse ti \u00e8 piaciuta l'idea e sei disposto ad aiutare materialmente affinch\u00e9 tutto questo viva e si sviluppi. Pi\u00f9 nodi ci sono, pi\u00f9 canzoni ci saranno.<\/li>\n<li>Oppure a un certo punto potresti avere semplicemente bisogno di trovare e scaricare una canzone. Potrai farlo molto facilmente, ad esempio tramite <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">un bot di telegram<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nIl progetto \u00e8 attualmente nella sua fase iniziale. \u00c8 stata avviata una rete di test, i nodi potrebbero riavviarsi frequentemente, richiedere aggiornamenti, ecc. In assenza di problemi critici durante il periodo di valutazione, questa rete sar\u00e0 trasformata nella rete principale.<\/p>\n<p>Puoi visualizzare le informazioni su un nodo dall'esterno: numero di canzoni, spazio libero, ecc., tramite un link del tipo <b><code>http:\/\/node-address\/status<\/code><\/b> o <b><code>http:\/\/node-address\/status?pretty<\/code><\/b><\/p>\n<p>I miei contatti:<\/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\">Gruppo su Telegram in inglese.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">E il sito grazie al quale \u00e8 nata tutta questa idea.<\/a><\/noindex><\/li>\n<\/ul>\n<p>Fonte: <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\/it\/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=\"it_IT\" \/>\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\/it\/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 - un archivio musicale decentralizzato | ProHoster","description":"Una volta ho deciso di scrivere un'applicazione per.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/80222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=80222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/80222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media\/80223"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=80222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=80222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=80222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}