dependabot[bot]
cb3952de5c
[DEV] Bump pylint from 4.0.1 to 4.0.5 ( #1437 )
...
Bumps [pylint](https://github.com/pylint-dev/pylint ) from 4.0.1 to 4.0.5.
- [Release notes](https://github.com/pylint-dev/pylint/releases )
- [Commits](https://github.com/pylint-dev/pylint/compare/v4.0.1...v4.0.5 )
---
updated-dependencies:
- dependency-name: pylint
dependency-version: 4.0.5
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 12:36:32 -07:00
dependabot[bot]
0983a594fd
Update pytest requirement from <9.0,>=7.2 to >=7.2,<10.0 ( #1380 )
...
Updates the requirements on [pytest](https://github.com/pytest-dev/pytest ) to permit the latest version.
- [Release notes](https://github.com/pytest-dev/pytest/releases )
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst )
- [Commits](https://github.com/pytest-dev/pytest/compare/7.2.0...9.0.0 )
---
updated-dependencies:
- dependency-name: pytest
dependency-version: 9.0.0
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-09 11:39:56 -07:00
Jesse Bannon
57fd6901e4
[DEV] Linter: Use ruff over black and isort ( #1445 )
...
Will eventually replace pylint with ruff
2026-03-09 11:39:01 -07:00
Jesse Bannon
a758a8870d
[DOCS] Overhaul configuration file getting started guide ( #1172 )
...
Updates the configuration file's docs to be cleaner. Removes sphinx autodocs entirely in favor of our custom-built one.
2026-03-09 10:18:50 -07:00
Ross Patterson
ff66ff5be0
fix(docker): Add default crontab download command ( #1321 )
...
* docs(docker): Recommended image DEFAULT_WORKSPACE
* fix(docker): Add default crontab download command
Clarify the `/config/ytdl-sub-configs/cron` script with explanatory comments and a
default `--dry-run` command. Also change the wrapper script to echo commands for easier
debugging. To update an existing script, move the old script aside, restart the
container to regenerate it, and edit the new script.
Also clarify the Automating page in the Getting Started guide docs.
* fix(docker): Unintentional unattended dry runs
[PR feedback](https://github.com/jmbannon/ytdl-sub/pull/1321#discussion_r2315215600 )
prompted me to reconsider having a default command at all. We should assume,
unfortunately, that many new users will just skim the docs enough to enable the image's
cron integration but not actually incrementally test their configuration. In those
cases, they'd end up sending dry-run non-download requests for all their subscriptions
every 6 hours for no good reason. There's just no way to provide a default command that
isn't also providing a footgun.
* docs(docker): More open cron schedule generator
From [PR
feedback](https://github.com/jmbannon/ytdl-sub/pull/1321#discussion_r2320521024 ), this
seems like less of an ad than the previous and the source for the page is itself open source.
* docs(docker): Document image environment footgun
From [PR
feedback](https://github.com/jmbannon/ytdl-sub/pull/1321#discussion_r2320515419 ).
* docs(automate): Avoid external link 404 responses
* docs(automate): False simultaneous run warning
* docs(automate): Clarify Docker daemon restarts
* docs(automate): Revert run start non-recommended
* docs(automate): Remove footgun manual run command
Addressing this underlying issue requires more thought and should be a separate PR.
* docs(automate): Restore env var footgun in example
2026-03-09 09:27:27 -07:00
dependabot[bot]
64820daf6c
Bump yt-dlp[default] from 2026.2.21 to 2026.3.3 ( #1440 )
...
Bumps [yt-dlp[default]](https://github.com/yt-dlp/yt-dlp ) from 2026.2.21 to 2026.3.3.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases )
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md )
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2026.02.21...2026.03.03 )
---
updated-dependencies:
- dependency-name: yt-dlp[default]
dependency-version: 2026.3.3
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-04 19:21:53 -08:00
dependabot[bot]
3b5f9cba58
Bump yt-dlp[default] from 2026.2.4 to 2026.2.21 ( #1438 )
...
Bumps [yt-dlp[default]](https://github.com/yt-dlp/yt-dlp ) from 2026.2.4 to 2026.2.21.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases )
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md )
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2026.02.04...2026.02.21 )
---
updated-dependencies:
- dependency-name: yt-dlp[default]
dependency-version: 2026.2.21
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-23 15:10:39 -08:00
dependabot[bot]
e300c3d23a
Bump yt-dlp[default] from 2026.1.31 to 2026.2.4 ( #1432 )
...
Bumps [yt-dlp[default]](https://github.com/yt-dlp/yt-dlp ) from 2026.1.31 to 2026.2.4.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases )
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md )
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2026.01.31...2026.02.04 )
---
updated-dependencies:
- dependency-name: yt-dlp[default]
dependency-version: 2026.2.4
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-04 14:32:42 -08:00
dependabot[bot]
d526545abb
Bump yt-dlp[default] from 2026.1.29 to 2026.1.31 ( #1430 )
...
Bumps [yt-dlp[default]](https://github.com/yt-dlp/yt-dlp ) from 2026.1.29 to 2026.1.31.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases )
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md )
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2026.01.29...2026.01.31 )
---
updated-dependencies:
- dependency-name: yt-dlp[default]
dependency-version: 2026.1.31
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-02-02 20:27:33 -08:00
Jesse Bannon
ced547b14a
[FEATURE] Arg to shuffle subscriptions ( #1263 )
...
Closes https://github.com/jmbannon/ytdl-sub/issues/1234
Adds `--shuffle` support which shuffles the order of subscriptions when downloading.
2026-02-02 10:23:08 -08:00
Jesse Bannon
c163f9766a
[BACKEND] Configurable resolution level when validating variables ( #1415 )
...
Expands variable validation to also include support for partial resolution.
In short, this will partially execute script code until it hits unresolved runtime variables, and store that as the new script representation. This functionality will allow for the upcoming `inspect` command, which will show users their script code in action without having to dry-run.
2026-02-02 09:50:52 -08:00
dependabot[bot]
6b7805c6e1
Bump yt-dlp[default] from 2025.12.8 to 2026.1.29 ( #1428 )
...
Bumps [yt-dlp[default]](https://github.com/yt-dlp/yt-dlp ) from 2025.12.8 to 2026.1.29.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases )
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md )
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2025.12.08...2026.01.29 )
---
updated-dependencies:
- dependency-name: yt-dlp[default]
dependency-version: 2026.1.29
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-29 21:24:07 -08:00
Jesse Bannon
d6eda27371
[BACKEND] Less string casting behind the scenes ( #1425 )
...
Simplifies internal scripts by not casting things to String when unnecessary.
2026-01-27 10:15:32 -08:00
Jesse Bannon
d37945db7e
[HOTFIX] Fix StringFormattingException regarding keep_max_files ( #1427 )
...
Closes this issue from last release: https://github.com/jmbannon/ytdl-sub/issues/1426
2026-01-26 17:30:44 -08:00
Jesse Bannon
a097c6a476
[BACKEND][v2] More flexible formatter post_process ( #1424 )
...
Makes the underlying formatting process better handle native (non-string) types in a more flexible way. 2nd attempt since the last one got reverted due to breaking changes.
2026-01-25 22:35:51 -08:00
Jesse Bannon
97ecae79db
[DEV] More tests around passed-in ytdl-options ( #1423 )
2026-01-25 09:55:26 -08:00
Jesse Bannon
c1431c8d55
Revert "[BACKEND] More flexible formatter post_process ( #1421 )" ( #1422 )
...
This reverts commit 60cdbad8c7 .
Caused a breaking change to ytdl_options
2026-01-24 00:22:18 -08:00
Jesse Bannon
60cdbad8c7
[BACKEND] More flexible formatter post_process ( #1421 )
...
Makes the underlying formatting process better handle native (non-string) types in a more flexible way.
2026-01-23 16:36:17 -08:00
Jesse Bannon
264e458c1c
[BACKEND] Cache cycle checks ( #1420 )
...
Small speedup to make cycle validation faster.
2026-01-23 10:58:14 -08:00
Jesse Bannon
c4e112e8d5
[BUGFIX] Fix soundcloud not downloading tracks ( #1419 )
...
The /tracks URL is currently broken in yt-dlp. Now uses the input URL which will download the entire artists' page instead to get non-album tracks.
2026-01-23 09:23:34 -08:00
Jesse Bannon
97df4dac1d
[BACKEND] Preserve dict formatter value ( #1416 )
...
Do not modify the original definition of dict validators.
2026-01-16 13:51:33 -08:00
Jesse Bannon
942c983f60
[BACKEND] Sorted video tags ( #1417 )
...
For reproducibility in tests.
2026-01-16 13:42:22 -08:00
Jesse Bannon
530d2f7666
[BACKEND] Partial resolve support for Scripts ( #1410 )
...
Adds the mechanism to partially resolve an entire script (aka every underlying variable in ytdl-sub). This will be used in the upcoming `inspect` sub-command where it will dump a subscription's raw contents at multiple levels of resolution.
Potentially useful to optimize script execution as well.
2026-01-12 17:34:34 -08:00
Jesse Bannon
41a5bf60aa
[BACKEND] Remove cast and legacy_bracket_safety usage ( #1414 )
...
Removes unused casts and calls to the legacy_bracket_safety function.
2026-01-11 15:47:50 -08:00
dependabot[bot]
3a07d058aa
[DOCS] Update sphinx requirement from <9,>=7 to >=7,<10 ( #1411 )
...
Updates the requirements on [sphinx](https://github.com/sphinx-doc/sphinx ) to permit the latest version.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases )
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/master/CHANGES.rst )
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v7.0.0...v9.1.0 )
---
updated-dependencies:
- dependency-name: sphinx
dependency-version: 9.1.0
dependency-type: direct:development
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-06 12:59:22 -08:00
Jesse Bannon
6b99c31e45
[BACKEND] Simplify script quote generation ( #1409 )
...
Internal script -> string generation used triple-quotes redundantly. Try to use them less to make it more human-readable.
2026-01-06 12:58:37 -08:00
Jesse Bannon
b2056bec5d
[BACKEND] Array support for URLs ( #1406 )
...
Allows for the `download` plugin to take in a script-based array of URLs. Prebuilt presets are now greatly reduced in size by constructing urls as an array versus 100+ separate URL variables.
Eventually, we can completely remove the limit of the number of URLs in a subscription.
2025-12-31 15:24:44 -08:00
Jesse Bannon
c46de048ca
[FEATURE] %range function ( #1405 )
...
Add `%range` function, equivalent to Python's `range`.
2025-12-31 09:06:08 -08:00
Jesse Bannon
869fc0b836
[BUGFIX] Fix custom function lambda cycle detection ( #1404 )
...
Cycles detection did not take into account custom functions' variable usage. This is now fixed.
2025-12-31 08:22:26 -08:00
Jesse Bannon
7ac525f875
[BUGFIX] Fix custom function lambda variable dependency issue, part 2 ( #1403 )
...
Part two of https://github.com/jmbannon/ytdl-sub/pull/1402 which actually completes the fix.
2025-12-30 23:46:07 -08:00
Jesse Bannon
d373935fff
[BUGFIX] Fix custom function lambda variable dependency issue ( #1402 )
...
There was a bug that did not properly check variable dependency when using lambda functions. It could still work depending on order of definitions. This fix should make it work no matter the order.
2025-12-30 19:53:15 -08:00
Jesse Bannon
1abe2a44f5
[BACKEND] Refactor validation, preparation for subscription dissect ( #1398 )
...
Completely rewrite how subscription validation is performed. Optimizes it quite a bit while also adding backend support for the upcoming `dissect` sub-command, where you can resolve any subscription into its 'raw' form for easier debugging when making scripting changes.
2025-12-30 17:03:59 -08:00
Jesse Bannon
344753cc63
[BACKEND] Optimize script resolution ( #1400 )
...
Speeds up scripting in the backend.
2025-12-29 17:38:34 -08:00
Jesse Bannon
0f96d8e24e
[BACKEND] Disallow override names conflicting with plugin names ( #1399 )
...
Disallow override variable names conflicting with plugin names.
May cause backward incompatible issues from `date_range` being an old override variable name for the `Only Recent` preset. Update this variable name to `only_recent_date_range` to resolve. More info in https://ytdl-sub.readthedocs.io/en/latest/deprecation_notices.html
2025-12-26 15:30:37 -08:00
dependabot[bot]
157a0b59c4
Bump yt-dlp[default] from 2025.11.12 to 2025.12.8 ( #1396 )
...
Bumps [yt-dlp[default]](https://github.com/yt-dlp/yt-dlp ) from 2025.11.12 to 2025.12.8.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases )
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md )
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2025.11.12...2025.12.08 )
---
updated-dependencies:
- dependency-name: yt-dlp[default]
dependency-version: 2025.12.8
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-12-08 15:41:54 -08:00
Jesse Bannon
a5ae69550e
[BACKEND] Validate write permissions on working directory and output directory ( #1395 )
...
Closes https://github.com/jmbannon/ytdl-sub/issues/1394
Should help debug user issues like https://github.com/jmbannon/ytdl-sub/issues/1148
Checks permissions on the following:
- working directory
- output directory
- cookiefile (if specified)
And will fail immediately with a verbose message.
2025-12-06 15:54:41 -08:00
Jesse Bannon
8d5d2be6a7
[FEATURE] TV Show Collection multi-url, s00 support ( #1391 )
...
Closes https://github.com/jmbannon/ytdl-sub/issues/1251 , https://github.com/jmbannon/ytdl-sub/issues/1290
Required for https://github.com/jmbannon/ytdl-sub/issues/1383
Adds both s00 support and multi-url support per season, up to 11 URLs currently. This can and should be extended, but with a more principled approach instead of the current method: AI generating boiler-plate YAML 🙂
```
Plex TV Show Collection:
= Music:
"~Beyond the Guitar":
s00_name: "Specials"
s00_url:
- "https://www.youtube.com/watch?v=vXzguOdulAI "
- "https://www.youtube.com/watch?v=IGwYDvaGAz0 "
s01_name: "Videos"
s01_url:
- "https://www.youtube.com/c/BeyondTheGuitar "
- "https://www.youtube.com/@BeyondTheGuitarAcademy "
s02_name: "Covers"
s02_url: "https://www.youtube.com/playlist?list=PLE62gWlWZk5NWVAVuf0Lm9jdv_-_KXs0W "
```
2025-11-28 10:14:18 -08:00
Jesse Bannon
19f47cd914
[BACKEND] Optimize script interpreter ( #1390 )
...
Makes scripting runtime much faster.
2025-11-27 18:43:27 -08:00
Jesse Bannon
24e71ce733
[DOCKER] Make defaults script executable ( #1388 )
...
Fixes https://github.com/jmbannon/ytdl-sub/issues/1387 and some potential docker issues by not having this file ran on start.
2025-11-26 20:22:22 -08:00
Colin Davis
63753c5649
[RFC] Add preserve_mtime config ( #1382 )
...
Closes https://github.com/jmbannon/ytdl-sub/issues/386
Adds the ability to preserve mtime via Output Options. Usage:
```
output_options:
preserve_mtime: True
```
Thanks @e1ven for the contribution!
2025-11-17 22:42:13 -08:00
dependabot[bot]
08180c0412
Bump yt-dlp[default] from 2025.10.22 to 2025.11.12 ( #1381 )
...
Bumps [yt-dlp[default]](https://github.com/yt-dlp/yt-dlp ) from 2025.10.22 to 2025.11.12.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases )
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md )
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2025.10.22...2025.11.12 )
---
updated-dependencies:
- dependency-name: yt-dlp[default]
dependency-version: 2025.11.12
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-11-12 16:37:17 -08:00
Maxim Borisov
a74c79d014
[DOCKER] Ensure correct cron log file permissions ( #1378 )
...
Co-authored-by: bedlamzd <vcs@bedlamzd.dev>
2025-11-09 09:51:57 -08:00
Colin Davis
2c33c3b49b
[DOCKER] Add curl-cffi and yt-dlp-ejs dependencies
...
Adds recommended deps from yt-dlp README
2025-11-07 17:01:48 -08:00
Snuffy2
e507e6ed46
[DOCKER] Disable pip break-system-packages ( #1373 )
...
Fixes `UPDATE_YT_DLP_ON_START` when set to 'nightly' as the pip command is missing --break-system-packages. Simplifies dockerfiles by setting this globally via pip config file.
Thanks @Snuffy2 for the contribution!
2025-11-06 21:08:10 -08:00
Jesse Bannon
ed55f3a3f7
[FEATURE] cli-to-sub argument to convert yt-dlp args to ytdl-sub ( #1376 )
...
Example usage:
```
$ ytdl-sub cli-to-sub -S vcodec:h264,res:480,acodec:m4a
ytdl_options:
format_sort:
- vcodec:h264
- res:480
- acodec:m4a
```
2025-11-06 21:05:18 -08:00
dependabot[bot]
c3ca3c6379
[DEV] Bump isort from 6.1.0 to 7.0.0 ( #1359 )
...
Bumps [isort](https://github.com/PyCQA/isort ) from 6.1.0 to 7.0.0.
- [Release notes](https://github.com/PyCQA/isort/releases )
- [Changelog](https://github.com/PyCQA/isort/blob/main/CHANGELOG.md )
- [Commits](https://github.com/PyCQA/isort/compare/6.1.0...7.0.0 )
---
updated-dependencies:
- dependency-name: isort
dependency-version: 7.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-27 08:45:00 -07:00
dependabot[bot]
d3e978e517
[DEV] Bump pylint from 3.3.8 to 4.0.1 ( #1361 )
...
* Bump pylint from 3.3.8 to 4.0.1
Bumps [pylint](https://github.com/pylint-dev/pylint ) from 3.3.8 to 4.0.1.
- [Release notes](https://github.com/pylint-dev/pylint/releases )
- [Commits](https://github.com/pylint-dev/pylint/compare/v3.3.8...v4.0.1 )
---
updated-dependencies:
- dependency-name: pylint
dependency-version: 4.0.1
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* update fixes
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jesse Bannon <jbann1994@gmail.com>
2025-10-26 23:57:35 -07:00
dependabot[bot]
a5dd438398
Bump yt-dlp[default] from 2025.10.14 to 2025.10.22 ( #1366 )
...
Bumps [yt-dlp[default]](https://github.com/yt-dlp/yt-dlp ) from 2025.10.14 to 2025.10.22.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases )
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md )
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2025.10.14...2025.10.22 )
---
updated-dependencies:
- dependency-name: yt-dlp[default]
dependency-version: 2025.10.22
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-23 01:28:34 -07:00
Jesse Bannon
7364aac00c
[BUGFIX] Embedded null byte ffmpeg fix ( #1363 )
...
Closes https://github.com/jmbannon/ytdl-sub/issues/710
Fixes the notorious embedded null byte error seen during FFMPEG metadata writes when handling special characters.
2025-10-16 08:01:37 -07:00
dependabot[bot]
1b2e34bad4
Bump yt-dlp[default] from 2025.9.26 to 2025.10.14 ( #1362 )
...
Bumps [yt-dlp[default]](https://github.com/yt-dlp/yt-dlp ) from 2025.9.26 to 2025.10.14.
- [Release notes](https://github.com/yt-dlp/yt-dlp/releases )
- [Changelog](https://github.com/yt-dlp/yt-dlp/blob/master/Changelog.md )
- [Commits](https://github.com/yt-dlp/yt-dlp/compare/2025.09.26...2025.10.14 )
---
updated-dependencies:
- dependency-name: yt-dlp[default]
dependency-version: 2025.10.14
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-10-15 13:39:24 -07:00