Skip to main content

A Python CLI app for downloading songs/podcasts from Spotify in Vorbis (OGG).

Project description

Votify

A Python CLI app for downloading songs/podcasts from Spotify in Vorbis (OGG).

Discord Server: https://discord.gg/aBjMEZ9tnq

Features

  • Download songs and podcasts in Vorbis 96/128kbps or in 320kbps with a premium account
  • Download synced lyrics
  • Highly configurable

Prerequisites

Installation

  1. Install the package votify using pip
    pip install votify
    
  2. Set up the cookies.txt.
    • You can either move to the current directory from which you will be running Votify or specify its path using the command line arguments/config file.
  3. Set up Unplayplay
    • You can either add it to your PATH or specify its path using the command line arguments/config file.

Usage

votify [OPTIONS] URLS...

Examples

  • Download a song
    votify "https://open.spotify.com/track/18gqCQzqYb0zvurQPlRkpo"
    
  • Download an album
    votify "https://open.spotify.com/album/0r8D5N674HbTXlR3zNxeU1"
    

Configuration

Votify can be configured using the command line arguments or the config file.

The config file is created automatically when you run Votify for the first time at ~/.votify/config.json on Linux and %USERPROFILE%\.votify\config.json on Windows.

Config file values can be overridden using command line arguments.

Command line argument / Config file key Description Default value
--wait-interval, -w / wait_interval Wait interval between downloads in seconds. 10
--force-premium, -f / force_premium Force to detect the account as premium. false
--save-cover, -s / save_cover Save cover as a separate file. false
--overwrite / overwrite Overwrite existing files. false
--read-urls-as-txt, -r / - Interpret URLs as paths to text files containing URLs. false
--save-playlist / save_playlist Save a M3U8 playlist file when downloading a playlist. false
--lrc-only, -l / lrc_only Download only the synced lyrics. false
--no-lrc / no_lrc Don't download the synced lyrics. false
--config-path / - Path to config file. <home>/.votify/config.json
--log-level / log_level Log level. INFO
--print-exceptions / print_exceptions Print exceptions. false
--cookies-path / cookies_path Path to cookies file. ./cookies.txt
--quality, -q / quality Audio quality. medium
--output-path, -o / output_path Path to output directory. ./Spotify
--temp-path / temp_path Path to temporary directory. ./temp
--download-mode, -d / download_mode Download mode. ytdlp
--aria2c-path / aria2c_path Path to aria2c binary. aria2c
--unplayplay-path / unplayplay_path Path to unplayplay binary. unplayplay
--template-folder-album / template_folder_album Template folder for tracks that are part of an album. {album_artist}/{album}
--template-folder-compilation / template_folder_compilation Template folder for tracks that are part of a compilation album. Compilations/{album}
--template-file-single-disc / template_file_single_disc Template file for the tracks that are part of a single-disc album. {track:02d} {title}
--template-file-multi-disc / template_file_multi_disc Template file for the tracks that are part of a multi-disc album. {disc}-{track:02d} {title}
--template-folder-episode / template_folder_episode Template folder for episodes (podcasts). Podcasts/{album}
--template-file-episode / template_file_episode Template file for episodes (podcasts). {track:02d} {title}
--template-file-playlist / template_file_playlist Template file for the M3U8 playlist. Playlists/{playlist_artist}/{playlist_title}
--date-tag-template / date_tag_template Date tag template. %Y-%m-%dT%H:%M:%SZ
--exclude-tags / exclude_tags Comma-separated tags to exclude. null
--truncate / truncate Maximum length of the file/folder names. null
--no-config-file, -n / - Do not use a config file. false

Tag variables

The following variables can be used in the template folder/file and/or in the exclude_tags list:

  • album
  • album_artist
  • artist
  • compilation
  • composer
  • copyright
  • cover
  • disc
  • disc_total
  • isrc
  • label
  • lyrics
  • playlist_artist
  • playlist_title
  • playlist_track
  • producer
  • rating
  • release_date
  • release_year
  • title
  • track
  • track_total
  • url

Download qualities

The following qualities are available:

  • high (320kbps, requires premium account)
  • medium (160kbps)
  • low (96kbps)

Download modes

The following modes are available:

Credits

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

votify-1.2.tar.gz (18.4 kB view details)

Uploaded Source

Built Distribution

votify-1.2-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file votify-1.2.tar.gz.

File metadata

  • Download URL: votify-1.2.tar.gz
  • Upload date:
  • Size: 18.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for votify-1.2.tar.gz
Algorithm Hash digest
SHA256 07ffbed575f0b03f4ae5cff7e9608db1fa6536c0a082ed31eaa4d43e7cb104fa
MD5 1bbc23955bb83a0a67337945b9f7a72c
BLAKE2b-256 d1d953d959ab9d051d8008cd074c72de28265802d0101f2ff3e4c75e2e3b3af5

See more details on using hashes here.

File details

Details for the file votify-1.2-py3-none-any.whl.

File metadata

  • Download URL: votify-1.2-py3-none-any.whl
  • Upload date:
  • Size: 19.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.32.3

File hashes

Hashes for votify-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4528d7e037175fbc344ed2963f5885e3d1f32d92234587da7978f796ee4bf921
MD5 3e3fda0284c1faebbe556a219f5c39c6
BLAKE2b-256 cf9f3a2636ea77755e69d146c9e2343694c2a4abcc6a0805e6c16b5c875f484c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page