ytva/config-sample.toml

74 lines
3 KiB
TOML
Raw Permalink Normal View History

2025-01-03 21:03:32 -05:00
# Specifies the temporary, or work directory. Intermediate files will be put here
# and moved/deleted later when no longer needed.
2024-12-31 23:53:15 -05:00
TempDir = "/tmp/"
2025-01-03 21:03:32 -05:00
#####################################################################################
# This will download the 5 most recently uploaded videos, shorts and livestreams. #
# Since YouTube serves using separate video and audio streams, specifying both #
# VideoFormat and AudioFormat will invoke FFmpeg at the end of the download process #
# to merge the two together. In this example, they are merged into mkv. #
#####################################################################################
2024-12-31 23:53:15 -05:00
[Group.LinuxYouTubers]
2025-01-03 21:03:32 -05:00
URL = [
"https://www.youtube.com/@DistroTube",
"https://www.youtube.com/@MentalOutlaw"
]
# See https://pkg.go.dev/github.com/wader/goutubedl#Info for a list of possible placeholders.
# Not all of them will be valid for a particular platform though.
2025-01-03 20:30:32 -05:00
OutputDir = "videos/Linux/%Channel%/%Playlist%/"
2024-12-31 23:53:15 -05:00
FileName = "%Timestamp% - %Title%.mkv"
2025-01-03 21:03:32 -05:00
# FFmpeg container format
# See https://ffmpeg.org/ffmpeg-formats.html#Muxers for a full list
# "matroska" is a very safe option for videos as it can accept basically
# any combination of codecs. This is only needed if both VideoFormat and AudioFormat
# are specified, or if extracting audio.
2024-12-31 23:53:15 -05:00
CFormat = "matroska"
2025-01-03 21:03:32 -05:00
VideoFormat = "bestvideo[height<=720]" # Standard youtube-dl format filter
AudioFormat = "bestaudio" # Same here
2024-12-31 23:53:15 -05:00
NumVideos = 5
2025-01-03 21:03:32 -05:00
SizeLimit = 200000000 # In bytes
2024-12-31 23:53:15 -05:00
2025-01-03 21:03:32 -05:00
######################################################################################
# YTVA also supports other platforms like Odysee. Most of these platforms only serve #
# a single file though, so only "VideoFormat" needs to be specified. #
######################################################################################
2024-12-31 23:53:15 -05:00
[Group.Odysee]
URL = [ "https://odysee.com/@DistroTube:2", "https://odysee.com/@AlphaNerd:8" ]
2025-01-03 20:30:32 -05:00
OutputDir = "videos/Odysee/%Channel%/"
2024-12-31 23:53:15 -05:00
FileName = "%Timestamp% - %Title%.mp4"
CFormat = "mp4"
VideoFormat = "best[height<=720]"
NumVideos = 5
SizeLimit = 200000000
2025-01-03 20:30:32 -05:00
[Group.YouTubeMusic]
2024-12-31 23:53:15 -05:00
URL = [ "https://www.youtube.com/@NoCopyrightSounds", "https://www.youtube.com/@incompetech_kmac" ]
2025-01-03 20:30:32 -05:00
OutputDir = "videos/Music/%Channel%/"
2024-12-31 23:53:15 -05:00
FileName = "%Title%.webm"
CFormat = "webm"
AudioFormat = "bestaudio"
NumVideos = 5
SizeLimit = 10000000
2025-01-03 21:03:32 -05:00
# Filters use the same placeholder system as filenames and directories, combined with
# regular expression.
# Name: Filter name, mostly for debugging if unexpected filtering happens
# Input: String input. Placeholder values will be replaced with the relevant video information
# Pattern: Regex Pattern to match
# AllowDeny: true for allowlisting, false for denylisting
2024-12-31 23:53:15 -05:00
Filters = [
{Name = "No Shorts", Input = "%Playlist%", Pattern = ".*- Shorts$", AllowDeny = false}
]
2025-01-03 20:30:19 -05:00
[Group.OdyseeAudio]
URL = [ "https://odysee.com/@DistroTube:2", "https://odysee.com/@AlphaNerd:8" ]
OutputDir = "videos/Audio/%Channel%/"
FileName = "%Timestamp% - %Title%.m4a"
CFormat = "ipod"
ExtractFormat = "best"
NumVideos = 5
SizeLimit = 10000000