Download Spotify tracks to Ogg Vorbis (with a premium account) Fork of https://github.com/joussy/oggify
This repository has been archived on 2022-08-05. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
Jeremy Kescher ce3e8756d6
Remove unused debug loop
Signed-off-by: Jeremy Kescher <jeremy@kescher.at>
2020-12-28 13:49:47 +01:00
src Remove unused debug loop 2020-12-28 13:49:47 +01:00
.gitignore WIP 2019-02-12 22:09:22 +01:00
Cargo.lock List of changes: 2020-12-28 13:03:24 +01:00
Cargo.toml List of changes: 2020-12-28 13:03:24 +01:00
LICENSE Update LICENSE 2019-02-18 17:50:22 +01:00
README.md this is a program, not a library 2020-12-28 13:42:21 +01:00
tag_ogg cleanup tag_ogg 2019-02-19 13:05:38 +01:00

oggify

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.

Usage

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, for example open.spotify.com/track/1xPQDRSXDN5QJWm7qHg5Ku or spotify:track:1xPQDRSXDN5QJWm7qHg5Ku.

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.

Helper script

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

The script 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:

Use 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