Pinchflat: YouTube media manager issue

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.

1 Like

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 and ffprobe are highly recommended

Strongly recommended

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.

1 Like

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 :grimacing:

1 Like