Spotify heeft een nieuwe feature en ik was benieuwd hoe deze werkt.
Ik ben het nu zelf een beetje aan het reverse-engineeren en heb wat hulp nodig
Mijn huidige tactiek is om van een nummer (liedje) de share-url en de Spotify Code aan elkaar te linken.
De aanname daarbij is dat het gaat om dezelfde identifier, maar dat hoeft natuurlijk niet zo te zijn.
De share-url van dit nummer is als volgt: https://open.spotify.com/track/4zj2TfCmxKJ92IwtNWOAaM
Dat laatste stuk is base64-encoded van ASCII: 8M}-5ch
Die code lijkt op een hash. Ik kan alleen geen hash-algoritme vinden van 7 karakters, dus mogelijk is dat een zelf bedacht iets (en dan loop ik natuurlijk vast
)
De scannable (Spotify Code) kun je hier zien [2]. Mijn aannames:
- eerste en laatste streepje zijn er om begin/eind aan te geven en als referentie-hoogte en bevatten geen informatie
- informatie zit alleen in de hoogte van de tussenliggende streepjes
- elk streepje representeert een getal in een bepaalde range (er zijn 8 buckets).
- er zijn geen streepjes die gebruikt worden als pariteit
Aanname 2 is gebaseerd op de verdeling van de hoogte van de streepjes [1]. Maar zou niet goed kunnen zijn: het verschil in hoogte is niet consistent, dus er zou extra informatie in kunnen zijn verstopt. Lijkt me echter eerder te komen doordat ik pixels tel
Aanname 3 is minder waarschijnlijk. Maar is gebaseerd op onderstaande.
Op basis van de eerste twee aannames zou in de scannable de volgende code zitten (als we buckets beginnen te nummeren op 0):
5 3 2 1 6 5 0 0 6 3 7 7 5 7 7 2 3 5 5 6 5
Dat zijn 21 getallen. De hash heeft 7 karakters, dus drie getallen per karakter.
Er zijn 512 mogelijkheden in dat geval (8^3), dus het zou kunnen.
Aangezien de hash in ASCII lijkt te zijn dacht ik de getallen te kunnen linken aan de waarde in de ASCII tabellen. Maar dat krijg ik niet voor elkaar.
Iemand een idee?
1: https://www.dropbox.com/s...es_van_scannable.png?dl=1
2: https://www.dropbox.com/s...n/scannable-code.png?dl=1
Ik ben het nu zelf een beetje aan het reverse-engineeren en heb wat hulp nodig
Mijn huidige tactiek is om van een nummer (liedje) de share-url en de Spotify Code aan elkaar te linken.
De aanname daarbij is dat het gaat om dezelfde identifier, maar dat hoeft natuurlijk niet zo te zijn.
De share-url van dit nummer is als volgt: https://open.spotify.com/track/4zj2TfCmxKJ92IwtNWOAaM
Dat laatste stuk is base64-encoded van ASCII: 8M}-5ch
Die code lijkt op een hash. Ik kan alleen geen hash-algoritme vinden van 7 karakters, dus mogelijk is dat een zelf bedacht iets (en dan loop ik natuurlijk vast
De scannable (Spotify Code) kun je hier zien [2]. Mijn aannames:
- eerste en laatste streepje zijn er om begin/eind aan te geven en als referentie-hoogte en bevatten geen informatie
- informatie zit alleen in de hoogte van de tussenliggende streepjes
- elk streepje representeert een getal in een bepaalde range (er zijn 8 buckets).
- er zijn geen streepjes die gebruikt worden als pariteit
Aanname 2 is gebaseerd op de verdeling van de hoogte van de streepjes [1]. Maar zou niet goed kunnen zijn: het verschil in hoogte is niet consistent, dus er zou extra informatie in kunnen zijn verstopt. Lijkt me echter eerder te komen doordat ik pixels tel
Aanname 3 is minder waarschijnlijk. Maar is gebaseerd op onderstaande.
Op basis van de eerste twee aannames zou in de scannable de volgende code zitten (als we buckets beginnen te nummeren op 0):
5 3 2 1 6 5 0 0 6 3 7 7 5 7 7 2 3 5 5 6 5
Dat zijn 21 getallen. De hash heeft 7 karakters, dus drie getallen per karakter.
Er zijn 512 mogelijkheden in dat geval (8^3), dus het zou kunnen.
Aangezien de hash in ASCII lijkt te zijn dacht ik de getallen te kunnen linken aan de waarde in de ASCII tabellen. Maar dat krijg ik niet voor elkaar.
Iemand een idee?
1: https://www.dropbox.com/s...es_van_scannable.png?dl=1
2: https://www.dropbox.com/s...n/scannable-code.png?dl=1