Signed-off-by: Jeremy Kescher <firstname.lastname@example.org>
|9 months ago|
|src||9 months ago|
|.gitignore||3 years ago|
|Cargo.lock||9 months ago|
|Cargo.toml||9 months ago|
|LICENSE||3 years ago|
|README.md||9 months ago|
|tag_ogg||3 years ago|
Download Spotify tracks to Ogg Vorbis (with a premium account).
This program uses librespot, and as such, requires a Spotify Premium account to use. It supports downloading single tracks and episodes, but also entire playlists, albums and shows.
To download a number of links as
<artist(s)> - <title>.ogg, run
oggify "spotify-premium-user" "spotify-premium-password" < link_list
Oggify reads from standard input and looks for a URL or URI in each line, and checks whether it is a valid Spotify media link. If it is not valid, it will be ignored.
The two formats are those you get with the menu items
"Share → Copy Link" or "Share → Copy URI" in the Spotify client,
Once you close the standard input or write
"done" into it,
it will start downloading all tracks and episodes in order of input
into your current working directory.
A second form of invocation of oggify is
oggify "spotify-premium-user" "spotify-premium-password" "helper_script" < link_list
In this form
helper_script is invoked for each new track:
helper_script "spotify_id" "title" <album> "artist1" ["artist2"...] < ogg_stream
tag_ogg in the source tree can be used to automatically add the track information (spotify ID, title, album, artists) as vorbis comments.
Converting to MP3 (🤮)
Don't do that, please. You will just lose quality. If you want to do it anyway:
oggify with the
tag_ogg helper script as described above, then convert with ffmpeg:
for ogg in *.ogg; do ffmpeg -i "$ogg" -map_metadata 0:s:0 -id3v2_version 3 -codec:a libmp3lame -qscale:a 2 "$(basename "$ogg" .ogg).mp3" done