beetbox / pyacoustid

Python bindings for Chromaprint acoustic fingerprinting and the Acoustid Web service
MIT License
332 stars 66 forks source link

Compare the pyacousticid to spotify analasys #60

Open ghost opened 4 years ago

ghost commented 4 years ago

I know the issue has been opened about 7 years ago, but I had difficulty understanding it fully. So I will try to ask again. As a DJ I have a huge MP3 collection, now I would like to analyze my collection and store it in a SQLite database. That would be doable I think. Now Spotify has loads of great playlists created by people. I already have the script down that would be able to download the Spotify tracks fingerprinting. I included the analasys of "Blinding Lights" by "The Weeknd" for no particular reason in the text file: analasys.txt

Would there be a way to compare this to my output that I get when analyzing this to the output gotten by my MP3?

(201.0, b'AQADtEkkLYkiJYmEo8fRE-ZR48fB5CrKY-fxCu_Ro-nx40UPwwz-4fCKHi_e4-iHH4e36fgDtxc0H5-OazN-lD0u-Ed94vgo6Bfqo_FRw-iFoz7aQz96TPlxopMO-ICOH4c-Ht6BMOvxYQ-uPAgP_9ARTj4eO6gkDF5ztDnYHZ-IHmFyGaehp9CtDVrfFY2YgQ8lQrwoPAxyEqnYHB9xZUeq48N9oTGlIjx6whe0b0VHomF8vOh1WPvRLmiceugaEdfRuOjEo1tzNC--o5t4aDkumWg-9MGnotpvNHfB6oWWUzL69Kg3NMchHvpx6SUOZh2ahyo0HSJXH31S9BBH5PELH_dhJyS6Fk9mMEST5TxOhCIavoe86PiJf2j249CNHnqOHx2LMHIU48dhN8d38If3B8e3VnBufMrBD6eEH-fSIM-FE1ryFOG07EHPo3lwHYUzRTtKKejhH30OX8cn_PiPH31yPAx8hQg_HXxxBs9raGqO5rnRDc5xTDmP48GU5qh3nDzMZxTeQ98W_NCT49DR5OiPH6cUDtmjGD1XUNmSE0b4XKj1wpsRevh0NP9QUYF_nCHOfEE1vWje8Mh-aNrQbGZw7cUvNCwmX9C-wLbxQ_zRF422He2D6C-aLEPvF9_xq_CyvnhRvYTLo05ZXMUrPDtu5IfGdSOcK0c48UfVDr5ytMvRnCvKhcEVo2iuHY8c-Phy_MS3Is9ZNOdxrehzfBH0FGfBKTf6HBZzuDo0HX3R_DgeiA2e6DgXDR4ZPF9wPbiO5zgOMZ9wH9dxKUuRfRSabIlu_MiS4znK5WiO_wiPJj8O62VwD88LJjdqZcmRC1qkB-VqXPuKH1N-aD9qEfZmoLEPfUfzoPqQT5hiDfWWAw2fF5V-_ELFHY0nqfhIPCb-4Tzy4IYWH6HcFW--ocmLPlnQ67CNsjiaK-izHf2OpseV4zz-COFzwRXDyHgi9FmIK9An_DU4ZWicHD9c0aig5Ufx4AvETccj9NmioRl5PN1w5MmDi8OLEE18PDl0Mge5zbiCJu4NHd_hMUg95Fehh0SaewODF16PL57wH02kh8hS7tAkwTbCbRfyJyjji9Cy49jDo88DEW9e5BGK-8Fk52g2_Xh2XEQjLz3KH08eVD8a41oonBGJH2esIc8N_QiTMkbXLEfJwz_ahUfJHs2XDheDJxT8CN_R92jO4MoV_DEeKUcoZdBNPIXzo_RxLV2EPkcTJ7JwauiNJn6QB43KHNU345E-eMxxaS1OwR-H5EPI_GjGF9dxwnWIo7-IJhSRv8MJJmpwwYbWHU9RSZBU5UZ--DiamLgeHH14pM92KLuRG2-KD75x9AdCix-So8dzvHqQLOuCSM_R9fBKfEcTHe_xw-_xVCt-vGjGJUWuPGg4ZsLjCfoRKc-IU9kHi2HQE1fQH00cJQ9OoA-aijl6DY2ltNiP4zn6D0-O1IooMIdOfDl-VE1gTceP7fAR_vjxhWgaHb3R7DbCnoLeLwgPNx_co8cOx8Zj5CSuscNJNA-KxtB-fAu0C9SYGzl8OE14FF9RW0R6yM12wffQzSHCh4arHNgfwsCPdIfWHc-PZxUUPUQYvcIXGp2W5fjBPA4eHs1vVBR1PMXRTGbRSkoqoeKRJV_wU4H-Ist7wVUG-2ij4CEaPQnBfDJOoof_44Kdo4-OX_jwHH2aFc3DI7uhKym-HNdR-XAVnIci0fjxQw_RH015HKV0NHzG4swe3Bt0PHkDXVywo0cTB8cpXXjYoZsG8aGKHyJ_9CnRQxyR54U_3IedHF3xZEYJJsx5_EQM1-khS8nw6Av-odmPQ7kxQVcu_EePMMeZB4fd-Pjwg9qPF-TWCk1u9Bu-HaeEHycb5L7wElpyI9eyPDiP5sGFHs60HaWGo3nQRx-a66gV4Tn-40ef4wrhKxTC7-CDF_prVOLRODm6Hc6xozlOXKhJopkifN_gZzj54N-CY89xHdByVM7xnjilHLyiGOEHZ8wN6gh_9Dm8WeiPfGh-VM6PHs15nLmEHx4bIitzaBWsvei_4mgLZe2Fh7BuwD90Ef5RG-MvhOnR-7iOw9mrCc-LijsaF-cig4_BXzge5Id-NE8R6uPRXYHP4E0GXznKhcWDmkLz6LgO93iOH6eEPEd_w5fCoM8InQlii8cZgs2N5tmIcEyh6UWYiuh9NMfRPAiZSIeuHH0Q5uE04hv-4wqePMcDpMePX8cZMgM5zWj447-QnmAZCnY09MgvSDmRJbk3HF1zNIt0nB-eHs0kClka5Wi2BppF482HpzeaHZMIPYSeotTxZTnCfMOzC5eMr9gm8XhyHLWYEk3U6XhyVA8aD_yCO4rwE88jZM0O_ah0pFuWHG8G8xLO4InQuCE-pg1--Dge2C6O8ysuHo945GsI7VHg6kMlH9e8KDiVw1uNIz_8Ex-eSmHUoEnPYOqO_vCZws4RPuGR7F_QLBFznLmxh6iPximeGOdEgQQqI4GyxFhAgDXOKKsIQQQxCiwAQClihAGJOCWAAw6ZKJxgQjmlpFOKCEJAIIooAAwSSmmCuAGAGCGEQcA4BAg0hDAigJCCAeCIUIYIAYAwCCDgCRQAmKCBAApQIJUAThBjEBQAEMINosRA8hwAmAg4jDKAOkOIk4YIgJwBZCmiFELKQAMYE4YK4AghAgFiGEHSIUMYIIoiRQAjkSBhCRFKCKCBEoAIQhggRhAjmBICKAEEQAYQRIAUAjBJiSEGCiIEEQYgwJhCVCGsBBBMAIUIE0YaQ4SEkBjKBAbIIMI0FAoKQgRzlgmgHCEcIUccgYgZQIBhxCAglEAAPACEE5Yg6QAxRCNhDBAGEYEEAIpigJgwDEBFiBGcIYiIUYSBAxF1zADhgDdOKWSEMkQwAIEjwCEiFCBEIAGMIBQJI4gTBjFHCCFAAoSIEQAQhAhgABFABTGOACIAIwwxoYgDTCulDFKEQaEEUQwxpAxYiFAGgAJGIUIQIUAJbQCwzlDIAKCCAEW8McwZBIBASgAiGNOENCWIZAoYQqABBohjJEFEEAQEGJaKJ4kAAgGBKEBOGQCAIogBIwRxQBJCnFJEGEIhE0IIIYASggAliIBISEREQwgABAwhAAnElJMKEaEQIIRhZIijjAgGgBaMAMUckEIJAAAxAgoAiBDIAAKUIWQ4hAkxByBEnSGEIAMEA8hx4BIxCikCDWBMICiAZEQIRKwxIjqDEBFOgCEQ4UgQAoAyXCAhiMVKCCAAIcRoCwgAQRmCjAKAMeCIIkJQghQhoBhiCAJEAkAAQ8gB4KiyWCmhgDCKAICIEYwogDDwTBiEgGDSMSAEEQwA5FBDzCiFCKDACkAEMJABQwUCBijrFnGWIGeYYMQ5IBxTgHDFmAOKEECEAEQA5AwDCAHinAIIACMAIZoz')

I hope someone can help me. This would make converting playlists to use in my DJ software so much easier. Thank you in advance, I hope this question is a little clear.

derekfukumori commented 4 years ago

This is not possible, as the two services use different, incompatible fingerprints. Acoustid uses Chromaprint (https://acoustid.org/chromaprint); Spotify uses Echoprint (https://github.com/spotify/echoprint-codegen).

I'm not 100% sure what you're attempting to do, but it sounds like you want to match tracks from Spotify playlists against your own collection of mp3s. If this is the case, you can do this by running your own Echoprint server: https://github.com/spotify/echoprint-server. I hope this helps.

ghost commented 4 years ago

Thank you so much for your quick reply. Maybe to clarify. There are tons of playlists on Spotify that change all the time. Mostly charts and viral playlists. Since I DJ from clubs to weddings and everything in between, I need a lot of playlists for all these occasions. Updating the ever changing playlists takes up a lot of time. So I am really trying to build some form of automation for it.

  1. Take the music fingerprint from spotify
  2. Compare to own collection (as a DJ you cannot use Spotify to DJ with, that just doesn't work for anybody seriously trying to make a good evening out of it)
  3. Build the txt file to load into my Rekordbox software
  4. Tell me the tracks I am missing. Now points 3 and 4 are fairly easy to me. But 1 & 2 are the challenging parts for me. But I hope your awnser points me in the right direction, so thank you in advance!
m-mahan commented 4 years ago

@joostvandenoever It sounds like you're djing mp3s of published music that has been distributed. Have you tried to match via the isrc/iswc codes? If you're just trying to match your collection to a playlist, doing this with metadata instead of finger printing will remove a lot of complexity.

MP3s contain ID3 tags, of which ISRC is one. Depending on how these MP3s were acquired, many may already have this information populated.

Also, you might want to give https://musicbrainz.org/ a shot for this. They have a free tool you can download that will analyze a song, check it against their database, and return any relevant metadata. As far as I'm aware their goal when starting it was to be able to easily and automatically add information to mp3 collections lacking metadata, so it's worth a shot.

Hope that helps!