Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow specifying which format id to download and allow transcoding for Opus #2079

Open
Ciancy28 opened this issue Apr 30, 2024 · 3 comments
Open
Labels
Feature Request Feature Request

Comments

@Ciancy28
Copy link

Requested Feature

currently, when m4a or Opus is set as format in config.json, the highest quality version available is chosen and (in case of opus) the "bitrate" field is ignored (despite the documentation suggesting otherwise).
This has become a problem for me now that youtube is starting to roll out 256 kbps Opus (format id 774) to youtube music uploads even for non-premium users, as spotdl now downloads these needlessly bloated files (opus is already beyond transparency at 128 kbps for most people including me), and there's no easy way of lossy to lossy transcoding either (which wouldn't be ideal anyways for obvious reasons).
There might also be a need for some people to download lower quality audio such as 64 kbps opus/he-aac (maybe for playback on storage-constrained mobile devices), which again, doesn't seem to be possible currently.
Another edge case were this is a problem would be people using premium cookies for access to songs unavailable without music premium (very few but there are some) but without the need for 256 kbps aac, from my understanding, in this case you would be forced to get 256 kbps aac audio even if you are perfectly happy with 128 kbps opus and prefer that format.
I've been trying to get format 251 back for the past two hours with no luck, even using yt-dlp args, but the software just keeps downloading format 774 no matter what (trying to download this album: https://open.spotify.com/album/0qws44dIANrXaaErn7kGCW, which apparently has every track available in this new format).

Possible implementation

add a "format_id": field to config.json and make "bitrate": functional for opus transcoding (only seems to work for m4a)
or maybe add a "high_quality": true/false field instead, which enables/disables downloading of format 774/141, this would make sense disabled by default imo.

@Ciancy28 Ciancy28 added the Feature Request Feature Request label Apr 30, 2024
@Ciancy28
Copy link
Author

Ciancy28 commented May 2, 2024

Looks like youtube removed access to format 774 for non premium users today, but I'm keeping the issue open as most of it is still relevant

@jnxr
Copy link

jnxr commented May 6, 2024

Yeah, a format ID priority feature would be awesome.
eg:

--format-id-priority 774,141,251

This would be mine for example^

@jnxr
Copy link

jnxr commented May 6, 2024

It would for example try to download format 774 at first, if no 774 is found, then switch to 141, if no 141, then 251, and so on.

EDIT: I briefly mentioned it in #1845 as Format Priority. This would ensure that people get their preferred format.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request Feature Request
Projects
None yet
Development

No branches or pull requests

2 participants