{"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\/de\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","title":{"rendered":"Museria \u2013 ein dezentrales Musikspeicher","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria \u2013 ein dezentrales Musikspeicher\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIch habe mich eines Tages entschlossen, eine Anwendung zu erstellen, um Musik f\u00fcr mich auszuw\u00e4hlen und sie zu Hause, drau\u00dfen, beim Training usw. zu h\u00f6ren. Und dass das alles im Hintergrund funktioniert, mit minimaler Beteiligung meinerseits. Ich habe die Architektur entworfen, einen Prototyp skizziert und bin schlie\u00dflich auf ein \"kleines Problem\" gesto\u00dfen. <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nIch wusste nicht, woher ich die Musikdateien bekommen sollte. Zu diesem Zeitpunkt hatte VKontakte bereits die API geschlossen, auf gro\u00dfen Musikportalen ist es ebenfalls still geworden, selbst die Lieder werden in Teilen angeboten, um das Parsen zu verhindern. Es blieben nur einige eint\u00e4gige Webseiten mit viel Werbung und M\u00fcll, allerlei fragw\u00fcrdige Grabber-Programme und andere \"schmutzige\" Alternativen. Kurz gesagt, es gab keine wirkliche gute L\u00f6sung. Man k\u00f6nnte nat\u00fcrlich ein Abonnement f\u00fcr einen Dienst wie Yandex.Music oder \u00e4hnliches kaufen. Aber auch da gibt es nirgendwo eine offene \u00f6ffentliche API, und man hat keinen programmatischen Zugriff auf die Musik. Mehrere gro\u00dfe Unternehmen haben de facto den Zugang zur Musik f\u00fcr andere eingeschr\u00e4nkt. Warum ist das \u00fcberhaupt passiert? Bei n\u00e4herer Betrachtung wurde klar, dass das Hauptproblem die Urheberrechte sind. Die derzeitige L\u00f6sung in Form von Abonnements gef\u00e4llt vielen kommerziellen Autoren musikalischer Werke und diesen Unternehmen. Dabei kommen auch nichtkommerzielle und bedingt kommerzielle Musik in die allgemeine Liste. Entweder man bezahlt f\u00fcr alles, oder man h\u00f6rt \u00fcberhaupt nichts.<\/p>\n<p>Also begann ich dar\u00fcber nachzudenken, was man damit machen kann. Wie k\u00f6nnte man die freie Verbreitung von Musik organisieren? Was w\u00fcrde ich tun, wenn ich selbst Musik schaffen w\u00fcrde und damit Geld verdienen wollte? W\u00fcrde es mir gefallen, wenn meine Lieder piratisch verbreitet w\u00fcrden? Welche alternativen L\u00f6sungen gibt es \u00fcberhaupt? <\/p>\n<p>Letztendlich gibt es zwei Hauptprobleme, die gel\u00f6st werden m\u00fcssen:<\/p>\n<ul>\n<li>Organisation der freien Verbreitung von Musik auf f\u00fcr die meisten Menschen komfortable Weise, einschlie\u00dflich programmatischer L\u00f6sungen.<\/li>\n<li>Angebot von Alternativen f\u00fcr Musikschaffende, um Einkommen zu generieren.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Globale dezentrale Musikspeicher-L\u00f6sungen.<\/h3>\n<p>\nZun\u00e4chst habe ich versucht, bereits bestehende L\u00f6sungen zu finden und alles darauf aufzubauen. Nach einiger Zeit der Suche fiel mir als erstes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>ins Auge. Ich begann mit der Umsetzung meiner Idee, stie\u00df jedoch nach einiger Zeit auf mehrere kritische Probleme mit dieser L\u00f6sung:<\/p>\n<ul>\n<li>Ipfs \u2013 ein Speicher f\u00fcr alles und jeden. Hier gibt es Bilder, Musik, Videos und alles M\u00f6gliche. Im Grunde genommen eine gro\u00dfe planetarische \u201eM\u00fcllhalde\u201c. Deshalb erh\u00e4ltst du beim Starten deines Knotens sofort eine enorme Belastung. Die Maschine krampft schlicht vor Schmerz. <\/li>\n<li>Eine Art unfertiger Mechanismus zur Sammlung von \u201eM\u00fcll\u201c. Ich wei\u00df nicht, wie das jetzt ist, aber damals, wenn du in der Konfiguration angegeben hast, dass du deinen Speicher auf zehn Gigabyte Daten beschr\u00e4nken m\u00f6chtest, bedeutete das nichts. Der Speicher wuchs und ignorierte viele Konfigurationsparameter. Am Ende musste man \u00fcber einen riesigen Speicherplatz auf der Festplatte verf\u00fcgen, bis ipfs herausfand, wie man das Unn\u00f6tige loswerden kann.<\/li>\n<li>Zum Zeitpunkt der Nutzung der Bibliothek (ich wei\u00df nicht, wie es jetzt ist) hatte der Client keine Timeouts implementiert. Du schickst eine Anfrage zum Abrufen einer Datei und wenn sie nicht vorhanden ist, h\u00e4ngst du einfach fest. Nat\u00fcrlich haben die Leute verschiedene Umgehungsstrategien erfunden, die das Problem teilweise l\u00f6sten, aber das waren Notl\u00f6sungen. Solche Dinge sollten von Anfang an funktionieren.<\/li>\n<\/ul>\n<p>\nAu\u00dferdem gab es viele kleine Probleme, der Eindruck war damals eindeutig: Das kann man nicht f\u00fcr ein Projekt benutzen. Ich setzte die Suche nach einem Speicher fort, studierte verschiedene Optionen, fand aber nichts geeigneten.<\/p>\n<p>Letztendlich beschloss ich, dass es sich lohnt, ein dezentrales Speichersystem selbst zu entwickeln. Es muss zwar nicht f\u00fcr interplanetare Zwecke relevant sein, aber es sollte die konkret gestellte Aufgabe l\u00f6sen.<\/p>\n<p>So sind sie entstanden. <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 das ist die grundlegende, unterste Schicht, die es erm\u00f6glicht, Knoten in einem Netzwerk zu verbinden. Darin ist ein Algorithmus eingebettet, den ich bisher nur teilweise mit Blick auf etwa 10.000 Server implementiert habe. Die vollst\u00e4ndige Version des Algorithmus ist viel komplizierter in der Umsetzung und w\u00fcrde noch einige zus\u00e4tzliche Monate (vielleicht sogar mehr) in Anspruch nehmen.<\/p>\n<p>Ich werde spreadable in diesem Artikel nicht im Detail beschreiben, besser schreibe ich irgendwann einen separaten Artikel. Hier m\u00f6chte ich nur einige Besonderheiten hervorheben:<\/p>\n<ul>\n<li>Es funktioniert \u00fcber http\/https.<\/li>\n<li>Es ist m\u00f6glich, ein separates Netzwerk f\u00fcr eine spezifische Aufgabe zu erstellen, was die Belastung jedes einzelnen Projekts erheblich reduziert, als wenn sie alle in einem Netzwerk w\u00e4ren.<\/li>\n<li>Von Anfang an wurde ein Mechanismus mit Timeouts und anderen Kleinigkeiten durchdacht. Und das funktioniert f\u00fcr alle Methoden sowohl im Client als auch im Knoten. Man kann die Parameter flexibel aus seiner Anwendung steuern.<\/li>\n<li>Die Bibliothek ist in nodejs geschrieben. Die Leistungsprobleme des Stacks werden durch die dezentralisierte Natur ausgeglichen. Die Last kann durch die Erh\u00f6hung der Anzahl der Knoten \"verstreut\" werden. Im Gegenzug gibt es viele Vorteile: eine riesige Community, einfache und bequeme Arbeit, ein isomorpher Client, keine externen Abh\u00e4ngigkeiten usw.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 ist eine Schicht, die von spreadable erbt und es erm\u00f6glicht, Dateien im Netzwerk zu speichern. Jede Datei hat ihren Hash basierend auf ihrem Inhalt, \u00fcber den sie sp\u00e4ter abgerufen werden kann. Dateien werden nicht in Bl\u00f6cke unterteilt, sondern als Ganzes gespeichert.<\/p>\n<p><b>metastocle <\/b> \u2014 ist eine Schicht, die von spreadable erbt und es erm\u00f6glicht, Daten im Netzwerk zu speichern, jedoch keine Dateien. Die Schnittstelle \u00e4hnelt NoSQL-Datenbanken. Man kann beispielsweise eine Datei in storacle hinzuf\u00fcgen, ihren Hash erhalten und in metastocle mit einer Bindung an etwas schreiben.<\/p>\n<p><b>museria<\/b> \u2014 erbt von storacle und metastocle. Diese Schicht ist direkt f\u00fcr die Speicherung von Musik verantwortlich. Der Speicher arbeitet nur mit mp3-Dateien und ID3-Tags. <\/p>\n<p>Der \"Schl\u00fcssel\" zum Lied ist sein vollst\u00e4ndiger Titel in der Form <b>K\u00fcnstler (TPE1) \u2014 Titel (TIT2)<\/b>. Zum Beispiel:<\/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>\nUm detailliert zu erfahren, wie die Titel von Liedern gebildet werden, kann man <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">hier<\/a><\/noindex>nachsehen. Man muss die Funktion <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>Eine \u00dcbereinstimmung der Schl\u00fcssel wird durch einen in den Knoteneinstellungen definierten Prozentsatz bestimmt. Zum Beispiel bedeutet der Wert 0,85, dass, wenn die Schl\u00fcsselvergleichsfunktion (Liedtitel) eine \u00c4hnlichkeit von mehr als 85 % feststellt, es sich um dasselbe Lied handelt.<\/p>\n<p>Der Algorithmus zur Bestimmung der \u00c4hnlichkeit befindet sich ebenfalls in der Funktion <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>Das Cover zum Lied kann ebenfalls \u00fcber Tags angeh\u00e4ngt werden (<b>APIC<\/b>). In den Utilities (utils) gibt es alle notwendigen Methoden zum Abrufen und Verarbeiten von Tags.<\/p>\n<p>Ein Beispiel f\u00fcr die Arbeit mit dem Speicher \u00fcber den Client kann in gesehen werden <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\">readme<\/a><\/noindex>.<\/p>\n<blockquote><p>Alle oben genannten Schichten sind eigenst\u00e4ndig und k\u00f6nnen separat als niedrigere Schichten f\u00fcr andere Projekte verwendet werden. Zum Beispiel gibt es bereits \u00dcberlegungen, eine Schicht f\u00fcr die Speicherung von B\u00fcchern zu schaffen.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 ist ein bereits konfiguriertes Git-Repository zum Starten eines eigenen Knotens im globalen Musiknetz. Klonen, <b>npm i &amp;&amp; npm<\/b> start und das war's. Man kann es detaillierter konfigurieren, im Docker ausf\u00fchren usw. Detaillierte Informationen sind auf <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria-global#museria-global-storage-alpha-\">GitHub<\/a><\/noindex>.<\/p>\n<p>Wenn das Repository aktualisiert wird, muss auch Ihr Knoten aktualisiert werden. Wenn sich die Haupt- oder Nebenversion \u00e4ndert, ist dieser Schritt erforderlich, andernfalls werden alte Knoten vom Netzwerk ignoriert.<\/p>\n<p>Sie k\u00f6nnen mit Songs sowohl manuell als auch programmatisch arbeiten. Jeder Knoten startet einen Server f\u00fcr verschiedene Aufgaben. Unter anderem erhalten Sie beim Besuch des Standard-Endpunkts eine Schnittstelle zur Arbeit mit Musik. Zum Beispiel k\u00f6nnen Sie auf <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">den Wurzelknoten<\/a><\/noindex> (der Link k\u00f6nnte sp\u00e4ter nicht mehr aktuell sein, Eingangs-Knoten k\u00f6nnen auch in der <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">Telegram<\/a><\/noindex>, oder Sie k\u00f6nnen die Updates auf GitHub einsehen).<\/p>\n<p>So k\u00f6nnen Sie Songs im Speicher suchen und hochladen. Das Hochladen von Songs kann in zwei Modi erfolgen: normal und moderiert. Der zweite Modus bedeutet, dass eine Person, nicht ein Programm, die Arbeit durchf\u00fchrt. Wenn Sie dieses K\u00e4stchen beim Hinzuf\u00fcgen ankreuzen, m\u00fcssen Sie ein Captcha l\u00f6sen. Songs k\u00f6nnen mit Priorit\u00e4ten von -1, 0 oder 1 hinzugef\u00fcgt werden. Priorit\u00e4t 1 kann nur im moderierten Modus gesetzt werden. Die Priorit\u00e4ten sind notwendig, damit der Speicher effektiver entscheiden kann, was zu tun ist, wenn Sie versuchen, einen bereits vorhandenen Song durch einen neuen zu ersetzen. Je h\u00f6her die Priorit\u00e4t, desto gr\u00f6\u00dfer sind die Chancen, dass Sie die vorhandene Datei \u00fcberschreiben. Dies hilft, Spam zu bek\u00e4mpfen und die Qualit\u00e4t der hochgeladenen Songs zu erh\u00f6hen. <\/p>\n<p>Wenn Sie beginnen, Songs im Speicher hinzuzuf\u00fcgen, versuchen Sie, auch Bilder (Cover) anzuh\u00e4ngen, auch wenn dieses Feld nicht obligatorisch ist. In 99 % der F\u00e4lle sind die ersten Bilder, die Sie in Google zu den Songtiteln finden, Albumcover.<\/p>\n<p>Wie das Hinzuf\u00fcgen von Dateien technisch abl\u00e4uft, in K\u00fcrze:<\/p>\n<ul>\n<li>Der Client erh\u00e4lt die Adresse eines freien Knotens, der f\u00fcr einige Zeit zum Koordinator wird.<\/li>\n<li>Die Funktion zum Hinzuf\u00fcgen eines Songs (durch eine Person oder Code) wird ausgel\u00f6st, und eine Anfrage zum Hinzuf\u00fcgen wird an den Endpunkt des Koordinators gesendet.<\/li>\n<li>Der Koordinator berechnet, wie viele Duplikate gespeichert werden m\u00fcssen (konfigurierbarer Parameter).<\/li>\n<li>Es werden die am besten geeigneten Knoten zum Speichern gesucht.<\/li>\n<li>Die Datei wird direkt auf diese Knoten gesendet. <\/li>\n<\/ul>\n<p>\nWie das Abrufen von Dateien technisch abl\u00e4uft:<\/p>\n<ul>\n<li>Der Client erh\u00e4lt die Adresse eines freien Knotens, der f\u00fcr einige Zeit zum Koordinator wird.<\/li>\n<li>Die Funktion zum Abrufen eines Songs (durch eine Person oder Code) wird ausgel\u00f6st, und eine Anfrage zum Abrufen wird an den Endpunkt des Koordinators gesendet.<\/li>\n<li>Der Koordinator \u00fcberpr\u00fcft, ob der Link im Cache vorhanden ist. Wenn ja und er funktioniert, wird er sofort an den Client zur\u00fcckgegeben, andernfalls werden die Knoten nach der Verf\u00fcgbarkeit befragt.<\/li>\n<li>Die Datei wird \u00fcber den Link abgerufen, sofern ein solcher gefunden wurde. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternativen f\u00fcr Musikschaffende<\/h3>\n<p>\nMich hat immer die Frage interessiert, wie man den Wert vieler kreativer Werke objektiv einsch\u00e4tzen kann. Warum beispielsweise verlangt jemand f\u00fcr sein Musikalbum 10 $? Oder 20 $ oder 100 $. Wo ist der Algorithmus? Wenn wir \u00fcber ein physisches Produkt oder sogar \u00fcber viele Dienstleistungen sprechen, k\u00f6nnen wir mindestens die Selbstkosten berechnen und darauf basierend vorgehen. <\/p>\n<p>Okay, nehmen wir an, es wurden 10 $ festgelegt. Ist das wirklich effektiv? Angenommen, ich habe irgendwo das Album oder einen song daraus geh\u00f6rt und m\u00f6chte mich bedanken. Aber nach meinem Empfinden und meinen M\u00f6glichkeiten sind 3 $ mein H\u00f6chstbetrag. Und was mache ich jetzt? Wahrscheinlich werde ich einfach nichts tun, wie die meisten Leute. <\/p>\n<p>Wenn du einen festen Preis f\u00fcr kreative Arbeit festlegst, schr\u00e4nkst du dich einfach ein und gibst einer gr\u00f6\u00dferen Anzahl von Menschen nicht die M\u00f6glichkeit, dir weniger Geld zu schicken, was insgesamt mehr sein k\u00f6nnte als von denjenigen, die zu dem von dir festgelegten Preis kaufen. Ich denke, Kreativit\u00e4t ist genau das Gebiet, in dem in erster Linie Spenden entscheidend sein sollten. Daf\u00fcr braucht es:<\/p>\n<ul>\n<li>Die Menschen zu lehren, auf diese Weise Dankbarkeit zu zeigen. Die Kreativen m\u00fcssen klar zeigen, dass sie sich Spenden w\u00fcnschen und \u00fcberall Links zu verschiedenen Zahlungsmethoden hinzuf\u00fcgen usw.<\/li>\n<li>Es braucht mehr Mechanismen zur Vereinfachung und Verst\u00e4rkung dieser Prozesse. Zum Beispiel einen globalen Ort zu schaffen, wo man f\u00fcr Kreativit\u00e4t durch spezielle Links spenden kann.\n<p>Angenommen, der Link sieht ungef\u00e4hr so aus: <\/p>\n<p><b><code>http:\/\/someartistsdonationsite.site\/category\/artist?external-info<\/code><\/b><\/p>\n<p>Wenn wir uns auf Musiker konzentrieren, dann:<\/p>\n<p><b><code>http:\/\/someartistsdonationsite.com\/music\/miyagi?song=blabla<\/code><\/b><\/p>\n<p>Der K\u00fcnstler muss seinen Nicknamen verifizieren und an ihn gebunden sein.<\/p>\n<p>Im Client museria f\u00fcgen wir eine Funktion zur Generierung eines solchen Links hinzu, und alle Projekte, die das Speicherformat nutzen, k\u00f6nnen auf ihren Websites\/Apps Schaltfl\u00e4chen f\u00fcr Spenden mit diesen Links neben den Songs platzieren. Die Nutzer haben die M\u00f6glichkeit, sehr schnell und einfach zu spenden. Nat\u00fcrlich kann dieser Ansatz auch in jedem Projekt und in jeder Kategorie der Kreativit\u00e4t verwendet werden, nicht nur \u00fcber das Speicherformat.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Warum gerade dir, ein musikalisches Speicherformat, und wie man daran teilnehmen kann?<\/h3>\n<p><\/p>\n<ul>\n<li>Wenn du an einem Projekt arbeitest, das mit Musik zu tun hat, oder planst, eines zu erstellen, dann wurde genau daf\u00fcr alles ins Leben gerufen. Du kannst museria nutzen, um Songs zu speichern und abzurufen und damit den Songfluss im Netz zu erh\u00f6hen. Wenn du in der Lage bist, mindestens einen eigenen Knoten zu betreiben und zu halten, w\u00e4re das der beste Beitrag zur Entwicklung des Netzwerks.<\/li>\n<li>Vielleicht bist du bereit, einen anderen Teil zu \u00fcbernehmen: beim Programmieren zu helfen, die Datenbank zu f\u00fcllen und zu moderieren, Informationen \u00fcber das Projekt an deine Bekannten zu verbreiten usw.<\/li>\n<li>Vielleicht gef\u00e4llt dir die Idee und du bist bereit, finanziell zu helfen, damit all dies lebt und sich entwickelt. Je mehr Knoten, desto mehr Songs.<\/li>\n<li>Oder du wirst m\u00f6glicherweise einfach irgendwann einen Song finden und herunterladen wollen. Das kannst du ganz einfach tun, zum Beispiel \u00fcber <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">einen Telegram-Bot<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nDas Projekt befindet sich derzeit in der allerersten Phase. Ein Testnetz wurde gestartet, Knoten k\u00f6nnen oft neu gestartet werden, Updates erfordern usw. Sollte es w\u00e4hrend der Bewertungsphase keine kritischen Probleme geben, wird dasselbe Netzwerk in das Hauptnetz umgewandelt.<\/p>\n<p>Informationen \u00fcber einen Knoten von au\u00dfen einsehen: Anzahl der Songs, freien Speicherplatz usw. kannst du \u00fcber einen Link in der Form <b><code>http:\/\/node-address\/status<\/code><\/b> oder <b><code>http:\/\/node-address\/status?pretty<\/code><\/b><\/p>\n<p>Meine Kontakte:<\/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\">Gruppe auf Telegram in Englisch.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">Und die Website, durch die all diese Idee entstand.<\/a><\/noindex><\/li>\n<\/ul>\n<p>Quelle: <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\/de\/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=\"de_DE\" \/>\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\/de\/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 dezentrales Musik-Repository | ProHoster","description":"Eines Tages hatte ich die Idee, eine Anwendung zu schreiben, um.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/museria-deczentralizovannoe-hranilishhe-muzyki","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\/de\/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\/de\/wp-json\/wp\/v2\/posts\/80222","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=80222"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/80222\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/80223"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=80222"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=80222"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=80222"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}