miraclx / freyr-js

A tool for downloading songs from music streaming services like Spotify and Apple Music.
https://git.io/freyr-js
Apache License 2.0
1.39k stars 90 forks source link

Freyr downloading different tracks that don't match actual tracks from album #600

Open toughguystudios opened 8 months ago

toughguystudios commented 8 months ago

Hey, I tried downloading Mountain - Live in the 70s and it downloads the 3 disc album but some of the recordings don't match what's actually what pulls up on Apple Music. Does this program just scan YouTube for copies of albums that match what is on Apple Music?

https://music.apple.com/us/album/live-in-the-70s/1589067497

miraclx commented 8 months ago

Freyr's strategy is to find a track on YouTube Music using a bunch of classification logic and once it's found one it's reasonably confident in, strip the audio from there.

Occasionally, though rare, it may get it wrong. I'll look into this to see where it got it wrong.

Thanks for filing.

Starciad commented 6 months ago

This happened to me as well. One of my favorite bands - Caravan Palace - has an album called Panic. When I downloaded the songs from this album using the link provided by Spotify, almost all of them were related to live performances they did. They even included applause and audience reactions, not the actual music itself.

Album I refer to: https://open.spotify.com/album/38ojnzxpPFT09ee03aCTK7?si=8b3fb26cQbGxO-kn4j__8Q

miraclx commented 6 months ago

@Starciad, I believe I might've come across this issue as well today.

I patched the observed issue just a few minutes ago - https://github.com/miraclx/freyr-js/pull/632

Can you try the latest master? See if that works for you before I make it an official release.

PS: since you included a link, I tried it on my machine and things look okay.. just the track, no extra nonsense. But lmk if they're good to you.

toughguystudios commented 6 months ago

Freyr's strategy is to find a track on YouTube Music using a bunch of classification logic and once it's found one it's reasonably confident in, strip the audio from there.

Occasionally, though rare, it may get it wrong. I'll look into this to see where it got it wrong.

Thanks for filing.

Thank you for clarifying. I assume no one has been able to successfully develop a program that removes drm from apple files?

miraclx commented 6 months ago

I assume no one has been able to successfully develop a program that removes drm from apple files?

Guess not, or perhaps.. Haven't looked. It was one of the objectives of freyr at the start, but I dropped it in favor of this approach.

Starciad commented 6 months ago

@Starciad, I believe I might've come across this issue as well today.

I patched the observed issue just a few minutes ago - #632

Can you try the latest master? See if that works for you before I make it an official release.

PS: since you included a link, I tried it on my machine and things look okay.. just the track, no extra nonsense. But lmk if they're good to you.

It looks like everything is working fine now :)

I cloned the master branch and built the program on my machine. I re-downloaded some albums that previously had incorrect songs, not matching those on Spotify, and so far, everything is correct.

I have made the following downloads so far:

I will continue to download more songs and keep checking if everything is in order. I plan to move on to other bands, but so far, I haven't found any signs of incorrect music.

miraclx commented 6 months ago

Amazing, that's good to hear! Thanks for the feedback.

PS: I just cut v0.10.3.

toughguystudios commented 6 months ago

I assume no one has been able to successfully develop a program that removes drm from apple files?

Guess not, or perhaps.. Haven't looked. It was one of the objectives of freyr at the start, but I dropped it in favor of this approach.

I’ve seen programs but they all want monthly subscriptions and some I’ve heard don’t even work. Would be cool if there was something similar to VLC where it plays the track at the same time it’s encoding it, almost like a fast forwarding type recording audio technique to create a file. We used to use high speed dubbing back in the 80s to do the same thing lol

treeshateorcs commented 4 months ago

i just tried to download a single, here's my full command

freyr 'https://open.spotify.com/album/0YA5Bz8mDzQ6XCC3Jl7gja?si=Enmcr3jnSGKiWW2QTrmdMQ'

it downloaded two songs that are the same (the second track from the single), but they differ in size, and the id3 tags seem to be correct

miraclx commented 4 months ago

On my end, this doesn't seem to be the case. Can you show the output of this command on both tracks:

AtomicParsley <path-to-track> -t

Here's mine

$ AtomicParsley "stage/NEKOMESHI(222)/Undefined Point/01 Undefined point.m4a" -t
Atom "©too" contains: freyr-js cli v0.10.3
Atom "©nam" contains: Undefined point
Atom "©ART" contains: NEKOMESHI(222)
Atom "©alb" contains: Undefined Point
Atom "trkn" contains: 1 of 2
Atom "disk" contains: 1 of 1
Atom "©day" contains: 2022-06-26
Atom "----" [com.apple.iTunes;MEDIA] contains: Digital Media
Atom "----" [com.apple.iTunes;ISRC] contains: JP92N2301346
Atom "----" [com.apple.iTunes;ARTISTS] contains: NEKOMESHI(222)
Atom "----" [com.apple.iTunes;LABEL] contains: NEKOMESHI(222)
Atom "----" [com.apple.iTunes;SOURCE] contains: Spotify: spotify:track:47V3e2YfsoYFLw1IDnyXaY
Atom "----" [com.apple.iTunes;PROVIDER] contains: YouTube Music: 9Qwrg4zA3UQ
Atom "rtng" contains: Explicit Content
Atom "stik" contains: Normal
Atom "aART" contains: NEKOMESHI(222)
Atom "purd" contains: 2024-03-25T09:58:58Z
Atom "apID" contains: cli@freyr.git
Atom "cprt" contains: NEKOMESHI(222)
Atom "©enc" contains: d3vc0dr
Atom "sonm" contains: Undefined point
Atom "soal" contains: Undefined Point
Atom "soar" contains: NEKOMESHI(222)
Atom "covr" contains: 1 piece of artwork

So this one is sourced from youtube:9Qwrg4zA3UQ

$ AtomicParsley "stage/NEKOMESHI(222)/Undefined Point/02 Eclipse.m4a" -t
Atom "©too" contains: freyr-js cli v0.10.3
Atom "©nam" contains: Eclipse
Atom "©ART" contains: NEKOMESHI(222)
Atom "©alb" contains: Undefined Point
Atom "trkn" contains: 2 of 2
Atom "disk" contains: 1 of 1
Atom "©day" contains: 2022-06-26
Atom "----" [com.apple.iTunes;MEDIA] contains: Digital Media
Atom "----" [com.apple.iTunes;ISRC] contains: JP92N2301347
Atom "----" [com.apple.iTunes;ARTISTS] contains: NEKOMESHI(222)
Atom "----" [com.apple.iTunes;LABEL] contains: NEKOMESHI(222)
Atom "----" [com.apple.iTunes;SOURCE] contains: Spotify: spotify:track:4rYb9eozOM7BgSUW8J1S2o
Atom "----" [com.apple.iTunes;PROVIDER] contains: YouTube Music: aRBe-dT3Jfo
Atom "rtng" contains: Inoffensive
Atom "stik" contains: Normal
Atom "aART" contains: NEKOMESHI(222)
Atom "purd" contains: 2024-03-25T09:58:59Z
Atom "apID" contains: cli@freyr.git
Atom "cprt" contains: NEKOMESHI(222)
Atom "©enc" contains: d3vc0dr
Atom "sonm" contains: Eclipse
Atom "soal" contains: Undefined Point
Atom "soar" contains: NEKOMESHI(222)
Atom "covr" contains: 1 piece of artwork

And this is sourced from youtube:aRBe-dT3Jfo

treeshateorcs commented 4 months ago

i must be doing something wrong, because it segfaults for me

 ~ atomicparsley mp3/NEKOMESHI\(222\)/Undefined\ Point/01\ Undefined\ point.m4a -t
malloc(): corrupted top size
zsh: IOT instruction (core dumped)  atomicparsley mp3/NEKOMESHI\(222\)/Undefined\ Point/01\ Undefined\ point.m4a 
134 ~ atomicparsley mp3/NEKOMESHI\(222\)/Undefined\ Point/02\ Eclipse.m4a -t
malloc(): corrupted top size
zsh: IOT instruction (core dumped)  atomicparsley mp3/NEKOMESHI\(222\)/Undefined\ Point/02\ Eclipse.m4a -t
miraclx commented 4 months ago

Ooh, yummy 😆

miraclx commented 4 months ago

What version of AtomicParsley is this?

treeshateorcs commented 4 months ago

20221229.172126.d813aa6-1 from pacman -Qi

and when i do atomicparsley --version it just says

AtomicParsley version:   (utf8)
miraclx commented 4 months ago

Alright just pacman -R atomicparsley and pull the Linux version from https://github.com/miraclx/atomicparsley/releases/tag/20230114.175602.21bde60

AtomicParsley has some unfixed bugs that package managers are exposed to.

Here's what you should see

$ AtomicParsley --version
AtomicParsley version: 20221229.172126.0 d813aa6e0304ed3ab6d92f1ae96cd52b586181ec (utf8)
treeshateorcs commented 4 months ago

seems to be working fine now! thank you!

miraclx commented 4 months ago

Amazing, you're welcome. And for clarity by working fine, you mean the tracks are correct yes?

treeshateorcs commented 4 months ago

yes! both are correct and the output is like you posted

miraclx commented 4 months ago

Great 🚀