Museria - dreifð tónlistargeymsla

Museria - dreifð tónlistargeymsla

Einn daginn ákvað ég að skrifa forrit til að velja tónlist fyrir mig og hlusta á hana heima/á götunni/æfingum o.s.frv. Og þannig að allt þetta virki í flæði, með lágmarks þátttöku frá mér. Ég fann upp arkitektúr, skissaði út frumgerð og lenti á endanum í einu „litlu vandamáli“.

Og það er ekki ljóst hvar á að fá lagaskrárnar sjálfar. Á þessum tíma hafði VKontakte þegar lokað API, á stórum tónlistargáttum var allt líka þaggað, jafnvel lög voru gefin út í bútum til að vera ekki flokkuð. Það eina sem eftir stóð voru einstakar fljúgandi síður með fullt af auglýsingum og alls kyns rusli, alls kyns vafasömum grípaforritum og öðrum „óhreinum“ valkostum. Almennt séð, ekki ein einasta mjög góð lausn. Þú getur auðvitað keypt þér áskrift að Yandex tónlist eða þess háttar. En aftur, það er ekkert opið opinbert API neins staðar og þú hefur ekki aðgang að tónlist forritunarlega. Nokkur stór fyrirtæki hafa í raun takmarkað aðgang annarra að tónlist. Hvers vegna gerðist þetta yfirleitt? Þegar kafað var dýpra kom í ljós að aðalvandamálið var höfundarréttur. Núverandi lausn í formi áskriftar hentar mörgum tónlistarhöfundum í atvinnuskyni og þessum sömu fyrirtækjum. Á sama tíma fellur óauglýsing og hálf-auglýsing tónlist einnig undir almennan lista. Annað hvort borgar þú fyrir allt eða hlustar á ekkert.

Og ég fór að hugsa hvað ég ætti að gera við þetta allt. Hvernig getum við skipulagt ókeypis dreifingu tónlistar? Hvað myndi ég gera ef ég væri að búa til tónlist sjálfur og vildi græða á henni? Myndi ég líka við það ef lögin mín væru sjóræningja? Hvaða vallausn er samt til?

Þar af leiðandi eru tvö megin vandamál sem þarf að leysa:

  • Skipulag ókeypis dreifingar á tónlist með aðferðum sem henta flestum, þar á meðal hugbúnaði.
  • Að bjóða upp á valkosti fyrir tónlistarhöfunda til að græða peninga

Alheimsdreifð tónlistargeymsla

Í upphafi reyndi ég að finna fyrirliggjandi lausnir og búa til allt út frá þessu. Eftir smá leit var sá fyrsti sem mér líkaði við ipfs. Ég byrjaði að hrinda hugmyndinni minni í framkvæmd, en eftir smá stund uppgötvaði ég nokkur mikilvæg vandamál í þessari lausn:

  • Ipfs - geymsla fyrir allt og alla. Það eru myndir og tónlist og myndbönd og allt sem þú vilt. Almennt séð, svo stór plánetu "ruslatunna". Þess vegna, þegar þú ræsir hnútinn þinn, færðu strax mikið álag. Bíllinn er bara að hryggjast af sársauka.
  • Einhvers konar óunnið „sorpsöfnunarkerfi“. Ég veit ekki hvernig það er núna, en á því augnabliki, ef þú skrifaðir í stillinguna að þú vildir takmarka geymsluna við tíu gígabæt af gögnum, þá þýddi það ekki neitt. Geymslan stækkaði og hunsaði margar stillingarbreytur. Þar af leiðandi var nauðsynlegt að hafa gríðarlegan varasjóð af harða diskinum þar til ipfs komst að því hvernig ætti að endurstilla óþarfa.
  • Þegar bókasafnið var notað (ég veit ekki hvernig það er núna), var viðskiptavinurinn ekki með tímamörk útfærð. Þú sendir beiðni um að fá skrá, og ef hún er ekki til, þá hangir þú bara. Auðvitað komu menn með alls kyns lausnir sem leystu vandann að hluta, en þetta voru hækjur. Þessir hlutir ættu að koma upp úr kassanum.

Enn voru mörg smávægileg vandamál og tilfinningin var skýr: þetta er ekki hægt að nota fyrir verkefnið. Ég hélt áfram að leita að geymsluaðstöðu, skoðaði mismunandi valkosti, en fann aldrei neitt við hæfi.

Á endanum ákvað ég að það væri þess virði að reyna að skrifa dreifða geymslu sjálfur. Jafnvel þótt það þykist ekki vera milli plánetu, mun það leysa ákveðið vandamál.

Og svo varð það dreifanlegt, geymsla, meinvörp, museria, museria-global.

dreifanlegt - þetta er aðal, lægsta lagið sem gerir þér kleift að sameina hnúta í net. Það inniheldur reiknirit, sem ég hef hingað til innleitt að hluta byggt á um 10000 netþjónum. Full útgáfa af reikniritinu er mun erfiðara í framkvæmd og myndi þurfa nokkra mánuði til viðbótar (kannski fleiri).

Ég mun ekki lýsa dreifanlegu í smáatriðum í þessari grein; það er betra að skrifa sérstaka einhvern daginn. Hér mun ég aðeins taka eftir nokkrum eiginleikum:

  • Virkar í gegnum http/https.
  • Þú getur búið til sérstakt net fyrir tiltekið verkefni, sem mun draga verulega úr álagi á hvert einstakt verkefni en ef þau væru öll á sama neti.
  • Upphaflega var úthugsað vélbúnaður með tímamörkum og öðrum smáhlutum. Og þetta virkar fyrir allar aðferðir bæði í viðskiptavininum og í hnútnum. Þú getur stjórnað stillingum á sveigjanlegan hátt innan úr forritinu þínu.
  • Bókasafnið er skrifað í nodejs. Á móti afköstum staflans er dreifð eðli hans. Hægt er að „dreifa álaginu“ með því að fjölga hnútum. Á móti kemur að það eru margir kostir: risastórt samfélag, einfaldleiki og auðveldur í notkun, jafnmyndaður viðskiptavinur, engin utanaðkomandi ósjálfstæði osfrv.

geymsla er lag sem er erft frá spreadable sem gerir þér kleift að geyma skrár á netinu. Hver skrá hefur sitt eigið kjötkássa af innihaldi hennar, sem hægt er að nota til að sækja það síðar. Skrám er ekki skipt í blokkir heldur eru þær geymdar að öllu leyti.

meinvörp - lag erft frá spreadable, sem gerir þér kleift að geyma gögn á netinu, en ekki skrár. Viðmótið er svipað og Nosql gagnagrunnur. Þú getur til dæmis bætt skrá við geymslu, fengið kjötkássa hennar og skrifað hana í metastocle með hlekk á eitthvað.

museria - erft frá geymslu og meinvarpi. Þetta lag ber beint ábyrgð á að geyma tónlist. Geymslan virkar aðeins með mp3 skrám og id3 merkjum.

Sem „lykill“ að laginu er fullt nafn þess notað í formi Flytjandi (TPE1) - Titill (TIT2). Til dæmis:

  • Brimstone - Byrðin
  • Hi-rez - Lost My Way (feat. Emilio Rojas, Dani Devinci)

Þú getur fundið út eins ítarlega og mögulegt er hvernig lagatitlar myndast. hér. Þú þarft að skoða aðgerðina utils.beautifySongTitle().

Hlutfall samsvörunar sem skilgreint er í hnútstillingunum er talið vera samsvörun. Til dæmis þýðir gildið 0.85 að ef lyklasamanburðarfallið (nöfn laga) fann meira en 85% líkt, þá er það sama lagið.

Reikniritið til að ákvarða líkindi er til staðar, í fallinu utils.getSongSimilarity().

Umslagið við lagið, til að fá seinna móttöku, er einnig hægt að tengja með tögum (APIC). Veitur hafa allar nauðsynlegar aðferðir til að taka á móti og vinna merki.

Dæmi um að vinna með geymslu í gegnum viðskiptavin er að finna í README.

Öll ofangreind lög eru sjálfstætt og hægt að nota sérstaklega sem neðri lög fyrir önnur verkefni. Til dæmis er þegar uppi hugmynd um að búa til lag til að geyma bækur.

museria-global er þegar stillt git geymsla til að ræsa eigin hnút á alþjóðlegu tónlistarnetinu. Klónun npm i && npm byrja og það er í rauninni það. Þú getur stillt það nánar, keyrt það í Docker osfrv. Ítarlegar upplýsingar fást á github.

Þegar geymslan er uppfærð þarftu að uppfæra hnútinn þinn. Ef aðal- eða minni útgáfunúmerið breytist, þá er þessi aðgerð nauðsynleg, annars verða gömlu hnútarnir hunsaðir af netinu.

Þú getur unnið með lög handvirkt og forritað. Hver hnút rekur netþjón fyrir mismunandi verkefni. Þar á meðal, þegar þú heimsækir sjálfgefna endapunkt, færðu viðmót til að vinna með tónlist. Til dæmis er hægt að fara í rótarhnút (tengillinn gæti ekki átt við síðar, inntakshnútar er einnig hægt að nálgast í símskeyti, eða leitaðu að uppfærslum á Github).

Þannig geturðu leitað og hlaðið upp lögum í geymsluna. Upphleðsla laga getur farið fram í tveimur stillingum: venjulegt og stjórnað. Seinni hátturinn þýðir að verkið er framkvæmt af einstaklingi, ekki forriti. Og ef þú hakar við þennan reit þegar þú bætir við, þá þarftu að leysa captcha. Hægt er að bæta við lögum með forgangi -1, 0 eða 1. Forgangur 1 er aðeins hægt að stilla í stjórnaða stillingu. Forgangsröðun er nauðsynleg svo að geymslan geti á skilvirkari hátt ákveðið hvað á að gera þegar þú reynir að skipta út núverandi lagi fyrir nýtt. Því hærra sem forgangurinn er, því meiri líkur eru á að þú skrifar yfir núverandi skrá. Þetta hjálpar til við að berjast gegn ruslpósti og eykur gæði niðurhalaðra laga.

Ef þú byrjar að bæta lögum við geymsluna þína, reyndu að hengja myndir (kápu) við, þó að þessi reitur sé ekki nauðsynlegur. Í 99% tilvika eru fyrstu myndirnar á Google sem byggjast á lagatitlum plötuumslög.

Hvernig tæknilega er bætt við skrám, í hnotskurn:

  • Viðskiptavinurinn fær heimilisfang ókeypis hnút, sem verður umsjónarmaður um stund.
  • Aðgerðin að bæta við lagi er kveikt (af manneskju eða kóða) og beðið er um að bæta umsjónarmanni við endapunktinn.
  • Samhæfingarstjórinn reiknar út hversu margar afrit ætti að geyma (stillanleg færibreyta).
  • Leitað er að hentugustu hnútunum til vistunar.
  • Skráin fer beint á þessa hnúta.

Hvernig tæknilega berast skrárnar:

  • Viðskiptavinurinn fær heimilisfang ókeypis hnút, sem verður umsjónarmaður um stund.
  • Hlutverk móttöku lags (af manneskju eða kóða) er ræst og beiðni um að fá það er send á endapunkti umsjónarmanns.
  • Umsjónarmaður athugar hvort hlekkurinn sé til staðar í skyndiminni. Ef það er einn og það er að virka, er það strax skilað til viðskiptavinarins, annars eru hnútarnir könnuð fyrir framboð.
  • Skráin er móttekin frá hlekknum, ef einhver finnst.

Valkostir fyrir tónlistarhöfunda

Ég hef alltaf haft áhuga á spurningunni um hvernig er hægt að meta hlutlægt gildi margra skapandi verka? Af hverju, til dæmis, býður einstaklingur tónlistarplötuna sína á $10? Annað hvort fyrir $20 eða $100. Hvar er reikniritið? Þegar við erum til dæmis að tala um einhverja líkamlega vöru, eða jafnvel margar tegundir af þjónustu, þá getum við að minnsta kosti reiknað út kostnaðinn og gengið út frá því.

Allt í lagi, segjum að við veðjum $10. Er þetta mjög áhrifaríkt? Segjum að ég hafi hlustað á plötu einhvers staðar eða lag þaðan og ákveðið að sýna þakklæti mitt. En samkvæmt tilfinningum mínum og eigin getu eru $3 þakið mitt. Svo hvað ættum við að gera? Líklegast geri ég bara ekki neitt, eins og flestir.

Með því að setja einhvers konar fast verð fyrir skapandi vinnu takmarkarðu þig einfaldlega og kemur í veg fyrir að fleiri sendi þér minna fé, sem samtals getur verið glæsilegra en þeir sem kaupa á því verði sem þú setur. Mér sýnist sköpun einmitt vera það svæði þar sem framlög eiga að ráða fyrst. Til að gera þetta þarftu:

  • Kenndu fólki að þakka á þennan hátt. Höfundarnir sjálfir verða að sýna með skýrum hætti að þeir vilji taka við framlögum, bæta við tenglum á mismunandi greiðslumáta alls staðar o.s.frv.
  • Það þarf fleiri aðferðir til að einfalda og styrkja þessi ferli. Til dæmis, búðu til einhvers konar alþjóðlega vefsíðu þar sem þú getur gefið fyrir sköpunargáfu með því að nota höfundarréttartengla.

    Segjum að hlekkurinn sé eitthvað á þessa leið:

    http://someartistsdonationsite.site/category/artist?external-info

    Ef við þrennum það við tónlistarmenn, þá:

    http://someartistsdonationsite.com/music/miyagi?song=blabla

    Flytjandi þarf að staðfesta gælunafn sitt og tengja við það.

    Við erum að bæta við aðgerð til að búa til slíkan hlekk á museria biðlarann ​​og öll verkefni sem nota geymsluna geta sett framlagshnappa með þessum tenglum við hliðina á lögunum á vefsíðum/forritum þeirra. Notendur hafa tækifæri til að leggja fram framlag mjög fljótt og auðveldlega. Auðvitað er hægt að nota þessa nálgun í hvaða verkefni og flokki sköpunar sem er, ekki bara í gegnum geymslu.

Hvers vegna nákvæmlega þarftu tónlistargeymslu og hvernig geturðu tekið þátt í því?

  • Ef þú ert að vinna að verkefni sem tengist tónlist, eða ætlar að búa til eitt, þá er þetta það sem allt var ætlað fyrir. Þú getur notað museria til að geyma og sækja lög og auka þannig flæði laga á netinu. Ef þú hefur á sama tíma getu til að hækka og halda að minnsta kosti einum hnút sjálfur, þá mun þetta vera besta framlagið til þróunar netsins.
  • Kannski ertu tilbúinn til að taka að þér annað hlutverk: hjálpa til við kóðann, eða fylla út og stjórna gagnagrunninum, dreifa upplýsingum um verkefnið til vina þinna o.s.frv.
  • Kannski líkaði þér við hugmyndina og ert tilbúinn að hjálpa fjárhagslega þannig að allt lifi og þroskist. Því fleiri hnútar, því fleiri lög.
  • Eða þú þarft bara að finna og hlaða niður lag á einhverjum tímapunkti. Þú getur gert þetta mjög einfaldlega, til dæmis í gegnum símskeyti botni.

Verkefnið er nú á byrjunarstigi. Prófanet hefur verið ræst, hnútar gætu endurræst oft, þurft uppfærslur o.s.frv. Ef engin mikilvæg vandamál koma upp á matstímabilinu er þessu sama neti breytt í það helsta.

Þú getur skoðað upplýsingar um hnútinn utan frá: fjölda laga, laust pláss osfrv., með því að nota tengil eins og http://node-address/status eða http://node-address/status?pretty

Tengiliðir mínir:

Heimild: www.habr.com

Bæta við athugasemd