Looks nice and seems to work, except when I tell it to download 720p from a channel it downloads 360p.
Is there a way to force it to download 720p?
I set the profile for the source to prefer 720p
preferred_resolution: 720p
I was having trouble with resolution too. I had it set for 4k, but wasn't getting anything over 1080p. I changed it to 8k and now I am getting 4k downloads. I also updated to the latest image at the same time, so I wasn't sure which of those changes were the reason.
It might be worth trying 1080p for the preferred resolution.
Appears that youtube is using separate video and audio streams for 720p and higher res videos.
I tried a couple browser extensions and when going to the youtube channel they show both 360p and 720p as available video resolutions, but both display an error when trying to download 720p.
using https://github.com/aclap-dev/video-downloadhelper
displays "Companion application required"
using Easy Youtube Video Downloader Express
displays "Youtube switched to separate audio/video streaming technology for higher quality formats and no longer provides direct 720p (Since 24 September 2018)/1080p/mp3 streams. Converting these streams to downloadable formats for you needs powerful server infrastructure, therefore 1080p/mp3 downloading has been limited to PRO users. Read more at - https://videodroid.org/pro_upgrade.html. FREE users can download all formats in CACHE where some PRO users fetched the video/audio in past 24 hours, to test the feature you can try downloading popular videos."
Not sure if these warnings and errors in the container log have anything to do with my problem, but it's complaining about ffmpeg missing. Would think if it's needed it would be included in the docker image I pulled.
WARNING: ffmpeg not found. The downloaded format may not be the best available. Installing ffmpeg is strongly recommended: https://github.com/yt-dlp/yt-dlp#dependencies
ERROR: Preprocessing: ffmpeg not found. Please install or provide the path using --ffmpeg-location
From https://github.com/yt-dlp/yt-dlp#dependencies
ffmpeg and ffprobe - Required for merging separate video and audio files
Python versions 3.8+ (CPython and PyPy) are supported. Other versions and implementations may or may not work correctly.
While all the other dependencies are optional,
ffmpeg
andffprobe
are highly recommendedStrongly recommended
- ffmpeg and ffprobe - Required for merging separate video and audio files, as well as for various post-processing tasks. License depends on the buildThere are bugs in ffmpeg that cause various issues when used alongside yt-dlp. Since ffmpeg is such an important dependency, we provide custom builds with patches for some of these issues at yt-dlp/FFmpeg-Builds. See the readme for details on the specific issues solved by these buildsImportant: What you need is ffmpeg binary, NOT the Python package of the same name
Diagnostics info
- App Version: 2024.8.6
- yt-dlp Version: 2024.08.06
- Apprise Version: v1.8.1
- System Architecture: x86_64-pc-linux-gnu
- Timezone: America/Los_Angeles
Looks like a version of ffmpeg is in the container, but is corrupt?
root@b29f46f5a3e9:/app# find / -name 'ffmpeg*'
/usr/bin/ffmpeg
root@b29f46f5a3e9:/app# which ffmpeg
/usr/bin/ffmpeg
root@b29f46f5a3e9:/app# ls -l /usr/bin/ffmpeg
-rwxr-xr-x 1 1001 127 130926376 Aug 7 07:15 /usr/bin/ffmpeg
root@b29f46f5a3e9:/app# /usr/bin/ffmpeg
Illegal instruction (core dumped)
I use IDM (Internet Download Manager) or 4K VideoDownloader to rip YT videos. They do 4K no issue. Been using them for many years. They are legit and no worries of malware.
But, Google often changes things, and it causes issues with downloaders. Most common is a 403 Forbidden error trying to download. And the downloaders needs to be updated to work again.
Thanks, but was looking for a containerized downloader I can run on docker. I don't keep my Windows laptop on 24x7 and wanted to do this from my NAS.
Fixed by downloading static binaries from here John Van Sickle - FFmpeg Static Builds and overwriting the ffmpeg and ffprobe executable files in the container /usr/bin directory. Then removed the source channel from Pinchflat and readded it.
If anyone has a git account (I don't) and can reproduce it, please let the developer know.
root@b29f46f5a3e9:/app# cd /usr/bin
root@b29f46f5a3e9:/usr/bin# ls -l ./ff*
-rwxr-xr-x 1 root users 79928672 Jun 29 13:38 ./ffmpeg
-rwxr-xr-x 1 root users 79764096 Jun 29 13:38 ./ffprobe
root@b29f46f5a3e9:/usr/bin# ./ffmpeg
ffmpeg version N-71064-gd5e603ddc0-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2024 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 59. 27.100 / 59. 27.100
libavcodec 61. 9.100 / 61. 9.100
libavformat 61. 4.100 / 61. 4.100
libavdevice 61. 2.100 / 61. 2.100
libavfilter 10. 2.102 / 10. 2.102
libswscale 8. 2.100 / 8. 2.100
libswresample 5. 2.100 / 5. 2.100
libpostproc 58. 2.100 / 58. 2.100
Universal media converter
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
root@b29f46f5a3e9:/usr/bin# ./ffprobe
ffprobe version N-71064-gd5e603ddc0-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2024 the FFmpeg developers
built with gcc 8 (Debian 8.3.0-6)
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 59. 27.100 / 59. 27.100
libavcodec 61. 9.100 / 61. 9.100
libavformat 61. 4.100 / 61. 4.100
libavdevice 61. 2.100 / 61. 2.100
libavfilter 10. 2.102 / 10. 2.102
libswscale 8. 2.100 / 8. 2.100
libswresample 5. 2.100 / 5. 2.100
libpostproc 58. 2.100 / 58. 2.100
Simple multimedia streams analyzer
usage: ffprobe [OPTIONS] INPUT_FILE
You have to specify one input file.
Use -h to get full help or, even better, run 'man ffprobe'.
The docker image is built by pulling in the latest ffmpeg builds.
That links to Release Latest Auto-Build (2024-08-09 14:09) · yt-dlp/FFmpeg-Builds · GitHub
Thanks.
That's the issue then. I downloaded and extracted those binaries and put them in the container /home directory
root@b29f46f5a3e9:/app# cd /home
root@b29f46f5a3e9:/home# ls -l ./ff*
-rwx------ 1 1026 users 130926376 Aug 9 07:06 ./ffmpeg
-rwx------ 1 1026 users 130765864 Aug 9 07:06 ./ffprobe
root@b29f46f5a3e9:/home# chmod 755 /home/ffmpeg
root@b29f46f5a3e9:/home# chmod 755 /home/ffprobe
root@b29f46f5a3e9:/home# ls -l ./ff*
-rwxr-xr-x 1 1026 users 130926376 Aug 9 07:06 ./ffmpeg
-rwxr-xr-x 1 1026 users 130765864 Aug 9 07:06 ./ffprobe
root@b29f46f5a3e9:/home# chown root ffmpeg
root@b29f46f5a3e9:/home# chown root ffprobe
root@b29f46f5a3e9:/home# ls -l ./ff*
-rwxr-xr-x 1 root users 130926376 Aug 9 07:06 ./ffmpeg
-rwxr-xr-x 1 root users 130765864 Aug 9 07:06 ./ffprobe
root@b29f46f5a3e9:/home# ./ffmpeg
Illegal instruction (core dumped)
root@b29f46f5a3e9:/home# ./ffprobe
Illegal instruction (core dumped)
I would assume anyone running the same container on 64bit linux would see the same issue.
root@b29f46f5a3e9:/app# uname -a
Linux b29f46f5a3e9 3.10.108 #42962 SMP Fri Mar 24 00:28:47 CST 2023 x86_64 GNU/Linux
root@b29f46f5a3e9:/app# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Never mind. Appears the host OS I was using to install the docker container on is too old to support the newer ffmpeg builds. A 11 year old NAS (Synology DS1513+) that works with other containers I'm using, but not this one.
root@b29f46f5a3e9:/app# uname -a
Linux b29f46f5a3e9 3.10.108 #42962 SMP Fri Mar 24 00:28:47 CST 2023 x86_64 GNU/Linux
Installed it on my newer Synology (DS1019+) and it works fine.
root@732e190e199e:/app# uname -a
Linux 732e190e199e 4.4.302+ #69057 SMP Fri Jan 12 17:02:59 CST 2024 x86_64 GNU/Linux
I learned something new today