Skip to content

Commit 850e18b

Browse files
authored
Merge branch 'dev' into datastar
2 parents 7fbad9b + b20a46b commit 850e18b

22 files changed

+74628
-78
lines changed

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,9 @@ For a list of all **options** use ```spotdl -h```
117117
- Usage:
118118
`spotdl save [query] --save-file {filename}.spotdl`
119119

120-
- `web`: Starts a web interface instead of using the command line. However, it has limited features and only supports downloading single songs.
120+
- `web`: Starts a web interface instead of using the command line. However, it has limited features and only supports downloading individual songs.
121121

122-
- `url`: Get direct download link for each song from the query.
122+
- `url`: Get user-friendly URL for each song from the query.
123123
- Usage:
124124
`spotdl url [query]`
125125

@@ -128,7 +128,7 @@ For a list of all **options** use ```spotdl -h```
128128
- Usage:
129129
`spotdl sync [query] --save-file {filename}.spotdl`
130130

131-
This create a new **sync** file, to update the directory in the future, use:
131+
This creates a new **sync** file. To update the directory in the future, use:
132132

133133
`spotdl sync {filename}.spotdl`
134134

docs/CONTRIBUTING.md

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ following:
4747

4848
- Open an [Issue](https://github.com/spotDL/spotify-downloader/issues/new).
4949
- Provide as much context as you can about what you're running into.
50-
- Provide project and platform versions (nodejs, npm, etc), depending on what seems relevant.
50+
- Provide project and platform versions (Node.js, npm, etc.), depending on what seems relevant.
5151

5252
We will then take care of the issue as soon as possible.
5353

@@ -74,6 +74,31 @@ Depending on how large the project is, you may want to outsource the questioning
7474
> that you have the necessary rights to the content and that the content you contribute may be
7575
> provided under the project license.
7676
77+
---
78+
79+
### AUTOMATED CONTRIBUTIONS (AI / LLM) POLICY
80+
81+
#### AI Use
82+
- It is in everyone's best interest to **not** submit issues, pull requests or feature requests that are AI-generated.
83+
- All such requests will be closed and submitters will be blocked from the repository.
84+
85+
#### You must...
86+
- Be able to understand and respond to questions relating to the issue or the fix you provide.
87+
- You *can* use an AI tool for proofreading, translating or understanding the issue's content.
88+
- You **cannot** use AI tools to generate the issue text, or the issue itself.
89+
90+
#### Pull Requests
91+
- You should be able to explain every part of the code you have written/modified in your PR.
92+
- If you do not understand your PR, **do not** submit it. You cannot use an AI tool to generate code for you.
93+
94+
The rationale behind this policy is that automated contributions are a waste of the maintainers' time. Humans spend their time and brainpower reviewing every submission. Issues or pull requests generated by automation tools create an imbalance of effort between the submitter and the reviewer. Nobody learns anything when a maintainer reviews code written by an LLM.
95+
96+
Additionally, such AI-generated content impedes legitimate issues and feature requests that would add more value to the project.
97+
98+
99+
---
100+
101+
77102
### Reporting Bugs
78103

79104
<!-- omit in toc -->
@@ -263,13 +288,13 @@ Any submitted code is expected to have accompanying documentation
263288

264289
- We generate our documentation with [`mkdocs`](https://www.mkdocs.org/)
265290

266-
generate docs with
291+
Generate docs with
267292

268293
```bash
269294
mkdocs build --strict
270295
```
271296

272-
view docs live-time while editing with
297+
View docs in real-time while editing with
273298

274299
```bash
275300
mkdocs serve
@@ -280,7 +305,7 @@ Any submitted code is expected to have accompanying documentation
280305
- For functions
281306

282307
```text
283-
one-liner about functions purpose
308+
one-liner about function's purpose
284309
285310
### Args (optional)
286311
- arg_name: description
@@ -310,9 +335,9 @@ Any submitted code is expected to have accompanying documentation
310335
- For modules/package `__init__`
311336

312337
```text
313-
at max 3 lines about module/package purpose
338+
At most 3 lines about module/package purpose
314339
315-
optional usage example for module/package preferably showcasing most commonly used functionality
340+
Optional usage example for module/package, preferably showcasing most commonly used functionality
316341
```
317342

318343
#### Notes about docstrings

docs/installation.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
# spotDL Installation Guide
22

3-
spotDL is a free and open source tool that downloads your Spotify playlists & music
3+
spotDL is a free and open-source tool that downloads your Spotify playlists & music
44

55
> **The fastest, easiest, and most accurate command-line music downloader**
66
77
## Install via Python
88

99
> This is our recommended installation method.
1010
11-
If you are on Windows, Install Visual C++ Redistributable (link below) and then proceed to
12-
install Python & FFmpeg
11+
If you are on Windows, install Visual C++ Redistributable (link below) and then proceed to
12+
install Python & FFmpeg.
1313

1414
### Prerequisites to spotDL
1515

@@ -31,11 +31,11 @@ When installing [Python](https://python.org/), ensure to select "**Add to PATH**
3131
> If you are not on Windows (e.g. OSX/UNIX), replace `pip` with `pip3` and `python` with
3232
> `python3` in all commands.
3333
34-
Firstly, open a terminal. On Windows: Command Prompt, OSX: "Terminal", \*UNIX: Bash or Zsh.
34+
First, open a terminal. On Windows: Command Prompt, macOS: "Terminal", *UNIX: Bash or Zsh.
3535

3636
Verify you have installed Python correctly via `python -V`. Ensure you have v3.7 or greater.
3737

38-
Next, install spotDL by typing the following
38+
Next, install spotDL by typing the following:
3939

4040
```shell
4141
pip install spotdl
@@ -65,15 +65,15 @@ You can download the latest version from the
6565

6666
### Running Web UI
6767

68-
Web UI will start by default if no arguments are passed to the command line (after
69-
double-clicking for example)
68+
The Web UI will start by default if no arguments are passed to the command line (after
69+
double-clicking, for example).
7070

7171
![Web UI](images/WEB_UI.png)
7272

7373
### Running the CLI
7474

75-
To use the command line interface just open your terminal and run
76-
`./spotdl-vX.X.X operation [urls]`
75+
To use the command line interface, just open your terminal and run
76+
`./spotdl-vX.X.X operation [urls]`.
7777

7878
## Docker Setup
7979

@@ -118,7 +118,7 @@ docker create \
118118

119119
### Termux
120120

121-
We have a dedicated Termux installation script
121+
We have a dedicated Termux installation script:
122122
`curl -L https://raw.githubusercontent.com/spotDL/spotify-downloader/master/scripts/termux.sh | sh`
123123

124124
### Arch User Repository (AUR) package
@@ -129,7 +129,7 @@ We have a dedicated Termux installation script
129129

130130
spotDL downloads files to the folder where you ran spotDL from.
131131

132-
Open pwsh/powershell/cmd/terminal/similar in the folder you want files to download to, or cd to
132+
Open pwsh/powershell/cmd/terminal/similar in the folder you want files to download to, or cd to the
133133
desired folder.
134134

135135
**Windows Shortcut:** Navigate to the folder you want the files to download to.

docs/troubleshooting.md

Lines changed: 39 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ As common issues or questions are encountered solutions will be added to this gu
77
Python/(site packages) is not added to PATH correctly. You need to install Python from
88
<https://www.python.org/downloads/>
99

10-
Or you are using python from microsoft store. If so uninstall it and restart cmd. If this
11-
doesn't work reinstall python.
10+
Or you are using Python from the Microsoft Store. If so, uninstall it and restart cmd. If this
11+
doesn't work, reinstall Python.
1212

1313
### Error message
1414

@@ -24,7 +24,7 @@ As common issues or questions are encountered solutions will be added to this gu
2424
??? "spotdl: command not found"
2525

2626
If you see this error after installing spotdl, that means that the bin (Binaries) folder is not
27-
on `$PATH`
27+
in `$PATH`.
2828

2929
### Solution
3030

@@ -40,8 +40,8 @@ As common issues or questions are encountered solutions will be added to this gu
4040

4141
??? "pkg_resources.DistributionNotFound"
4242

43-
Sometimes not all packages are installed but are required by yt-dlp for example: `brotli` or
44-
`websockets`
43+
Sometimes not all packages are installed but are required by yt-dlp, for example: `brotli` or
44+
`websockets`.
4545

4646
### Error Message
4747

@@ -61,7 +61,7 @@ As common issues or questions are encountered solutions will be added to this gu
6161

6262
### Solution
6363

64-
Update spotdl to the latest version which contains workaround.
64+
Update spotdl to the latest version which contains a workaround.
6565

6666
`pip install -U spotdl`
6767

@@ -87,7 +87,7 @@ As common issues or questions are encountered solutions will be added to this gu
8787

8888
### Solution
8989

90-
Update spotdl
90+
Update spotdl:
9191

9292
`pip install spotdl -U`
9393

@@ -105,11 +105,11 @@ As common issues or questions are encountered solutions will be added to this gu
105105

106106
### Solution
107107

108-
You can ignore this error or just run spotdl directly
108+
You can ignore this error or just run spotdl directly.
109109

110110
??? "Not found '\_raw_ecb.so'"
111111

112-
This error is specific for M1 Macs only.
112+
This error is specific to M1 Macs only.
113113

114114
https://discord.com/channels/771628785447337985/871006150357823498
115115
https://discord.com/channels/771628785447337985/939475659238043738
@@ -130,3 +130,33 @@ As common issues or questions are encountered solutions will be added to this gu
130130

131131
<https://discord.com/channels/771628785447337985/871006150357823498>
132132
<https://discord.com/channels/771628785447337985/939475659238043738>
133+
134+
??? "KeyError: 'header' - YouTube Music API error"
135+
136+
This error occurs when YouTube Music's API response structure changes intermittently. The error has been fixed in ytmusicapi v1.11.1, which is the minimum version required by spotdl v4.4.3.
137+
138+
### Error Message
139+
140+
```
141+
KeyError: "Unable to find 'header' using path ['header', 'musicCardShelfHeaderBasicRenderer', 'title', 'runs', 0, 'text']"
142+
```
143+
144+
### Solution
145+
146+
1. Update ytmusicapi to v1.11.1 or later:
147+
148+
```bash
149+
pip install -U ytmusicapi
150+
```
151+
152+
2. If the error persists, reinstall spotdl:
153+
154+
```bash
155+
pip install -U --force spotdl
156+
```
157+
158+
3. If you're still experiencing issues, the error may be intermittent due to YouTube's anti-bot mechanisms. Wait a few minutes and try again.
159+
160+
### Background
161+
162+
YouTube Music occasionally returns different response structures from their API. Version 1.11.1 of ytmusicapi includes a fallback mechanism that handles cases where the `header` field is missing from search results. This fix was implemented in PR #800 (https://github.com/sigma67/ytmusicapi/pull/800) to address issue #799.

docs/usage.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@
6868
```
6969

7070
??? info "YouTube link with Spotify metadata"
71-
To download YouTube video with metadata from Spotify, run
72-
> Noting the quote `"` are required
71+
To download a YouTube video with metadata from Spotify, run
72+
> Note that the quotes `"` are required
7373

7474
```bash
7575
spotdl download "YouTubeURL|SpotifyURL"
@@ -82,23 +82,23 @@
8282
```
8383

8484
??? info "Liked songs"
85-
To download liked Spotify songs run
85+
To download liked Spotify songs, run
8686
> `--user-auth` is required
8787

8888
```bash
8989
spotdl download saved --user-auth
9090
```
9191

9292
??? info "All user playlists"
93-
To download all user playlists run
93+
To download all user playlists, run
9494
> `--user-auth` is required
9595

9696
```bash
9797
spotdl download all-user-playlists --user-auth
9898
```
9999

100100
??? info "All user saved albums"
101-
To download all user saved albums run
101+
To download all user saved albums, run
102102
> `--user-auth` is required
103103

104104
```bash
@@ -154,11 +154,11 @@ To download music in higher quality follow the steps below:
154154

155155
## Syncing
156156

157-
Sync function for the console. Keep local files up to date with playlists/albums/etc.
158-
This will download new songs and remove the ones that are no longer present in the playlists/albums/etc
157+
Sync function for the console. Keeps local files up to date with playlists/albums/etc.
158+
This will download new songs and remove the ones that are no longer present in the playlists/albums/etc.
159159

160160
??? info "Initialize Synchronization"
161-
To create the sync file run
161+
To create the sync file, run
162162

163163
```bash
164164
spotdl sync [query] --save-file [fileName]
@@ -173,7 +173,7 @@ This will download new songs and remove the ones that are no longer present in t
173173
> Note: The sync file has to end with .spotdl
174174

175175
??? info "Syncing"
176-
To sync the songs run
176+
To sync the songs, run
177177

178178
```bash
179179
spotdl sync [fileName]
@@ -208,7 +208,7 @@ spotdl save 'The Weeknd - Blinding Lights' --save-file 'the-weeknd.spotdl'
208208
```
209209

210210
??? info "Preloading"
211-
Preload the download url to speed up the download process.
211+
Preload the download URL to speed up the download process.
212212

213213
```bash
214214
spotdl save [query] --save-file [fileName] --preload
@@ -238,9 +238,9 @@ add option `--web-use-output-dir`, which will make output directory follow `--ou
238238
### Config file location
239239

240240
The config file is located at `C:\Users\user\.spotdl\config.json`
241-
or `~/.spotdl/config.json` under linux
241+
or `~/.config/spotdl/config.json` under Linux
242242

243-
> Note: If you want to use XDG_DATA_HOME directory, run `mkdir $XDG_DATA_HOME/spotdl`, next time you run spotdl it will be automatically used.
243+
> Note: Prior to v4.4.3 the default Linux location was `~/.spotdl/config.json` which will be used if the new directory doesn't exist.
244244
245245
### Generate a config file
246246

@@ -254,9 +254,9 @@ spotdl --generate-config
254254
255255
### Loading config
256256

257-
Config file gets loaded automatically if it already exists, or if you've passed `--config` flag
257+
The config file gets loaded automatically if it already exists, or if you've passed the `--config` flag.
258258

259-
If you don't want config to load automatically change `load_config` option in config file to false
259+
If you don't want the config to load automatically, change the `load_config` option in the config file to false
260260

261261
```json
262262
{
@@ -413,8 +413,8 @@ Main options:
413413
{original-date}, {track-number}, {tracks-count}, {isrc}, {track-id}, {publisher}, {list-length}, {list-position}, {list-name}, {output-ext}
414414
--dont-filter-results
415415
Disable filtering results.
416-
--album-type {single,album}
417-
Type of the album to search for. (album, single)
416+
--album-type {single,album,compilation}
417+
Type of the album to search for. (album, single, compilation)
418418
--only-verified-results
419419
Use only verified results. (Not all providers support this)
420420

pyproject.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "spotdl"
3-
version = "4.4.2"
3+
version = "4.4.3"
44
requires-python = ">=3.10,<3.14"
55

66
description = "Download your Spotify playlists and songs along with album art and metadata"
@@ -32,9 +32,9 @@ classifiers = [
3232
]
3333
dependencies = [
3434
"spotipy>=2.24.0,<3",
35-
"ytmusicapi>=1.11.0,<2",
35+
"ytmusicapi>=1.11.1,<2",
3636
"pytube>=15.0.0,<16",
37-
"yt-dlp>=2025.08.27,<2026",
37+
"yt-dlp>=2025.09.26,<2027",
3838
"mutagen>=1.47.0,<2",
3939
"rich>=13.9.4,<14",
4040
"beautifulsoup4>=4.12.3,<5",

spotdl/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22
Version module for spotdl.
33
"""
44

5-
__version__ = "4.4.2"
5+
__version__ = "4.4.3"

0 commit comments

Comments
 (0)