ytdl-sub/src/ytdl_sub
Jesse Bannon c255f40348
[FEATURE] Subscription nesting (#747)
Closes Feature Request: https://github.com/jmbannon/ytdl-sub/issues/743

Subscriptions support using presets as keys, and using keys to set override variables as values.
For example:

```
tv_show:
  only_recent:
    [News]:
      "Breaking News": "https://www.youtube.com/@SomeBreakingNews"

  [Tech]:
    "Two Minute Papers": "https://www.youtube.com/@TwoMinutePapers"
```
Will create two subscriptions named "Breaking News" and "Two Minute Papers", equivalent to:

```
"Breaking News":
  preset:
    - "tv_show"
    - "only_recent"

  overrides:
    subscription_indent_1: "News"
    subscription_name: "Breaking News"
    subscription_value: "https://www.youtube.com/@SomeBreakingNews"

"Two Minute Papers":
  preset:
    - "tv_show"

  overrides:
    subscription_indent_1: "Tech"
    subscription_name: "Two Minute Papers"     subscription_value: "https://www.youtube.com/@TwoMinutePapers"
```

You can provide as many parent presets in the form of keys, and subscription indents as ``[keys]``.
This can drastically simplify subscription definitions by setting things you want configurable like so in your
parent preset:

```
presets:
  tv_show_name:
    overrides:
      tv_show_name: "{subscription_name}"
      url: "{subscription_value}"
      genre: "{subscription_indent_1}"
```

NOTE!!!
Changing your subscription name from 'legacy' subscriptions will need their download archive file migrated to a new name. A future update will assist in this migration process. Either wait until then or, if you consider yourself a ytdl-sub expert, keep a backup of your subscription file before migrating.
2023-10-02 16:07:48 -07:00
..
cli [FEATURE] More verbose error logs when using ytdl-sub commands (#717) 2023-09-15 12:35:34 -07:00
config [FEATURE] Ability to add subscription value via config (#744) 2023-09-27 21:37:36 -07:00
downloaders [BACKEND] Always filter out live, post_live, and upcoming videos on download (#742) 2023-09-24 06:24:21 -07:00
entries [BACKEND] Perform match-filters at metadata stage, use match-filters for date_range plugin (#725) 2023-09-19 11:19:15 -07:00
plugins [BACKEND] Always filter out live, post_live, and upcoming videos on download (#742) 2023-09-24 06:24:21 -07:00
prebuilt_presets [REVERT] Remove default match-filter that filters live videos (#739) 2023-09-22 08:33:49 -07:00
subscriptions [FEATURE] Subscription nesting (#747) 2023-10-02 16:07:48 -07:00
thread [BACKEND] Add generic.collection download strategy, use it for soundcloud, youtube channel/playlist (#230) 2022-09-14 15:36:14 -07:00
utils [BACKEND] More explicit error message for PermissionError (#736) 2023-09-21 23:06:57 -07:00
validators [FEATURE] Subscription nesting (#747) 2023-10-02 16:07:48 -07:00
ytdl_additions [FEATURE] Ability to change download archive name (#643) 2023-06-30 11:51:52 -07:00
__init__.py [BUGFIX] File name too long with -thumb.jpg, upgrade docker alpine image (#560) 2023-03-24 11:15:54 -07:00
main.py [FEATURE] Persisted subscription logs (#512) 2023-03-08 00:17:11 -08:00