I was planning on using either the one by kannagi0303 from github or stacher.
update: I have setup the one from github, seems to do the job. Still can't figure out downloading subtitles using gui and using the yt-dlp terminal version for that. Link for what I am using: https://github.com/kannagi0303/yt-dlp-gui
Automatic subtitles are also possible to grab by using --write-auto-sub, example: yt-dlp --write-auto-sub [video url]
This next example will attempt to download English subtitles and if that fails, downloads the automatic subtitles instead: yt-dlp --sub-lang en --write-sub --write-auto-sub [video url]
Note - you can not download automatic subtitles at the same time as language subtitles, which means if you wanted English and automatic I'd recommend the --skip-download flag for the second command, which will prevent downloading the entire video again: yt-dlp --sub-lang en --write-sub [video url] yt-dlp --write-auto-sub --skip-download [video url]
I just have mine set up as an alias in zsh (I assume this would work in bash too):
alias yt='yt-dlp -f "bestvideo[ext=mp4]+bestaudio[ext=m4a]/mp4"'
Then just yt [url of video] from the command line should automatically grab the best quality video as an .mp4. And of course that can be tweaked to whatever you like (adding subs etc.)
alias ytdl='yt-dlp -f mp4 "bestvideo*+bestaudio" --sponsorblock-remove all --write-auto-sub'
On Android I just use Libretube. Has Sponsorblock and you can can grab a csv of all your subs you had from your previous client.
Lastly, I use newsboat and YouTube RSS feeds to subscribe these days. Redirection extension takes me to an invidious instance. Noscript blocks everything. Just need the url for yt-dlp.
The CLI is simple enough that I don't really bug with any GUI abstractions. I used tubesync for a while on unRAID with pretty decent success, but I eventually ran into some limitations and ended switching to a cron job.
Idk I just wrote two or three Powershell scripts that I added to path so I can choose to download video (merged), audio, or both (unmerged) with a selection dialog to choose formats.
I similarly made two functions depending on the use case (see comments in code) and saved them in Powershell's default profile (Microsoft.PowerShell_profile.ps1) so I can invoke them with just one word directly in commandline, works great 👌
function Vid {
param (
[Parameter(Mandatory=$true)]
[string]$link
)
yt-dlp -P "$env:USERPROFILE\Downloads" $link -S "res:1080,br" --embed-subs --sub-langs all,-live_chat --remux mp4
} #Downloads videos using yt-dlp limited to 1080p; usage Vid YT_URL
function VidFull {
param (
[Parameter(Mandatory=$true)]
[string]$link
)
yt-dlp -P "$env:USERPROFILE\Downloads" $link --embed-subs --sub-langs all,-live_chat --remux mp4
} #Downloads videos using yt-dlp in maximum quality; usage VidFull YT_URL
None, I wrote a terminal UI (just to clean things up and customized to suit my need) that was originally for youtube-dl and switched to yt-dlp
Basically I have a Keyboard Maestro that reads my clipboard and automatically inserts any youtube links into a text file, so that I can run my script which downloads all the links and rename them accordingly.