From 124c08cfb8f651eac28572d6d7e25f674df345cc Mon Sep 17 00:00:00 2001 From: Lorenzo Pistone Date: Thu, 14 Feb 2019 16:46:06 +0100 Subject: [PATCH] readme updates --- README.md | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 84147f5..2825e4a 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,28 @@ Download Spotify tracks to Ogg Vorbis (with a premium account). This library uses [librespot](https://github.com/librespot-org/librespot). It is my first program in Rust so you may see some horrors in the way I handle tokio, futures and such. # Usage +To download a number of tracks as `"artists" - "title".ogg`, run ``` -oggify user password < tracks_list +oggify "spotify-premium-user" "spotify-premium-password" < tracks_list +``` +Oggify reads from stdin and looks for a track URL or URI in each line. The two formats are those you get with the track menu items "Share->Copy Song Link" or "Share->Copy Song URI" in the Spotify client, for example `open.spotify.com/track/1xPQDRSXDN5QJWm7qHg5Ku` or `spotify:track:1xPQDRSXDN5QJWm7qHg5Ku`. For example, + +## Helper script +A second form of invocation of oggify is +``` +oggify "spotify-premium-user" "spotify-premium-password" "helper_script" < tracks_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 +Use `oggify` with the `tag_ogg` helper script as described above, then convert with ffmpeg: +``` +for ogg in *.ogg; do + dest=$(sed 's/ogg$/mp3/' <<< "$ogg") + ffmpeg -i "$ogg" -map_metadata 0:s:0 -id3v2_version 3 -codec:a libmp3lame -qscale:a 2 "$(basename "$ogg" .ogg).mp3" +done ``` -The program takes 2 arguments, your Spotify Premium user and password, then reads from stdin and looks for a track URL or URI in each line. The two formats are those you get with the track menu items "Share->Copy Song Link" or "Share->Copy Song URI" in the Spotify client, for example `open.spotify.com/track/1xPQDRSXDN5QJWm7qHg5Ku` or `spotify:track:1xPQDRSXDN5QJWm7qHg5Ku`. For example,