Home

Awesome

Votify

A Python CLI app for downloading songs/podcasts/videos from Spotify.

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

Features

Prerequisites

Optional dependencies

The following tools are optional but required for specific features. Add them to your system’s PATH or specify their paths using command-line arguments or the config file.

Installation

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

Usage

votify [OPTIONS] URLS...

Supported URL types

Votify supports the following types of URLs:

Examples

Interactive prompt controls

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 keyDescriptionDefault value
--wait-interval, -w / wait_intervalWait interval between downloads in seconds.5
--enable-videos / enable_videosEnable video downloads when available.false
--download-music-videos / download_music_videosList and select a related music video to download from songs.false
--download-podcast-videos / download_podcast_videosAttempt to download the video version of podcasts.false
--force-premium, -f / force_premiumForce to detect the account as premium.false
--read-urls-as-txt, -r / -Interpret URLs as paths to text files containing URLs.false
--config-path / -Path to config file.<home>/.spotify-web-downloader/config.json
--log-level / log_levelLog level.INFO
--no-exceptions / no_exceptionsDon't print exceptions.false
--cookies-path / cookies_pathPath to cookies file.cookies.txt
--output-path, -o / output_pathPath to output directory.Spotify
--temp-path / temp_pathPath to temporary directory.temp
--wvd-path / wvd_pathPath to .wvd file.device.wvd
--aria2c-path / aria2c_pathPath to aria2c binary.aria2c
--ffmpeg-path / ffmpeg_pathPath to ffmpeg binary.ffmpeg
--mp4box-path / mp4box_pathPath to MP4Box binary.mp4box
--mp4decrypt-path / mp4decrypt_pathPath to mp4decrypt binary.mp4decrypt
--packager-path / packager_pathPath to Shaka Packager binary.packager
--template-folder-album / template_folder_albumTemplate folder for tracks that are part of an album.{album_artist}/{album}
--template-folder-compilation / template_folder_compilationTemplate folder for tracks that are part of a compilation album.Compilations/{album}
--template-file-single-disc / template_file_single_discTemplate file for the tracks that are part of a single-disc album.{track:02d} {title}
--template-file-multi-disc / template_file_multi_discTemplate file for the tracks that are part of a multi-disc album.{disc}-{track:02d} {title}
--template-folder-episode / template_folder_episodeTemplate folder for episodes (podcasts).Podcasts/{album}
--template-file-episode / template_file_episodeTemplate file for music videos.{track:02d} {title}
--template-folder-music-video / template_folder_music_videoTemplate folder for music videos{artist}/Unknown Album
--template-file-music-video / template_file_music_videoTemplate file for the tracks that are not part of an album.{title}
--template-file-playlist / template_file_playlistTemplate file for the M3U8 playlist.Playlists/{playlist_artist}/{playlist_title}
--date-tag-template / date_tag_templateDate tag template.%Y-%m-%dT%H:%M:%SZ
--save-cover / save_coverSave cover as a separate file.false
--save-playlist / save_playlistSave a M3U8 playlist file when downloading a playlist.false
--overwrite / overwriteOverwrite existing files.false
--exclude-tags / exclude_tagsComma-separated tags to exclude.null
--truncate / truncateMaximum length of the file/folder names.null
--audio-quality, -a / audio_qualityAudio quality for songs and podcasts.vorbis-medium
--download-mode, -d / download_modeDownload mode for songs and podcasts.ytdlp
--remux-mode-audio / remux_mode_audioRemux mode for songs and podcasts.ffmpeg
--lrc-only, -l / lrc_onlyDownload only the synced lyrics.false
--no-lrc / no_lrcDon't download the synced lyrics.false
--video-format / video_formatVideo format.mp4
--remux-mode-video / remux_mode_videoRemux mode for videos.ffmpeg
--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:

Audio qualities

The following qualities are available:

Video formats

The following video formats are available:

Download modes

The following modes are available:

Video remux modes

The following remux modes for videos are available:

Audio remux modes

The following remux modes for songs and podcasts are available when downloading in AAC quality:

Credits