{"id":18019893,"url":"https://github.com/glomatico/spotify-web-downloader","last_synced_at":"2025-03-26T20:31:32.765Z","repository":{"id":152074539,"uuid":"584475640","full_name":"glomatico/spotify-web-downloader","owner":"glomatico","description":"A Python CLI app for downloading songs and music videos directly from Spotify.","archived":true,"fork":false,"pushed_at":"2024-09-25T14:35:47.000Z","size":237,"stargazers_count":450,"open_issues_count":5,"forks_count":52,"subscribers_count":12,"default_branch":"main","last_synced_at":"2025-03-16T19:19:22.490Z","etag":null,"topics":["music-downloader","spotify","spotify-aac-downloader","spotify-downloader"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glomatico.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-02T17:12:46.000Z","updated_at":"2025-03-14T12:35:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"efcb9be7-d654-470f-9b06-547ee6b20dab","html_url":"https://github.com/glomatico/spotify-web-downloader","commit_stats":null,"previous_names":["glomatico/spotify-web-downloader","glomatico/spotify-aac-downloader"],"tags_count":28,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glomatico%2Fspotify-web-downloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glomatico%2Fspotify-web-downloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glomatico%2Fspotify-web-downloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glomatico%2Fspotify-web-downloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glomatico","download_url":"https://codeload.github.com/glomatico/spotify-web-downloader/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245731474,"owners_count":20663197,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["music-downloader","spotify","spotify-aac-downloader","spotify-downloader"],"created_at":"2024-10-30T05:12:51.541Z","updated_at":"2025-03-26T20:31:31.632Z","avatar_url":"https://github.com/glomatico.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WARNING! This project has been discontinued. Please use Votify instead: https://github.com/glomatico/votify\n\n\n# Spotify Web Downloader\nA Python CLI app for downloading songs and music videos directly from Spotify.\n\n**Discord Server:** https://discord.gg/aBjMEZ9tnq\n\n## Features\n* Download songs in AAC 128kbps or in AAC 256kbps with a premium account\n* Download synced lyrics\n* Download music videos with a premium account\n* Highly configurable\n\n## Prerequisites\n* Python 3.8 or higher\n* A .wvd file\n    * A .wvd file contains the Widevine keys from a device and is required to decrypt the files. The easiest method of obtaining one is using KeyDive, which extracts it from an Android device. Detailed instructions can be found here: https://github.com/hyugogirubato/KeyDive.\n    * .wvd files extracted from emulated devices may not work.\n* The cookies file of your Spotify browser session in Netscape format (free or premium)\n    * You can get your cookies by using one of the following extensions on your browser of choice at the Spotify website with your account signed in:\n        * Firefox: https://addons.mozilla.org/addon/export-cookies-txt\n        * Chromium based browsers: https://chrome.google.com/webstore/detail/gdocmgbfkjnnpapoeobnolbbkoibbcif\n* FFmpeg on your system PATH\n    * Older versions of FFmpeg may not work.\n    * Up to date binaries can be obtained from the links below:\n        * Windows: https://github.com/AnimMouse/ffmpeg-stable-autobuild/releases\n        * Linux: https://johnvansickle.com/ffmpeg/\n\n## Installation\n1. Install the package `spotify-web-downloader` using pip\n    ```bash\n    pip install spotify-web-downloader\n    ```\n2. Place your cookies file and the .wvd file in the directory from which you will be running spotify-web-downloader and name it `cookies.txt` and `device.wvd` respectively.\n\n## Usage\n```bash\nspotify-web-downloader [OPTIONS] URLS...\n```\n\n### Examples\n* Download a song\n    ```bash\n    spotify-web-downloader \"https://open.spotify.com/track/18gqCQzqYb0zvurQPlRkpo\"\n    ```\n* Download an album\n    ```bash\n    spotify-web-downloader \"https://open.spotify.com/album/0r8D5N674HbTXlR3zNxeU1\"\n    ```\n\n## Configuration\nspotify-web-downloader can be configured using the command line arguments or the config file.\n\nThe config file is created automatically when you run spotify-web-downloader for the first time at `~/.spotify-web-downloader/config.json` on Linux and `%USERPROFILE%\\.spotify-web-downloader\\config.json` on Windows.\n\nConfig file values can be overridden using command line arguments.\n| Command line argument / Config file key                         | Description                                                                  | Default value                                  |\n| --------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------- |\n| `--wait-interval`, `-w` / `wait_interval`                       | Wait interval between downloads in seconds.                                  | `10`                                           |\n| `--download-music-video` / `download_music_video`               | Attempt to download music videos from songs (can lead to incorrect results). | `false`                                        |\n| `--force-premium`, `-f` / `force_premium`                       | Force to detect the account as premium.                                      | `false`                                        |\n| `--save-cover`, `-s` / `save_cover`                             | Save cover as a separate file.                                               | `false`                                        |\n| `--overwrite` / `overwrite`                                     | Overwrite existing files.                                                    | `false`                                        |\n| `--read-urls-as-txt`, `-r` / -                                  | Interpret URLs as paths to text files containing URLs.                       | `false`                                        |\n| `--save-playlist` / `save_playlist`                             | Save a M3U8 playlist file when downloading a playlist.                       | `false`                                        |\n| `--lrc-only`, `-l` / `lrc_only`                                 | Download only the synced lyrics.                                             | `false`                                        |\n| `--no-lrc` / `no_lrc`                                           | Don't download the synced lyrics.                                            | `false`                                        |\n| `--config-path` / -                                             | Path to config file.                                                         | `\u003chome\u003e/.spotify-web-downloader/config.json`   |\n| `--log-level` / `log_level`                                     | Log level.                                                                   | `INFO`                                         |\n| `--print-exceptions` / `print_exceptions`                       | Print exceptions.                                                            | `false`                                        |\n| `--cookies-path`, `-c` / `cookies_path`                         | Path to .txt cookies file.                                                   | `./cookies.txt`                                |\n| `--output-path`, `-o` / `output_path`                           | Path to output directory.                                                    | `./Spotify`                                    |\n| `--temp-path` / `temp_path`                                     | Path to temporary directory.                                                 | `./temp`                                       |\n| `--wvd-path` / `wvd_path`                                       | Path to .wvd file.                                                           | `./device.wvd`                                 |\n| `--ffmpeg-path` / `ffmpeg_path`                                 | Path to FFmpeg binary.                                                       | `ffmpeg`                                       |\n| `--mp4box-path` / `mp4box_path`                                 | Path to MP4Box binary.                                                       | `MP4Box`                                       |\n| `--mp4decrypt-path` / `mp4decrypt_path`                         | Path to mp4decrypt binary.                                                   | `mp4decrypt`                                   |\n| `--aria2c-path` / `aria2c_path`                                 | Path to aria2c binary.                                                       | `aria2c`                                       |\n| `--nm3u8dlre-path` / `nm3u8dlre_path`                           | Path to N_m3u8DL-RE binary.                                                  | `N_m3u8DL-RE`                                  |\n| `--remux-mode` / `remux_mode`                                   | Remux mode.                                                                  | `ffmpeg`                                       |\n| `--template-folder-album` / `template_folder_album`             | Template folder for tracks that are part of an album.                        | `{album_artist}/{album}`                       |\n| `--template-folder-compilation` / `template_folder_compilation` | Template folder for tracks that are part of a compilation album.             | `Compilations/{album}`                         |\n| `--template-file-single-disc` / `template_file_single_disc`     | Template file for the tracks that are part of a single-disc album.           | `{track:02d} {title}`                          |\n| `--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}`                   |\n| `--template-folder-no-album` / `template_folder_no_album`       | Template folder for the tracks that are not part of an album.                | `{artist}/Unknown Album`                       |\n| `--template-file-no-album` / `template_file_no_album`           | Template file for the tracks that are not part of an album.                  | `{title}`                                      |\n| `--template-file-playlist` / `template_file_playlist`           | Template file for the M3U8 playlist.                                         | `Playlists/{playlist_artist}/{playlist_title}` |\n| `--date-tag-template` / `date_tag_template`                     | Date tag template.                                                           | `%Y-%m-%dT%H:%M:%SZ`                           |\n| `--exclude-tags` / `exclude_tags`                               | Comma-separated tags to exclude.                                             | `null`                                         |\n| `--truncate` / `truncate`                                       | Maximum length of the file/folder names.                                     | `null`                                         |\n| `--download-mode-song` / `download_mode_song`                   | Download mode for songs.                                                     | `ytdlp`                                        |\n| `--premium-quality`, `-p` / `premium_quality`                   | Download songs in premium quality.                                           | `false`                                        |\n| `--download-mode-video` / `download_mode_video`                 | Download mode for videos.                                                    | `ytdlp`                                        |\n| `--no-config-file`, `-n` / -                                    | Do not use a config file.                                                    | `false`                                        |\n\n\n\n### Tag variables\nThe following variables can be used in the template folder/file and/or in the `exclude_tags` list:\n- `album`\n- `album_artist`\n- `artist`\n- `compilation`\n- `composer`\n- `copyright`\n- `cover`\n- `disc`\n- `disc_total`\n- `isrc`\n- `label`\n- `lyrics`\n- `media_type`\n- `playlist_artist`\n- `playlist_title`\n- `playlist_track`\n- `producer`\n- `rating`\n- `release_date`\n- `release_year`\n- `title`\n- `track`\n- `track_total`\n- `url`\n  \n### Remux modes\nThe following remux modes are available:\n* `ffmpeg`\n* `mp4box`\n    * Requires mp4decrypt\n    * Can be obtained from here: https://gpac.wp.imt.fr/downloads\n\n### Music videos quality\nMusic videos will be downloaded in the highest quality available in H.264/AAC, up to 1080p.\n\n### Download modes\nThe following modes are available for songs:\n* `ytdlp`\n* `aria2c`\n    * Faster than `ytdlp`\n    * Can be obtained from here: https://github.com/aria2/aria2/releases\n\nThe following modes are available for videos:\n* `ytdlp`\n* `nm3u8dlre`\n    * Faster than `ytdlp`\n    * Can be obtained from here: https://github.com/nilaoda/N_m3u8DL-RE/releases\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglomatico%2Fspotify-web-downloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglomatico%2Fspotify-web-downloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglomatico%2Fspotify-web-downloader/lists"}