Name | spotify-dlp JSON |
Version |
2.2.0
JSON |
| download |
home_page | https://github.com/zWolfrost/spotify-dlp |
Summary | Command line downloader for spotify tracks, playlists, albums and top artists songs. |
upload_time | 2024-12-07 19:09:59 |
maintainer | None |
docs_url | None |
author | zWolfrost |
requires_python | None |
license | None |
keywords |
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# spotify-dlp
[](https://pypi.org/project/spotify-dlp/)
[](https://pypi.org/project/spotify-dlp/)
[](LICENSE)
Command line downloader for spotify tracks, playlists, albums and top artists songs.
It works by taking the metadata out of these items using the Spotify API and searching them up on YouTube Music.
Then, it downloads the result by using yt-dlp.
## Installation
1. After having installed [Python 3](https://www.python.org/downloads/) with pip, you can install spotify-dlp using the following command:
```bash
pip install spotify-dlp
```
2. Then, login to [Spotify developer console](https://developer.spotify.com/dashboard) and click on "Create an App". Fill in details for name and description.
3. Make a note of Client ID and Client Secret. These values need to be then set to the `SPOTIFY_DLP_CLIENT_ID` and `SPOTIFY_DLP_CLIENT_SECRET` environment variables respectively
Alternatively, you can also include them in a `.env` file in the working directory, or even directly pass them as arguments.
You can set environment variables by doing the following:
Windows (run in cmd as administrator):
```sh
setx SPOTIFY_DLP_CLIENT_ID "your_client_id"
```
```sh
setx SPOTIFY_DLP_CLIENT_SECRET "your_client_secret"
```
Linux (add to `~/.bashrc`):
```sh
export SPOTIFY_DLP_CLIENT_ID="your_client_id"
export SPOTIFY_DLP_CLIENT_SECRET="your_client_secret"
```
4. You can now use the script by running `spotify-dlp` in the command line.
Also, ffmpeg is required if you wish to convert the m4a codec to another one using the `-c` argument.
## Arguments
| Command | Example | Description
|:-: |:-: |:-
| | "kon queso" | The words to search up<br>or a link to a spotify album, artist, playlist or track.
| `-i` `--client-id` | "qwertyuiop" | The Spotify Client ID*.
| `-s` `--client-secret` | "asdfghjkl" | The Spotify Client Secret*.
| `-f` `--format` | "{name} - {authors} ({album})" | The format of the downloaded tracks' names.<br>Set to `help` for a list of available fields.
| `-t` `--type` | "track" | When searching up a query,<br>the specified type of content.
| `-l` `--slice` | "2:6" | The beginning and ending index of the list items<br>to download, separated by a colon ":" (1-based).<br>Either one of those indexes can be omitted.
| `-o` `--output` | "./album/" | The output path of the downloaded tracks.
| `-c` `--codec` | "m4a" | The audio codec of the downloaded tracks.
| `-m` `--metadata` | | Whether to download metadata (such as covers).
| `-y` `--yes` | | Whether to skip the confirmation prompt.
| `-v` `--verbose` | | Whether to display verbose information.
| `-h` `--help` | | Show the help message and exit.
*Required if not already found in the environment variables or in the working directory `.env` file.
## Use Examples
```sh
spotify-dlp jigsaw falliing into place radiohead
```
```sh
spotify-dlp spirit phone -t album -o "%userprofile%\Desktop" -c mp3 -y
```
```sh
spotify-dlp https://open.spotify.com/album/2Vq0Y8wgiZRYtZ1mQ7zOMG -i "your_client_id" -s "your_client_secret"
```
## Screenshots

## Changelog
*This changelog only includes changes that are worth mentioning.*
- **2.0.0**:
<br>- Basically, everything changed. Also added package to PyPI.
- **2.0.1**:
<br>- Fixed `--verbose` argument not working.
<br>- Made youtube search more accurate.
<br>- Better error handling.
- **2.1.0**:
<br>- Added some QOL features.
<br>- Fixed bug where a playlist with more than 100 tracks would be cut off.
<br>- Better error handling.
- **2.1.1**:
<br>- Fixed bug where track indexes would not show.
<br>- Fixed bug where an album with more than 50 tracks would be cut off.
- **2.1.2**:
<br>- Fixed bug where an error with a track would stop the whole process.
- **2.1.3**:
<br>- Fixed bug where an already downloaded track would be downloaded again.
<br>- Added colors to the output.
<br>- Minor tweaks.
- **2.2.0**:
<br>- Added `--metadata` argument, which allows cover downloading.
<br>- Fixed bug where a playlist with an episode in it would error out.
<br>- Fixed bug where the -c argument would give files double extensions.
Raw data
{
"_id": null,
"home_page": "https://github.com/zWolfrost/spotify-dlp",
"name": "spotify-dlp",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "zWolfrost",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/8b/87/34303a1bd2eb6872583ce4ab0bdb5dc697ede0f89fda039334c60231349b/spotify_dlp-2.2.0.tar.gz",
"platform": null,
"description": "# spotify-dlp\n[](https://pypi.org/project/spotify-dlp/)\n[](https://pypi.org/project/spotify-dlp/)\n[](LICENSE)\n\nCommand line downloader for spotify tracks, playlists, albums and top artists songs.\nIt works by taking the metadata out of these items using the Spotify API and searching them up on YouTube Music.\nThen, it downloads the result by using yt-dlp.\n\n\n \n## Installation\n1. After having installed [Python 3](https://www.python.org/downloads/) with pip, you can install spotify-dlp using the following command:\n\t```bash\n\tpip install spotify-dlp\n\t```\n\n2. Then, login to [Spotify developer console](https://developer.spotify.com/dashboard) and click on \"Create an App\". Fill in details for name and description.\n\n3. Make a note of Client ID and Client Secret. These values need to be then set to the `SPOTIFY_DLP_CLIENT_ID` and `SPOTIFY_DLP_CLIENT_SECRET` environment variables respectively\n\n\tAlternatively, you can also include them in a `.env` file in the working directory, or even directly pass them as arguments.\n\n\tYou can set environment variables by doing the following:\n\n\tWindows (run in cmd as administrator):\n\t```sh\n\tsetx SPOTIFY_DLP_CLIENT_ID \"your_client_id\"\n\t```\n\t```sh\n\tsetx SPOTIFY_DLP_CLIENT_SECRET \"your_client_secret\"\n\t```\n\n\tLinux (add to `~/.bashrc`):\n\t```sh\n\texport SPOTIFY_DLP_CLIENT_ID=\"your_client_id\"\n\texport SPOTIFY_DLP_CLIENT_SECRET=\"your_client_secret\"\n\t```\n\n4. You can now use the script by running `spotify-dlp` in the command line.\n\tAlso, ffmpeg is required if you wish to convert the m4a codec to another one using the `-c` argument.\n\n\n \n## Arguments\n| Command | Example | Description\n|:-: |:-: |:-\n| | \"kon queso\" | The words to search up<br>or a link to a spotify album, artist, playlist or track.\n| `-i` `--client-id` | \"qwertyuiop\" | The Spotify Client ID*.\n| `-s` `--client-secret` | \"asdfghjkl\" | The Spotify Client Secret*.\n| `-f` `--format` | \"{name} - {authors} ({album})\" | The format of the downloaded tracks' names.<br>Set to `help` for a list of available fields.\n| `-t` `--type` | \"track\" | When searching up a query,<br>the specified type of content.\n| `-l` `--slice` | \"2:6\" | The beginning and ending index of the list items<br>to download, separated by a colon \":\" (1-based).<br>Either one of those indexes can be omitted.\n| `-o` `--output` | \"./album/\" | The output path of the downloaded tracks.\n| `-c` `--codec` | \"m4a\" | The audio codec of the downloaded tracks.\n| `-m` `--metadata` | | Whether to download metadata (such as covers).\n| `-y` `--yes` | | Whether to skip the confirmation prompt.\n| `-v` `--verbose` | | Whether to display verbose information.\n| `-h` `--help` | | Show the help message and exit.\n\n*Required if not already found in the environment variables or in the working directory `.env` file.\n\n\n \n## Use Examples\n```sh\nspotify-dlp jigsaw falliing into place radiohead\n```\n```sh\nspotify-dlp spirit phone -t album -o \"%userprofile%\\Desktop\" -c mp3 -y\n```\n```sh\nspotify-dlp https://open.spotify.com/album/2Vq0Y8wgiZRYtZ1mQ7zOMG -i \"your_client_id\" -s \"your_client_secret\"\n```\n\n\n \n## Screenshots\n\n\n\n \n## Changelog\n*This changelog only includes changes that are worth mentioning.*\n\n- **2.0.0**:\n<br>- Basically, everything changed. Also added package to PyPI.\n\t- **2.0.1**:\n\t<br>- Fixed `--verbose` argument not working.\n\t<br>- Made youtube search more accurate.\n\t<br>- Better error handling.\n- **2.1.0**:\n<br>- Added some QOL features.\n<br>- Fixed bug where a playlist with more than 100 tracks would be cut off.\n<br>- Better error handling.\n\t- **2.1.1**:\n\t<br>- Fixed bug where track indexes would not show.\n\t<br>- Fixed bug where an album with more than 50 tracks would be cut off.\n\t- **2.1.2**:\n\t<br>- Fixed bug where an error with a track would stop the whole process.\n\t- **2.1.3**:\n\t<br>- Fixed bug where an already downloaded track would be downloaded again.\n\t<br>- Added colors to the output.\n\t<br>- Minor tweaks.\n- **2.2.0**:\n\t<br>- Added `--metadata` argument, which allows cover downloading.\n\t<br>- Fixed bug where a playlist with an episode in it would error out.\n\t<br>- Fixed bug where the -c argument would give files double extensions.\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Command line downloader for spotify tracks, playlists, albums and top artists songs.",
"version": "2.2.0",
"project_urls": {
"Homepage": "https://github.com/zWolfrost/spotify-dlp"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "55f5321a3cdeef9f0736ebaf66a0505d602ef0d913e3f984800715dd92f20e91",
"md5": "bfd4c08105193b87705f370612f18f6f",
"sha256": "cfb9c62a465a4d298145c6bd4bf5aa04f2cafd5d1f778441e13d4d5d83d68e71"
},
"downloads": -1,
"filename": "spotify_dlp-2.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bfd4c08105193b87705f370612f18f6f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 12542,
"upload_time": "2024-12-07T19:09:57",
"upload_time_iso_8601": "2024-12-07T19:09:57.569311Z",
"url": "https://files.pythonhosted.org/packages/55/f5/321a3cdeef9f0736ebaf66a0505d602ef0d913e3f984800715dd92f20e91/spotify_dlp-2.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8b8734303a1bd2eb6872583ce4ab0bdb5dc697ede0f89fda039334c60231349b",
"md5": "53048f5a7d273921ae7c9140b015f430",
"sha256": "2580d6fad672667413e6a817cfaba4775a2fbf13681eecc6083d2b20b15b0787"
},
"downloads": -1,
"filename": "spotify_dlp-2.2.0.tar.gz",
"has_sig": false,
"md5_digest": "53048f5a7d273921ae7c9140b015f430",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 9242,
"upload_time": "2024-12-07T19:09:59",
"upload_time_iso_8601": "2024-12-07T19:09:59.244152Z",
"url": "https://files.pythonhosted.org/packages/8b/87/34303a1bd2eb6872583ce4ab0bdb5dc697ede0f89fda039334c60231349b/spotify_dlp-2.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-07 19:09:59",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "zWolfrost",
"github_project": "spotify-dlp",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "spotify-dlp"
}