{"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 \u2014 dezentrales Musiklager","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Museria \u2014 dezentrales Musiklager\" src=\"\/wp-content\/uploads\/2020\/05\/e5323f70f0df3f3bb6fb92ae0544ad2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEines Tages beschloss ich, eine App zu entwickeln, um Musik f\u00fcr mich auszuw\u00e4hlen und sie zu Hause, drau\u00dfen, beim Training usw. zu h\u00f6ren. Ich entwarf die Architektur, skizzierte einen Prototyp und stie\u00df letztendlich auf ein \"kleines Problem\". <br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEs ist unklar, woher man die Musikdateien bekommen soll. Inzwischen hat \u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435 bereits die API geschlossen, und auch auf gro\u00dfen Musikportalen ist es ganz still. Selbst die Lieder werden nur in Teilen bereitgestellt, um das Parsen zu verhindern. Es blieben nur einige zwielichtige Ein-Seiten-Websites mit jeder Menge Werbung und Schrott sowie fragw\u00fcrdige Grabber-Programme und andere \"schmutzige\" Optionen. Im Grunde gibt es keine echten, guten L\u00f6sungen. Nat\u00fcrlich kann man ein Abonnement f\u00fcr einen Musikdienst wie Yandex.Music oder \u00c4hnliches erwerben. Aber auch dort gibt es keine offene, \u00f6ffentliche API, und man hat keinen programmgesteuerten Zugang zur Musik. Mehrere gro\u00dfe Firmen haben de facto den Zugang zur Musik f\u00fcr andere eingeschr\u00e4nkt. Wie kam es \u00fcberhaupt dazu? Bei n\u00e4herer Betrachtung wird offensichtlich, dass das Hauptproblem in den Urheberrechten liegt. Die aktuelle L\u00f6sung in Form von Abonnements ist f\u00fcr viele kommerzielle Urheber von Musikwerken und die entsprechenden Firmen akzeptabel. Dabei fallen auch nicht-kommerzielle und bedingt kommerzielle Musikst\u00fccke in die allgemeine Liste. Entweder man bezahlt f\u00fcr alles oder man h\u00f6rt \u00fcberhaupt nichts.<\/p>\n<p>Ich begann dar\u00fcber nachzudenken, was ich mit all dem tun sollte. Wie kann man die freie Verbreitung von Musik organisieren? Was w\u00fcrde ich tun, wenn ich selbst Musik erstellen w\u00fcrde und damit Geld verdienen m\u00f6chte? W\u00fcrde es mir gefallen, wenn meine Lieder auf illegale Weise verbreitet w\u00fcrden? Gibt es \u00fcberhaupt alternative L\u00f6sungen? <\/p>\n<p>Letztendlich gibt es zwei Hauptprobleme, die gel\u00f6st werden m\u00fcssen:<\/p>\n<ul>\n<li>Die Organisation der freien Verbreitung von Musik auf f\u00fcr die meisten Menschen bequeme Weise, einschlie\u00dflich technischer L\u00f6sungen.<\/li>\n<li>Das Angebot von Alternativen f\u00fcr Musikschaffende, um Geld zu verdienen.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Ein globaler, dezentralisierter Musikspeicher.<\/h3>\n<p>\nZun\u00e4chst versuchte ich, bereits bestehende L\u00f6sungen zu finden und alles darauf aufzubauen. Nach einigem Suchen fiel mir als erstes <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ipfs\/ipfs\">ipfs<\/a><\/noindex>auf. Ich begann mit der Umsetzung meiner Idee, stellte jedoch nach einiger Zeit mehrere kritische Probleme mit dieser L\u00f6sung fest:<\/p>\n<ul>\n<li>Ipfs ist ein Speicher f\u00fcr alles M\u00f6gliche. Hier gibt es Bilder, Musik, Videos und alles, was man sich vorstellen kann. Im Grunde genommen eine gro\u00dfe planetarische \"M\u00fcllhalde\". Daher erh\u00e4lt man, sobald man seinen eigenen Knoten startet, sofort eine enorme Belastung. Die Maschine k\u00e4mpft einfach ums \u00dcberleben. <\/li>\n<li>Ein unvollst\u00e4ndiger Mechanismus zur Erstellung von 'M\u00fcll'. Ich wei\u00df nicht, wie das heute aussieht, aber damals bedeutete es nichts, wenn man in der Konfiguration angegeben hat, dass man den Speicher auf zehn Gigabyte Daten beschr\u00e4nken m\u00f6chte. Der Speicher wuchs, ignorierte viele Konfigurationsparameter. Am Ende musste man viel Platz auf der Festplatte haben, w\u00e4hrend IPFS herausfand, wie man den unn\u00f6tigen Datenm\u00fcll loswird.<\/li>\n<li>Zum Zeitpunkt der Nutzung der Bibliothek (ich wei\u00df nicht, wie es jetzt ist) hatte der Client keine Timeout-Implementierungen. Man schickt eine Anfrage, um eine Datei zu erhalten, und wenn sie nicht da ist, h\u00e4ngt man einfach. Nat\u00fcrlich haben die Leute verschiedene Umgehungsl\u00f6sungen gefunden, die das Problem teilweise l\u00f6sten, aber das waren eher Notl\u00f6sungen. Solche Dinge sollten von Anfang an funktionieren.<\/li>\n<\/ul>\n<p>\nEs gab noch viele kleinere Probleme, und der Eindruck war eindeutig: Das kann man nicht f\u00fcr ein Projekt verwenden. Ich setzte meine Suche nach einem Speicher fort, untersuchte verschiedene Optionen, fand aber nichts Geeignetes.<\/p>\n<p>Schlie\u00dflich kam ich zu dem Entschluss, dass ich versuchen sollte, selbst ein dezentrales Speichersystem zu schreiben. Es muss nicht interplanetarisch sein, aber es sollte die spezifische Aufgabe erf\u00fcllen.<\/p>\n<p>So 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> \u2014 ist die Grundlage, die es erm\u00f6glicht, Knoten in ein Netzwerk zu integrieren. Darin ist ein Algorithmus implementiert, den ich bisher teilweise f\u00fcr etwa 10.000 Server realisiert habe. Die vollst\u00e4ndige Version des Algorithmus ist viel komplexer in der Umsetzung und w\u00fcrde zus\u00e4tzliche Monate (vielleicht sogar mehr) erfordern.<\/p>\n<p>Ich werde nicht ausf\u00fchrlich darauf eingehen, besser schreibe ich irgendwann einen separaten Artikel. Hier m\u00f6chte ich nur einige Besonderheiten hervorheben:<\/p>\n<ul>\n<li>Funktioniert \u00fcber http\/https.<\/li>\n<li>Es k\u00f6nnen separate Netzwerke f\u00fcr spezifische Aufgaben erstellt werden, wodurch die Last auf jedes einzelne Projekt erheblich reduziert wird, im Vergleich zu einer gemeinsamen Netzwerkstruktur.<\/li>\n<li>Urspr\u00fcnglich wurde ein Mechanismus mit Timeouts und anderen Feinheiten durchdacht. Und das funktioniert f\u00fcr alle Methoden, sowohl im Client als auch im Knoten. Parameter k\u00f6nnen flexibel aus Ihrer Anwendung gesteuert werden.<\/li>\n<li>Die Bibliothek ist in Node.js geschrieben. Leistungsprobleme des Stacks werden durch die dezentrale Natur kompensiert. Die Last kann durch Erh\u00f6hung der Anzahl der Knoten 'verteilt' werden. Im Gegenzug gibt es viele Vorteile: eine riesige Community, einfache und komfortable Nutzung, isomorpher Client, keine externen Abh\u00e4ngigkeiten usw.<\/li>\n<\/ul>\n<p>\n<b>storacle <\/b> \u2014 ist eine von spreadable abgeleitete Schicht, die es erm\u00f6glicht, Dateien im Netzwerk zu speichern. Jede Datei hat ihren eigenen Hash basierend auf ihrem Inhalt, \u00fcber den sie sp\u00e4ter abgerufen werden kann. Die Dateien werden nicht in Bl\u00f6cke unterteilt, sondern vollst\u00e4ndig gespeichert.<\/p>\n<p><b>metastocle <\/b> \u2014 ist eine von spreadable abgeleitete Schicht, die es erm\u00f6glicht, Daten im Netzwerk zu speichern, aber keine Dateien. Die Schnittstelle \u00e4hnelt NoSQL-Datenbanken. Man kann zum Beispiel eine Datei in storacle hinzuf\u00fcgen, ihren Hash abrufen und ihn in metastocle in Verbindung mit etwas aufzeichnen.<\/p>\n<p><b>museria<\/b> \u2014 wird von storacle und metastocle abgeleitet. Diese Schicht ist direkt verantwortlich f\u00fcr die Speicherung von Musik. Das Speicherformat arbeitet nur mit mp3-Dateien und id3-Tags. <\/p>\n<p>Als \"Schl\u00fcssel\" zum Song wird der vollst\u00e4ndige Titel in der Form <b>K\u00fcnstler (TPE1) \u2014 Titel (TIT2)<\/b>verwendet. 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 herauszufinden, wie die Titel von Songs gebildet werden, kann man <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/ortexx\/museria\/blob\/master\/src\/utils.js\">hier<\/a><\/noindex>nachsehen, welche Funktion <b>utils.beautifySongTitle()<\/b>.<\/p>\n<p>Eine \u00dcbereinstimmung nach Schl\u00fcsseln gilt als Prozentsatz, der in den Node-Einstellungen definiert ist. Zum Beispiel bedeutet der Wert 0.85, dass, wenn die Funktion zur Vergleichspr\u00fcfung von Schl\u00fcsseln (Songtiteln) eine \u00c4hnlichkeit von mehr als 85% festgestellt hat, es sich um denselben Song handelt.<\/p>\n<p>Der Algorithmus zur Bestimmung der \u00c4hnlichkeit befindet sich ebenfalls in der Funktion <b>utils.getSongSimilarity()<\/b>.<\/p>\n<p>Cover f\u00fcr das Lied, um anschlie\u00dfend auch \u00fcber Tags angeh\u00e4ngt zu 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 den Umgang mit dem Speicher \u00fcber den Client finden Sie in <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 die Idee, eine Schicht f\u00fcr die Speicherung von B\u00fcchern zu erstellen.<\/p><\/blockquote>\n<p>\n<b>museria-global<\/b> \u2014 dies ist bereits ein konfiguriertes Git-Repository zum Starten eines eigenen Knotens im globalen Musiknetzwerk. Klonen Sie, <b>npm i &amp;&amp; npm<\/b> start und das war's im Wesentlichen. Es kann detaillierter konfiguriert werden, in Docker gestartet werden usw. Detaillierte Informationen finden Sie 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 die Haupt- oder Nebenversion ge\u00e4ndert wird, ist dieser Schritt zwingend erforderlich, andernfalls werden alte Knoten vom Netzwerk ignoriert.<\/p>\n<p>Sie k\u00f6nnen mit den Songs sowohl manuell als auch programmatisch arbeiten. Jeder Knoten startet einen Server f\u00fcr unterschiedliche Aufgaben. Wenn Sie den Standard-Endpunkt besuchen, erhalten Sie eine Benutzeroberfl\u00e4che zum Arbeiten mit Musik. Zum Beispiel k\u00f6nnen Sie auf <noindex><a rel=\"nofollow\" href=\"http:\/\/storage.museria.com\">den Stammknoten zugreifen<\/a><\/noindex> (der Link k\u00f6nnte sp\u00e4ter nicht mehr aktuell sein, die Eingangsnode k\u00f6nnen auch in <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/museria\">Telegram<\/a><\/noindex>, oder Sie k\u00f6nnen die Updates auf GitHub ansehen).<\/p>\n<p>So k\u00f6nnen Sie Songs im Speicher suchen und hochladen. Der Upload von Songs kann in zwei Modi erfolgen: normal und moderiert. Der zweite Modus bedeutet, dass die Arbeit von einer Person und nicht von einem Programm durchgef\u00fchrt wird. Wenn Sie dieses K\u00e4stchen beim Hinzuf\u00fcgen ankreuzen, m\u00fcssen Sie ein Captcha l\u00f6sen. Songs k\u00f6nnen mit Priorit\u00e4ten -1, 0 oder 1 hinzugef\u00fcgt werden. Priorit\u00e4t 1 kann nur im moderierten Modus vergeben werden. Priorit\u00e4ten sind notwendig, damit der Speicher effizienter 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 bestehende 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 bei Google unter 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 Kunde erh\u00e4lt die Adresse eines freien Knotens, der f\u00fcr eine gewisse Zeit als Koordinator fungiert.<\/li>\n<li>Die Funktion zum Hinzuf\u00fcgen eines Songs wird ausgel\u00f6st (durch eine Person oder einen Code), es erfolgt eine Anfrage zum Hinzuf\u00fcgen an den Endpunkt des Koordinators.<\/li>\n<li>Der Koordinator berechnet, wie viele Duplikate gespeichert werden m\u00fcssen (konfigurierbarer Parameter).<\/li>\n<li>Die am besten geeigneten Knoten zum Speichern werden gesucht.<\/li>\n<li>Die Datei wird direkt an diese Knoten gesendet. <\/li>\n<\/ul>\n<p>\nSo erfolgt technisch das Abrufen von Dateien:<\/p>\n<ul>\n<li>Der Kunde erh\u00e4lt die Adresse eines freien Knotens, der f\u00fcr eine gewisse Zeit als Koordinator fungiert.<\/li>\n<li>Die Funktion zum Abrufen eines Songs wird ausgel\u00f6st (durch eine Person oder einen Code), es erfolgt eine Anfrage zum Abrufen an den Endpunkt des Koordinators.<\/li>\n<li>Der Koordinator \u00fcberpr\u00fcft, ob ein Link im Cache vorhanden ist. Wenn ja und er funktioniert, wird er sofort an den Kunden zur\u00fcckgegeben, andernfalls werden die Knoten nach Verf\u00fcgbarkeit befragt.<\/li>\n<li>Die Datei wird durch den Link abgerufen, sofern einer gefunden wurde. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Alternativen f\u00fcr Musikschaffende<\/h3>\n<p>\nIch habe mich schon immer gefragt, wie man den Wert vieler kreativer Werke objektiv einsch\u00e4tzen kann. Warum zum Beispiel stellt jemand sein Musikalbum f\u00fcr 10 \u20ac aus? Oder f\u00fcr 20 \u20ac oder 100 \u20ac. Wo ist der Algorithmus? Wenn wir \u00fcber ein physisches Produkt oder sogar viele Arten von Dienstleistungen sprechen, k\u00f6nnen wir mindestens die Kosten berechnen und darauf basieren. <\/p>\n<p>Okay, sagen wir, 10 \u20ac wurden festgelegt. Ist das wirklich effektiv? Angenommen, ich habe irgendwo das Album oder einen Song daraus geh\u00f6rt und m\u00f6chte danken. Aber nach meinem Gef\u00fchl und meinen M\u00f6glichkeiten sind 3 \u20ac mein Maximum. Was soll ich also tun? Wahrscheinlich werde ich einfach nichts tun, so wie die meisten Menschen. <\/p>\n<p>Wenn du einen festen Preis f\u00fcr kreative Arbeit aufstellst, schr\u00e4nkst du dich einfach ein und gibst vielen Menschen nicht die M\u00f6glichkeit, dir geringere Betr\u00e4ge zu schicken, die insgesamt h\u00f6her sein k\u00f6nnten als die, die bei dem von dir festgelegten Preis kaufen. Ich denke, Kreativit\u00e4t ist genau das Gebiet, in dem Spenden an erster Stelle stehen sollten. Daf\u00fcr ist es notwendig:<\/p>\n<ul>\n<li>Menschen beizubringen, auf diese Weise zu danken, ist entscheidend. Die Kreativen m\u00fcssen klar zeigen, dass sie Spenden w\u00fcnschen, indem sie \u00fcberall Links zu verschiedenen Zahlungsmethoden hinzuf\u00fcgen usw.<\/li>\n<li>Es braucht mehr Mechanismen, um diese Prozesse zu vereinfachen und zu verst\u00e4rken. Zum Beispiel k\u00f6nnte man eine globale Website erstellen, auf der man kreativ arbeiten kann und durch spezielle Links spenden kann.\n<p>Angenommen, der Link sieht etwa 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 sich daran anheften.<\/p>\n<p>Im Museria-Client f\u00fcgen wir eine Funktion zur Generierung eines solchen Links hinzu, und alle Projekte, die das Speicherangebot nutzen, k\u00f6nnen auf ihren Websites\/Apps Spenden-Buttons mit diesen Links neben den Songs platzieren. Benutzer haben die M\u00f6glichkeit, sehr schnell und einfach eine Spende zu machen. Nat\u00fcrlich kann dieser Ansatz in jedem Projekt und jeder kreativen Kategorie verwendet werden, nicht nur \u00fcber das Speicherangebot.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Warum solltest gerade du ein Musikspeicher sein und wie kannst du teilnehmen?<\/h3>\n<p><\/p>\n<ul>\n<li>Wenn du an einem Musikprojekt arbeitest oder planst, eines zu erstellen, dann ist museria genau daf\u00fcr gedacht. Du kannst museria nutzen, um Songs zu speichern und abzurufen, wodurch der Songfluss im Netzwerk erh\u00f6ht wird. Wenn du in der Lage bist, mindestens einen eigenen Knoten hochzufahren und zu betreiben, w\u00e4re das der beste Beitrag zur Weiterentwicklung des Netzwerks.<\/li>\n<li>Vielleicht bist du bereit, eine andere Rolle zu \u00fcbernehmen: Hilfe beim Kodieren, die Datenbank zu pflegen und zu moderieren, Informationen \u00fcber das Projekt mit Freunden zu teilen usw.<\/li>\n<li>Vielleicht gefiel dir die Idee und du bist bereit, finanziell zu unterst\u00fctzen, damit das Projekt lebt und sich weiterentwickelt. Je mehr Knoten vorhanden sind, desto mehr Songs k\u00f6nnen verf\u00fcgbar sein.<\/li>\n<li>Oder du wirst einfach irgendwann auf der Suche nach einem Song sein. Du kannst das ganz einfach machen, zum Beispiel \u00fcber einen <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/MuseriaBot\">Telegram-Bot<\/a><\/noindex>.<\/li>\n<\/ul>\n<p>\nDas Projekt befindet sich derzeit in der Anfangsphase. Ein Testnetz wurde gestartet, Knoten k\u00f6nnen h\u00e4ufig neu starten, Updates ben\u00f6tigen usw. Sofern es w\u00e4hrend des Einsch\u00e4tzungszeitraums keine kritischen Probleme gibt, wird dasselbe Netzwerk in das Hauptnetz \u00fcberf\u00fchrt.<\/p>\n<p>Information \u00fcber den Knoten von au\u00dfen ansehen: Anzahl der Songs, freier Speicherplatz usw. ist \u00fcber einen Link wie folgt m\u00f6glich <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 im Telegram auf Englisch.<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/museria.com\/\">Nun, die Website, die diese Idee ins Leben gerufen hat.<\/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 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\/de\/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=\"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 \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\/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 \u2013 dezentrales Musiklager | ProHoster","description":"Eines Tages wollte ich eine Anwendung entwickeln, um Musik f\u00fcr mich auszuw\u00e4hlen und sie zu Hause\/im Freien\/im Training usw. zu h\u00f6ren. Und alles sollte im Hintergrund mit minimaler Interaktion von meiner Seite funktionieren. Ich habe die Architektur entworfen, einen Prototyp skizziert und bin schlie\u00dflich auf ein kleines \"Problem\" gesto\u00dfen. Ich wusste nicht, woher ich die Musikdateien bekommen sollte. Zu diesem Zeitpunkt hatte VKontakte bereits die API geschlossen, und bei gro\u00dfen Musikdiensten.","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 \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\/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"},"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}]}}