Automatically download webseries to Sonarr using yt-dlp
1.5K
Forked from Sonarr_youtubedl by @whatdaybob
whatdaybob/sonarr_youtubedl is a Sonarr companion script to allow the automatic downloading of web series normally not available for Sonarr to search for. Using YT-DLP (a youtube-dl fork with added features) it allows you to download your webseries from the list of supported sites.
This is my fork of that project.
Firstly you need a series that is available online in the supported sites that YouTube-DL can grab from.
Secondly you need to add this to Sonarr and monitor the episodes that you want.
Thirdly edit your config.yml accordingly so that this knows where your Sonarr is, which series you are after and where to grab it from.
Lastly be aware that this requires the TVDB to match exactly what the episodes titles are in the scan, generally this is ok but as it's an openly editable site sometime there can be differences. You can use regexes to bridge the gap between Sonarr and YouTube.
The architectures supported by this image are:
| Architecture | Tag |
|---|---|
| x86-64 | latest |
| x86-64 | dev |
| Tag | Description |
|---|---|
| latest | Current release code |
| dev | Pre-release code for testing issues |
Obviously it's a docker image, so you need docker. If you don't know what that is you need to look into that first.
docker create \
--name=sonarr_yt-dlp \
-e PUID=1000 \
-e PGID=1000 \
-v /path/to/data:/config \
-v /path/to/sonarrmedia:/sonarr_root \
-v /path/to/logs:/logs \
--restart unless-stopped \
willjbrown/sonarr_yt-dlp:latest
---
version: '3.4'
services:
sonarr_youtubedl:
image: willjbrown/sonarr_yt-dlp:latest
container_name: sonarr_yt-dlp
environment:
- PUID=1000
- PGID=1000
volumes:
- /path/to/data:/config
- /path/to/sonarrmedia:/sonarr_root
- /path/to/logs:/logs
| Parameter | Function |
|---|---|
-v /config | sonarr_youtubedl configs |
-v /sonarr_root | Root library location from Sonarr container |
-v /logs | log location |
Clarification on sonarr_root
A couple of people are not sure what is meant by the sonarr root. As this downloads directly to where you media is stored I mean the root folder where sonarr will place the files. So in sonarr you have your files moving to /mnt/sda1/media/tv/Smarter Every Day/ as an example, in sonarr you will see that it saves this series to /tv/Smarter Every Day/ meaning the sonarr root is /mnt/sda1/media/ as this is the root folder sonarr is working from.
On first run the docker will create a template file in the config folder. Example config.yml.template
Copy the config.yml.template to a new file called config.yml and edit accordingly.
Some series can be released on one platform and then released a week later as an example. Patreon is an example of this, so the release date will be before the youtube release. You can add an offset to push this a week later.
- title: A patreon series that releases a week later on youtube
url: https://www.youtube.com/playlist?list=ABC123DEF456GHI789J0
offset:
weeks: 1
days: 2
hours: 12
minutes: 0
To help narrow down results and get what you want, sonarr_youtubedl will automatically add a date range to the search parameters. This is one day either side of the airdate in Sonarr. This can cause issues if you are downloading some videos that have been reuploaded or modified. To stop the search doing this you will need to add ignore_daterange: True to the series you want to ignore this feature. An example is below.
- title: Ready Set Show
url: https://www.youtube.com/playlist?list=PLTur7oukosPEwFTPJ1WeDvitauWzRiIhp
playlistreverse: False
ignore_daterange: True
subtitles:
languages: ['en']
autogenerated: True
When the episode titles in Sonarr and YouTube differ, you can specify regexes that will rewrite the Sonarr episode title to match those found on YouTube. The configuration per series is as follows:
series:
- title: Example
url: https://www.youtube.com/playlist?list=example
regex:
sonarr:
- match: 'France'
replace: '(ep#1)'
- match: 'America'
replace: '(ep#2)'
- match: 'Mexico/India'
replace: '(ep#3)'
Each regex will be executed in sequence. The Sonarr episode title is the input for the first regex, and the output of each regex is used as the input for the next in the list.
Enabling debugging can help with understanding how the regex is changing the titles. An example debug log shows this below.
2022-04-13 22:47:23,576 - sonarr_youtubedl - DEBUG - Updating episode title "Who Smuggled a Comedians DOG? - #27" with regex ".-.#[0-9]*$" and replacement ""
2022-04-13 22:47:23,583 - sonarr_youtubedl - DEBUG - New title "Who Smuggled a Comedians DOG?"
Using a site like Regex101 can help build regular expressions and help understand how they work if your not too familiar with them.
Consider donating a beverage to the original author with the below.
Content type
Image
Digest
sha256:b7b688b02…
Size
452.3 MB
Last updated
over 3 years ago
docker pull willjbrown/sonarr_yt-dlp