Spotify-koodin halkeileminen


Jos olet käyttänyt Spotify, olet ehkä huomannut kätevän bitikoodin, jonka se voi tuottaa, että se näyttää erilaisten korkeuksien sarjasta. Jos olet kuin [Peter Boone], niin koodaus stimuloi uteliaisuuttasi, samoin kuin voit selvittää täsmälleen miten he työskentelevät.

Spotify tarjoaa vähän valokuvaa, joka skannattu, avautuu lähes kaikki, joka etsii Spotify. Useita rivejä keskittyy Spotify-logoon kahdeksalla eri korkeudella, tallentaa tietoa Octal. Monet visuaaliset koodausjärjestelmät koodaavat jotain URI (yhtenäinen resurssitunniste), joka tarjoaa yksilöllisen tunnisteen kyseiselle kappaleelle, albumille tai esittäjälle dekoodattaessa. Koska monet Spotify on melko pitkä (yksi esimerkki on Spotify: Näytä: 3NRv0mHza8xert0eyyliPaip, joka kellot 218 bittiä), jotkin järjestelmä tarvitaan, jotta voidaan pakata URIS alas jotain hallittavissa. Mene media-viittaukseen, lyhyt sekvenssi, joka koodaa spesifistä URI: tä, yleensä alle 40 bittiä. Suositus on vain etsiä tietokannassa, jonka Spotify ylläpitää, joten se tarvitsee verkkoyhteyden ratkaista. Todellinen koodaussuunnitelma median suosituksesta baareissa oleviin arvoihin on melko monimutkainen, mukaan lukien CRC, konvoluutio ja lävistys. CRC mahdollistaa ohjelman tarkastamisen oikean dekoodauksen ja konvoluution mahdollistaa ohjelman olevan hieman tarkistettuja virheitä samalla, kun se on vielä tarkka tulos. Punktus poistaa vain bittien vähentämiseksi koodattujen numeroiden vähentämiseksi, luottaa konvoluutioon täyttämään reiät.

[Peter] selittää kaiken arvostelussaan apua sekä ymmärrettävästi. Spotify-koodien luoja pysähtyi kommenteissa, jotka tarjoavat joitain arvokkaita osoittimia, mukaan lukien osoitin käytettävissä on toinen tila, jossa linjat eivät ole keskittyneet, mikä mahdollistaa kaksinkertaisen bittien tallentamisen. [Peter] on Python Bundle GitHubilla, jossa on kaikki tarvittava koodi, jotta voit aloittaa dekoodauksen. Ehkä voit integroida Spotify Code Skannerin mukautetun Spotify-pelissä Mini-tietokoneesi.

Leave a Reply

Your email address will not be published. Required fields are marked *