docs(quick): Add a rote quick start guide

This is what I came up with when I tried to write instructions requiring as little
understanding as possible. Doing so really did reinforce my impression that this just
shouldn't be done, that significant understanding is required for *any* use of ytdl-sub
and even offering a quick start may be irresponsible. I'm still on the fence, thoughts?

That said, I also think I got some good explanations out of this and a better
understanding of what the next bits of the Getting Started should be. This Quick Start
is currently redundant with other parts of the Getting Started pages. I suspect that
I'll end up repeating and/or reorganizing parts of this Quick Start into the next bits
of the Getting Started. To that end I might argue that this change is a WIP and that
merging should wait. But I could also argue that this is an incremental improvement and
can be merged before that other work. Your call.
This commit is contained in:
Ross Patterson 2025-08-17 00:28:52 -07:00
parent 899143db98
commit dd87526987
No known key found for this signature in database
GPG key ID: 2EFF7CCE6828E359
3 changed files with 107 additions and 37 deletions

View file

@ -15,12 +15,12 @@ __preset__:
music_video_directory: "/music_videos" music_video_directory: "/music_videos"
# For 'Only Recent' preset, only keep vids within this range and limit # For 'Only Recent' preset, only keep vids within this range and limit
only_recent_date_range: "2months" # only_recent_date_range: "2months"
only_recent_max_files: 30 # only_recent_max_files: 30
# Pass any arg directly to yt-dlp's Python API # Pass any arg directly to yt-dlp's Python API
ytdl_options: # ytdl_options:
cookiefile: "/config/cookie.txt" # cookiefile: "/config/cookie.txt"
################################################################### ###################################################################
# Subscriptions nested under this will use the # Subscriptions nested under this will use the
@ -35,52 +35,54 @@ Plex TV Show by Date:
# Sets genre tag to "Documentaries" # Sets genre tag to "Documentaries"
= Documentaries: = Documentaries:
"NOVA PBS": "https://www.youtube.com/@novapbs" "NOVA PBS": "https://www.youtube.com/@novapbs"
"National Geographic": "https://www.youtube.com/@NatGeo" # "National Geographic": "https://www.youtube.com/@NatGeo"
"Cosmos - What If": "https://www.youtube.com/playlist?list=PLZdXRHYAVxTJno6oFF9nLGuwXNGYHmE8U" # "Cosmos - What If": "https://www.youtube.com/playlist?list=PLZdXRHYAVxTJno6oFF9nLGuwXNGYHmE8U"
# Sets genre tag to "Kids", "TV-Y" for content rating # Sets genre tag to "Kids", "TV-Y" for content rating
= Kids | = TV-Y: # = Kids | = TV-Y:
"Jake Trains": "https://www.youtube.com/@JakeTrains" # "Jake Trains": "https://www.youtube.com/@JakeTrains"
"Kids Toys Play": "https://www.youtube.com/@KidsToysPlayChannel" # "Kids Toys Play": "https://www.youtube.com/@KidsToysPlayChannel"
= Music: # = Music:
# TV show subscriptions can support multiple urls and store in the same TV Show # # TV show subscriptions can support multiple urls and store in the same TV Show
"Rick Beato": # "Rick Beato":
- "https://www.youtube.com/@RickBeato" # - "https://www.youtube.com/@RickBeato"
- "https://www.youtube.com/@rickbeato240" # - "https://www.youtube.com/@rickbeato240"
# Set genre tag to "News", use `Only Recent` preset to only store videos uploaded recently # Set genre tag to "News", use `Only Recent` preset to only store videos uploaded recently
= News | Only Recent: # = News | Only Recent:
"BBC News": "https://www.youtube.com/@BBCNews" # "BBC News": "https://www.youtube.com/@BBCNews"
################################################################### ###################################################################
# Subscriptions nested under these will use the various prebuilt # Subscriptions nested under these will use the various prebuilt
# music presets # music presets
YouTube Releases:
= Jazz: # Sets genre tag to "Jazz"
"Thelonious Monk": "https://www.youtube.com/@theloniousmonk3870/releases"
YouTube Full Albums: # YouTube Releases:
= Lofi: # = Jazz: # Sets genre tag to "Jazz"
"Game Chops": "https://www.youtube.com/playlist?list=PLBsm_SagFMmdWnCnrNtLjA9kzfrRkto4i" # "Thelonious Monk": "https://www.youtube.com/@theloniousmonk3870/releases"
SoundCloud Discography: # YouTube Full Albums:
= Chill Hop: # = Lofi:
"UKNOWY": "https://soundcloud.com/uknowymunich" # "Game Chops": "https://www.youtube.com/playlist?list=PLBsm_SagFMmdWnCnrNtLjA9kzfrRkto4i"
= Synthwave:
"Lazerdiscs Records": "https://soundcloud.com/lazerdiscsrecords"
"Earmake": "https://soundcloud.com/earmake"
Bandcamp: # SoundCloud Discography:
= Lofi: # = Chill Hop:
"Emily Hopkins": "https://emilyharpist.bandcamp.com/" # "UKNOWY": "https://soundcloud.com/uknowymunich"
# = Synthwave:
# "Lazerdiscs Records": "https://soundcloud.com/lazerdiscsrecords"
# "Earmake": "https://soundcloud.com/earmake"
# Bandcamp:
# = Lofi:
# "Emily Hopkins": "https://emilyharpist.bandcamp.com/"
################################################################### ###################################################################
# Can choose between: # Can choose between:
# - Plex Music Videos: # - Plex Music Videos:
# - Jellyfin Music Videos: # - Jellyfin Music Videos:
# - Kodi Music Videos: # - Kodi Music Videos:
"Plex Music Videos":
= Pop: # Sets genre tag to "Pop" # "Plex Music Videos":
"Rick Astley": "https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc" # = Pop: # Sets genre tag to "Pop"
"Michael Jackson": "https://www.youtube.com/playlist?list=OLAK5uy_mnY03zP6abNWH929q2XhGzWD_2uKJ_n8E" # "Rick Astley": "https://www.youtube.com/playlist?list=PLlaN88a7y2_plecYoJxvRFTLHVbIVAOoc"
# "Michael Jackson": "https://www.youtube.com/playlist?list=OLAK5uy_mnY03zP6abNWH929q2XhGzWD_2uKJ_n8E"

View file

@ -1,4 +1,72 @@
Quick Start Quick Start
=========== ===========
TODO :ref:`Again <guides/getting_started/index:prerequisite knowledge>`, if the following
serves all your needs, then you're probably better off with :ref:`one of the more
user-friendly yt-dlp wrappers available <introduction:motivation>`. If you still want to
get ``ytdl-sub`` up and running quickly and without understanding, then follow these
instructions to the letter.
#. Install using :ref:`the official Docker GUI image variant <guides/install/docker:gui
image>`.
#. Update the paths for your media library:
Edit :ref:`the subscriptions file <guides/install/docker:configuration>`. Near the
top, under ``__preset__:`` and then ``overrides:``, update the values under the
``*_directory:`` keys with the correct paths for your media library *as they appear
inside the container*.
#. Select your media library software:
Change the ``Plex TV Show by Date:`` *key itself* to the preset for your media
library software. See the comment above for the available options.
#. Select the genre:
Under the library software preset key from the previous step, change the ``=
Documentaries`` *key itself* to the genre for this subscription prefixed with ``=
...``. When adding other subscriptions that have the same genre, place them under the
same key.
#. Update the subscription name and URL:
Under the genre key from the previous step, update the ``"NOVA PBS":`` key to the
directory name the downloaded files should be placed beneath. This directory will be
created under the ``tv_show_directory:`` from step #2. Then update the
``"https://www.youtube.com/@novapbs"`` value to the URL of the channel or playlist
for this subscription.
#. Preview what ``ytdl-sub`` would do for this subscription:
Run the :ref:`'sub' sub-command <usage:sub options>` but with the ``max_downloads``
setting from ``yt-dlp`` along with the ``--dry-run`` and ``--match`` options from
``ytdl-sub`` to minimize requests and prevent actual downloads. Be sure to update the
``--match="..."`` value with the subscription name::
$ ytdl-sub --dry-run sub -o '--ytdl_options.max_downloads 3' --match="NOVA PBS"
Examine the output carefully.
#. Review the results of real downloads:
Run it again without the ``--dry-run`` option to actually download media and place
the files in your library::
$ ytdl-sub sub -o '--ytdl_options.max_downloads 3' --match="NOVA PBS"
Examine the output carefully, then examine how the downloads work in your
library. Repeat with a larger value for ``max_downloads`` and examine the output and
downloads again.
#. Add the rest of your subscriptions:
Repeat steps #4-7 for each of your subscriptions. Be sure to repeat the preview and
review steps for each subscription. In general, move slowly and carefully review
everything. It's best to catch issues early to avoid repeating downloads and to
minimize requests to avoid being throttled or banned by servers.
#. Automate downloads:
:ref:`Set up ytdl-sub to run periodically
<guides/getting_started/automating_downloads:docker and unraid>`.

View file

@ -545,4 +545,4 @@ def test_default_docker_config_and_subscriptions():
default_subs = Subscription.from_file_path( default_subs = Subscription.from_file_path(
config=default_config, subscription_path=Path("docker/root/defaults/subscriptions.yaml") config=default_config, subscription_path=Path("docker/root/defaults/subscriptions.yaml")
) )
assert len(default_subs) == 15 assert len(default_subs) == 1