Giter Club home page Giter Club logo

oggify's Introduction

oggify

Download Spotify tracks to Ogg Vorbis (with a premium account).

This library uses 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 "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.

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
	ffmpeg -i "$ogg" -map_metadata 0:s:0 -id3v2_version 3 -codec:a libmp3lame -qscale:a 2 "$(basename "$ogg" .ogg).mp3"
done

oggify's People

Contributors

pisto avatar danieleds avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.