# Specifies the temporary, or work directory. Intermediate files will be put here # and moved/deleted later when no longer needed. TempDir = "/tmp/" ##################################################################################### # 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. # ##################################################################################### [Group.LinuxYouTubers] 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. OutputDir = "videos/Linux/%Channel%/%Playlist%/" FileName = "%Timestamp% - %Title%.mkv" # 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. CFormat = "matroska" VideoFormat = "bestvideo[height<=720]" # Standard youtube-dl format filter AudioFormat = "bestaudio" # Same here NumVideos = 5 SizeLimit = 200000000 # In bytes ###################################################################################### # YTVA also supports other platforms like Odysee. Most of these platforms only serve # # a single file though, so only "VideoFormat" needs to be specified. # ###################################################################################### [Group.Odysee] URL = [ "https://odysee.com/@DistroTube:2", "https://odysee.com/@AlphaNerd:8" ] OutputDir = "videos/Odysee/%Channel%/" FileName = "%Timestamp% - %Title%.mp4" CFormat = "mp4" VideoFormat = "best[height<=720]" NumVideos = 5 SizeLimit = 200000000 [Group.YouTubeMusic] URL = [ "https://www.youtube.com/@NoCopyrightSounds", "https://www.youtube.com/@incompetech_kmac" ] OutputDir = "videos/Music/%Channel%/" FileName = "%Title%.webm" CFormat = "webm" AudioFormat = "bestaudio" NumVideos = 5 SizeLimit = 10000000 # 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 Filters = [ {Name = "No Shorts", Input = "%Playlist%", Pattern = ".*- Shorts$", AllowDeny = false} ] [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