Commit graph

897 commits

Author SHA1 Message Date
Jesse Bannon
51bec34b31 fix test to only test download 2026-01-23 10:25:23 -08:00
Jesse Bannon
97da1a651a fix variables not getting filled with resolved 2026-01-23 10:15:13 -08:00
Jesse Bannon
8c46304db2 total cleanup. TODO: other preset tests regarding resolution level and unit tests 2026-01-23 09:52:36 -08:00
Jesse Bannon
a30faa1e4a Merge branch 'master' into j/resolution-level 2026-01-23 09:25:36 -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
db41c8b11d finally good? 2026-01-23 00:18:43 -08:00
Jesse Bannon
219c0204dd do not resolve sanitizied using filter 2026-01-23 00:02:52 -08:00
Jesse Bannon
004b45b6f1 do not replace variables with unresolved counterparts 2026-01-22 23:29:24 -08:00
Jesse Bannon
356f278be9 do not double evaluate dependent single variaibles 2026-01-22 22:50:53 -08:00
Jesse Bannon
44705b622b do checks first 2026-01-22 21:45:42 -08:00
Jesse Bannon
53b112ff3e emtpy syntax tree case 2026-01-22 15:56:16 -08:00
Jesse Bannon
ed408a352f update internals after partial resolve 2026-01-22 15:33:41 -08:00
Jesse Bannon
6156a263f0 fix 2026-01-22 15:03:26 -08:00
Jesse Bannon
82dc29b0d5 do not over complicate 2026-01-19 12:26:03 -08:00
Jesse Bannon
71f43e37b7 all-in on partial resolution 2026-01-19 11:56:23 -08:00
Jesse Bannon
6ecd04619e test setup 2026-01-19 11:15:08 -08:00
Jesse Bannon
bca397cd7b closer; 2026-01-16 15:01:22 -08:00
Jesse Bannon
28487c67f8 Merge branch 'j/tmp1' into j/resolution-level 2026-01-16 14:27:37 -08:00
Jesse Bannon
21643a2d7b clean var val 2026-01-16 14:26:26 -08:00
Jesse Bannon
0632fe170c Merge branch 'master' into j/resolution-level 2026-01-16 13:53:18 -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
9c2fc05d41 a mess 2026-01-16 12:15:38 -08:00
Jesse Bannon
b76182eba1 ENTER configurable resolution level when validating. Needs work including setting unresolved variables 2026-01-15 21:04:26 -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