axcore / tartube

A GUI front-end for youtube-dl, partly based on youtube-dl-gui and written in Python 3 / Gtk 3
GNU Lesser General Public License v2.1
2.12k stars 112 forks source link

Says FFmpeg not installed (it is) and won't let me set path #531

Closed vertigo220 closed 12 months ago

vertigo220 commented 1 year ago

What operating system are you using?

Win10

What version of Tartube are you using?

2.4.260

Details

Whenever I try to download and convert, it downloads then errors saying nothing happened. For starters, this is a problem because that's not entirely true, and it makes it seem like the download failed, when in fact it downloaded the desired video but then couldn't convert it. This could cause users to redownload something again not realizing it's already on their computer (and I've done so). So that's one problem, and perhaps should be its own issue.

But the real problem is that it's saying FFmpeg isn't installed, when it's not only installed, but it's in %PATH% and so is readily accessible to any program without even having to look for it, and it won't let me set the path to it, with the only option apparently being to install it, which I shouldn't have to have multiple "installs" of it in different locations, especially given its size, nor should I have to download it to "install" it with Tartube, a particular problem since I'm on a somewhat slow mobile connection for internet.

Proposed solution

For starters, it should be able to find ffmpeg considering it's in the path variable. Basic batch scripts I've written that use it first check to see if it's available, and only if it's not do they then find it on their own by simply performing a search with "where." I see no reason why Tartube couldn't do these things. Second, it should allow manually setting the path. And third, the error message should be more descriptive, specifying that the file was downloaded but conversion couldn't be done, not that "nothing happened."

vertigo220 commented 1 year ago

To add to this, it's inconsistent as to when it complains about this. If I try to download a video with the format set to default, it will just download the audio file then error immediately, but if I select mp4 it downloads the video then errors (note I would have included the errors as they're slightly different, but for some reason there's no capability to copy them). And these errors only occur if I manually select a quality (1440p60 in this case), whereas leaving the quality at default (highest) works without error even when format is set at default, which causes it to error with the quality selected. And, while a separate issue, I'll just mention that I have to select the quality since it fails to grab the highest quality when set to do so, and instead only gets the 720 version.

yt-dlp is fully updated, btw.

vertigo220 commented 1 year ago

So after skimming the README, I found this line:

On MS Windows, the usual methods of FFmpeg installation will not work. You must download an MSYS2-compatible version of FFmpeg. This can be done in the setup window, or from Tartube's main menu: click Operations > Install FFmpeg....

which seems to suggest perhaps it's not an issue of Tartube not seeing my FFmpeg "install" but that it's not the correct type. Assuming that's true, I would suggest adding this info to the error in Tartube, to avoid confusion and prevent users from having to find it on their own in the very long instructions. I'd also like to know if the MSYS2 FFmpeg can be used like the standard one, avoiding the need to have two different "installs," and, if so, how I could install it manually and to a location of my choosing.

vertigo220 commented 1 year ago

And trying to install it with Tartube failed:

Starting update operation, installing FFmpeg
pacman -S mingw-w64-x86_64-ffmpeg --noconfirm
error: duplicated database entry 'bash'
error: duplicated database entry 'bash-completion'
error: duplicated database entry 'brotli'
error: duplicated database entry 'bsdtar'
error: duplicated database entry 'ca-certificates'
error: duplicated database entry 'coreutils'
error: duplicated database entry 'curl'
error: duplicated database entry 'dash'
error: duplicated database entry 'db'
error: duplicated database entry 'file'
error: duplicated database entry 'filesystem'
error: duplicated database entry 'gawk'
error: duplicated database entry 'gcc-libs'
error: duplicated database entry 'getent'
error: duplicated database entry 'gnupg'
error: duplicated database entry 'grep'
error: duplicated database entry 'heimdal-libs'
error: duplicated database entry 'info'
error: duplicated database entry 'less'
error: duplicated database entry 'libargp'
error: duplicated database entry 'libcrypt'
error: duplicated database entry 'libcurl'
error: duplicated database entry 'libdb'
error: duplicated database entry 'libedit'
error: duplicated database entry 'libexpat'
error: duplicated database entry 'libffi'
error: duplicated database entry 'libgnutls'
error: duplicated database entry 'libgpg-error'
error: duplicated database entry 'libgpgme'
error: duplicated database entry 'libhogweed'
error: duplicated database entry 'libidn2'
error: duplicated database entry 'libksba'
error: duplicated database entry 'liblz4'
error: duplicated database entry 'liblzma'
error: duplicated database entry 'libnettle'
error: duplicated database entry 'libnghttp2'
error: duplicated database entry 'libopenssl'
error: duplicated database entry 'libpcre'
error: duplicated database entry 'libpcre2_8'
error: duplicated database entry 'libpsl'
error: duplicated database entry 'libreadline'
error: duplicated database entry 'libsqlite'
error: duplicated database entry 'libssh2'
error: duplicated database entry 'libtasn1'
error: duplicated database entry 'libunistring'
error: duplicated database entry 'libutil-linux'
error: duplicated database entry 'libxml2'
error: duplicated database entry 'libxslt'
error: duplicated database entry 'libzstd'
error: duplicated database entry 'mingw-w64-x86_64-adwaita-icon-theme'
error: duplicated database entry 'mingw-w64-x86_64-aria2'
error: duplicated database entry 'mingw-w64-x86_64-c-ares'
error: duplicated database entry 'mingw-w64-x86_64-cairo'
error: duplicated database entry 'mingw-w64-x86_64-expat'
error: duplicated database entry 'mingw-w64-x86_64-fontconfig'
error: duplicated database entry 'mingw-w64-x86_64-freetype'
error: duplicated database entry 'mingw-w64-x86_64-gcc-libs'
error: duplicated database entry 'mingw-w64-x86_64-gdk-pixbuf2'
error: duplicated database entry 'mingw-w64-x86_64-gettext'
error: duplicated database entry 'mingw-w64-x86_64-glib2'
error: duplicated database entry 'mingw-w64-x86_64-gobject-introspection-runtime'
error: duplicated database entry 'mingw-w64-x86_64-gtk-update-icon-cache'
error: duplicated database entry 'mingw-w64-x86_64-gtk3'
error: duplicated database entry 'mingw-w64-x86_64-harfbuzz'
error: duplicated database entry 'mingw-w64-x86_64-lerc'
error: duplicated database entry 'mingw-w64-x86_64-libdeflate'
error: duplicated database entry 'mingw-w64-x86_64-libepoxy'
error: duplicated database entry 'mingw-w64-x86_64-libffi'
error: duplicated database entry 'mingw-w64-x86_64-libiconv'
error: duplicated database entry 'mingw-w64-x86_64-libjpeg-turbo'
error: duplicated database entry 'mingw-w64-x86_64-libpng'
error: duplicated database entry 'mingw-w64-x86_64-librsvg'
error: duplicated database entry 'mingw-w64-x86_64-libssh2'
error: duplicated database entry 'mingw-w64-x86_64-libtiff'
error: duplicated database entry 'mingw-w64-x86_64-libwebp'
error: duplicated database entry 'mingw-w64-x86_64-libwinpthread-git'
error: duplicated database entry 'mingw-w64-x86_64-libxml2'
error: duplicated database entry 'mingw-w64-x86_64-ncurses'
error: duplicated database entry 'mingw-w64-x86_64-openssl'
error: duplicated database entry 'mingw-w64-x86_64-pango'
error: duplicated database entry 'mingw-w64-x86_64-pixman'
error: duplicated database entry 'mingw-w64-x86_64-python'
error: duplicated database entry 'mingw-w64-x86_64-python-cairo'
error: duplicated database entry 'mingw-w64-x86_64-python-certifi'
error: duplicated database entry 'mingw-w64-x86_64-python-chardet'
error: duplicated database entry 'mingw-w64-x86_64-python-charset-normalizer'
error: duplicated database entry 'mingw-w64-x86_64-python-distlib'
error: duplicated database entry 'mingw-w64-x86_64-python-gobject'
error: duplicated database entry 'mingw-w64-x86_64-python-idna'
error: duplicated database entry 'mingw-w64-x86_64-python-pip'
error: duplicated database entry 'mingw-w64-x86_64-python-requests'
error: duplicated database entry 'mingw-w64-x86_64-python-setuptools'
error: duplicated database entry 'mingw-w64-x86_64-python-urllib3'
error: duplicated database entry 'mingw-w64-x86_64-readline'
error: duplicated database entry 'mingw-w64-x86_64-shared-mime-info'
error: duplicated database entry 'mingw-w64-x86_64-sqlite3'
error: duplicated database entry 'mingw-w64-x86_64-tcl'
error: duplicated database entry 'mingw-w64-x86_64-tk'
error: duplicated database entry 'mingw-w64-x86_64-tzdata'
error: duplicated database entry 'mingw-w64-x86_64-xz'
error: duplicated database entry 'mingw-w64-x86_64-zlib'
error: duplicated database entry 'mingw-w64-x86_64-zstd'
error: duplicated database entry 'mintty'
error: duplicated database entry 'mpfr'
error: duplicated database entry 'msys2-keyring'
error: duplicated database entry 'msys2-runtime'
error: duplicated database entry 'nano'
error: duplicated database entry 'ncurses'
error: duplicated database entry 'nettle'
error: duplicated database entry 'openssl'
error: duplicated database entry 'pacman'
error: duplicated database entry 'pacman-contrib'
error: duplicated database entry 'pacman-mirrors'
error: duplicated database entry 'perl'
error: duplicated database entry 'pinentry'
error: duplicated database entry 'sed'
error: duplicated database entry 'tcl'
error: duplicated database entry 'tzcode'
error: duplicated database entry 'util-linux'
error: duplicated database entry 'wget'
error: duplicated database entry 'xz'
error: duplicated database entry 'zlib'
error: duplicated database entry 'zstd'
resolving dependencies...
looking for conflicting packages...

Net Upgrade Size:      1949.54 MiB
Packages (88) mingw-w64-x86_64-SDL2-2.26.3-1  mingw-w64-x86_64-aom-3.6.0-1  mingw-w64-x86_64-asciidoc-10.2.0-2  mingw-w64-x86_64-boost-1.81.0-6  mingw-w64-x86_64-bullet-3.25-1  mingw-w64-x86_64-ceres-solver-2.1.0-4  mingw-w64-x86_64-crt-git-10.0.0.r228.g40134887f-1  mingw-w64-x86_64-curl-7.88.1-1  mingw-w64-x86_64-dav1d-1.1.0-1  mingw-w64-x86_64-docbook-xml-1~4.5-3  mingw-w64-x86_64-docbook-xsl-1.79.2-8  mingw-w64-x86_64-eigen3-3.4.0-1  mingw-w64-x86_64-freeglut-3.4.0-2  mingw-w64-x86_64-frei0r-plugins-2.2.0-1  mingw-w64-x86_64-gavl-1.4.0-1  mingw-w64-x86_64-gcc-libgfortran-12.2.0-10  mingw-w64-x86_64-gcc-libs-12.2.0-10  mingw-w64-x86_64-gflags-2.2.2-4  mingw-w64-x86_64-glog-0.6.0-1  mingw-w64-x86_64-glsl-optimizer-git-1~r66913.d78c3d2f24-1  mingw-w64-x86_64-gnutls-3.7.9-1  mingw-w64-x86_64-gsm-1.0.22-1  mingw-w64-x86_64-hdf5-1.14.0-3  mingw-w64-x86_64-headers-git-10.0.0.r228.g40134887f-1  mingw-w64-x86_64-hlsl2glsl-git-1~r848.14dd189-1  mingw-w64-x86_64-hwloc-2.9.0-1  mingw-w64-x86_64-icu-72.1-1  mingw-w64-x86_64-imath-3.1.6-1  mingw-w64-x86_64-jasper-4.0.0-1  mingw-w64-x86_64-lame-3.100-3  mingw-w64-x86_64-lcms2-2.14-2  mingw-w64-x86_64-leptonica-1.83.1-1  mingw-w64-x86_64-libaec-1.0.6-2  mingw-w64-x86_64-libarchive-3.6.2-2  mingw-w64-x86_64-libass-0.17.1-1  mingw-w64-x86_64-libb2-0.98.1-2  mingw-w64-x86_64-libbluray-1.3.4-1  mingw-w64-x86_64-libcaca-0.99.beta20-3  mingw-w64-x86_64-libexif-0.6.24-2  mingw-w64-x86_64-libgme-0.6.3-3  mingw-w64-x86_64-libidn2-2.3.4-1  mingw-w64-x86_64-libltdl-2.4.7-1  mingw-w64-x86_64-libmfx-1.35.1-1  mingw-w64-x86_64-libmodplug-0.8.9.0-4  mingw-w64-x86_64-libmysofa-1.3.1-1  mingw-w64-x86_64-libogg-1.3.5-1  mingw-w64-x86_64-libpsl-0.21.2-4  mingw-w64-x86_64-libsoxr-0.1.3-4  mingw-w64-x86_64-libssh-0.10.4-2  mingw-w64-x86_64-libtheora-1.1.1-7  mingw-w64-x86_64-libunibreak-5.1-1  mingw-w64-x86_64-libunistring-1.1-1  mingw-w64-x86_64-libunwind-15.0.7-3  mingw-w64-x86_64-libvorbis-1.3.7-1  mingw-w64-x86_64-libvpx-1.13.0-1  mingw-w64-x86_64-libx264-0.164.r3094.bfc87b7-3  mingw-w64-x86_64-libxslt-1.1.37-2  mingw-w64-x86_64-lz4-1.9.4-1  mingw-w64-x86_64-nettle-3.8.1-1  mingw-w64-x86_64-nghttp2-1.52.0-1  mingw-w64-x86_64-ogre3d-13.6.2-1  mingw-w64-x86_64-openal-1.22.2-1  mingw-w64-x86_64-openblas-0.3.21-7  mingw-w64-x86_64-opencore-amr-0.1.6-1  mingw-w64-x86_64-opencv-4.7.0-6  mingw-w64-x86_64-openexr-3.1.5-2  mingw-w64-x86_64-openjpeg2-2.5.0-4  mingw-w64-x86_64-openvr-1.23.7-1  mingw-w64-x86_64-opus-1.3.1-5  mingw-w64-x86_64-protobuf-21.12-1  mingw-w64-x86_64-rav1e-0.6.3-1  mingw-w64-x86_64-rtmpdump-git-r514.c5f04a5-4  mingw-w64-x86_64-speex-1.2.1-1  mingw-w64-x86_64-speexdsp-1.2.1-1  mingw-w64-x86_64-srt-1.5.1-2  mingw-w64-x86_64-suitesparse-7.0.1-1  mingw-w64-x86_64-svt-av1-1.4.1-1  mingw-w64-x86_64-tbb-2021.8.0-1  mingw-w64-x86_64-tesseract-ocr-5.3.0-3  mingw-w64-x86_64-tinyxml-2.6.2-5  mingw-w64-x86_64-vid.stab-1.1-3  mingw-w64-x86_64-vulkan-headers-1.3.242-1  mingw-w64-x86_64-vulkan-loader-1.3.242-1  mingw-w64-x86_64-winpthreads-git-10.0.0.r228.g40134887f-1  mingw-w64-x86_64-x265-3.5-3  mingw-w64-x86_64-xvidcore-1.3.7-3  mingw-w64-x86_64-zimg-3.0.4-1  mingw-w64-x86_64-ffmpeg-5.1.2-2
Total Download Size:    315.02 MiB
Total Installed Size:  1952.32 MiB
:: Proceed with installation? [Y/n]
:: Retrieving packages...
 mingw-w64-x86_64-SDL2-2.26.3-1-any downloading...
 mingw-w64-x86_64-aom-3.6.0-1-any downloading...
 mingw-w64-x86_64-boost-1.81.0-6-any downloading...
 mingw-w64-x86_64-bullet-3.25-1-any downloading...
 mingw-w64-x86_64-crt-git-10.0.0.r228.g40134887f-1-any downloading...
 mingw-w64-x86_64-curl-7.88.1-1-any downloading...
 mingw-w64-x86_64-docbook-xsl-1.79.2-8-any downloading...
 mingw-w64-x86_64-eigen3-3.4.0-1-any downloading...
 mingw-w64-x86_64-ffmpeg-5.1.2-2-any downloading...
 mingw-w64-x86_64-gavl-1.4.0-1-any downloading...
 mingw-w64-x86_64-gcc-libs-12.2.0-10-any downloading...
 mingw-w64-x86_64-gnutls-3.7.9-1-any downloading...
 mingw-w64-x86_64-hdf5-1.14.0-3-any downloading...
 mingw-w64-x86_64-headers-git-10.0.0.r228.g40134887f-1-any downloading...
 mingw-w64-x86_64-icu-72.1-1-any downloading...
 mingw-w64-x86_64-imath-3.1.6-1-any downloading...
 mingw-w64-x86_64-leptonica-1.83.1-1-any downloading...
 mingw-w64-x86_64-libarchive-3.6.2-2-any downloading...
 mingw-w64-x86_64-libmysofa-1.3.1-1-any downloading...
 mingw-w64-x86_64-libvpx-1.13.0-1-any downloading...
 mingw-w64-x86_64-ogre3d-13.6.2-1-any downloading...
 mingw-w64-x86_64-openblas-0.3.21-7-any downloading...
 mingw-w64-x86_64-opencv-4.7.0-6-any downloading...
 mingw-w64-x86_64-openexr-3.1.5-2-any downloading...
 mingw-w64-x86_64-protobuf-21.12-1-any downloading...
 mingw-w64-x86_64-rav1e-0.6.3-1-any downloading...
 mingw-w64-x86_64-srt-1.5.1-2-any downloading...
 mingw-w64-x86_64-suitesparse-7.0.1-1-any downloading...
 mingw-w64-x86_64-svt-av1-1.4.1-1-any downloading...
 mingw-w64-x86_64-tesseract-ocr-5.3.0-3-any downloading...
 mingw-w64-x86_64-vulkan-headers-1.3.242-1-any downloading...
 mingw-w64-x86_64-x265-3.5-3-any downloading...
 mingw-w64-x86_64-asciidoc-10.2.0-2-any downloading...
 mingw-w64-x86_64-ceres-solver-2.1.0-4-any downloading...
 mingw-w64-x86_64-dav1d-1.1.0-1-any downloading...
 mingw-w64-x86_64-docbook-xml-1~4.5-3-any downloading...
 mingw-w64-x86_64-freeglut-3.4.0-2-any downloading...
 mingw-w64-x86_64-frei0r-plugins-2.2.0-1-any downloading...
 mingw-w64-x86_64-gcc-libgfortran-12.2.0-10-any downloading...
 mingw-w64-x86_64-gflags-2.2.2-4-any downloading...
 mingw-w64-x86_64-glog-0.6.0-1-any downloading...
 mingw-w64-x86_64-glsl-optimizer-git-1~r66913.d78c3d2f24-1-any downloading...
 mingw-w64-x86_64-gsm-1.0.22-1-any downloading...
 mingw-w64-x86_64-hlsl2glsl-git-1~r848.14dd189-1-any downloading...
 mingw-w64-x86_64-hwloc-2.9.0-1-any downloading...
 mingw-w64-x86_64-jasper-4.0.0-1-any downloading...
 mingw-w64-x86_64-lame-3.100-3-any downloading...
 mingw-w64-x86_64-lcms2-2.14-2-any downloading...
 mingw-w64-x86_64-libaec-1.0.6-2-any downloading...
 mingw-w64-x86_64-libass-0.17.1-1-any downloading...
 mingw-w64-x86_64-libb2-0.98.1-2-any downloading...
 mingw-w64-x86_64-libbluray-1.3.4-1-any downloading...
 mingw-w64-x86_64-libcaca-0.99.beta20-3-any downloading...
 mingw-w64-x86_64-libexif-0.6.24-2-any downloading...
 mingw-w64-x86_64-libgme-0.6.3-3-any downloading...
 mingw-w64-x86_64-libidn2-2.3.4-1-any downloading...
 mingw-w64-x86_64-libltdl-2.4.7-1-any downloading...
 mingw-w64-x86_64-libmfx-1.35.1-1-any downloading...
 mingw-w64-x86_64-libmodplug-0.8.9.0-4-any downloading...
 mingw-w64-x86_64-libogg-1.3.5-1-any downloading...
 mingw-w64-x86_64-libpsl-0.21.2-4-any downloading...
 mingw-w64-x86_64-libsoxr-0.1.3-4-any downloading...
 mingw-w64-x86_64-libssh-0.10.4-2-any downloading...
 mingw-w64-x86_64-libtheora-1.1.1-7-any downloading...
 mingw-w64-x86_64-libunibreak-5.1-1-any downloading...
 mingw-w64-x86_64-libunistring-1.1-1-any downloading...
 mingw-w64-x86_64-libunwind-15.0.7-3-any downloading...
 mingw-w64-x86_64-libvorbis-1.3.7-1-any downloading...
 mingw-w64-x86_64-libx264-0.164.r3094.bfc87b7-3-any downloading...
 mingw-w64-x86_64-libxslt-1.1.37-2-any downloading...
 mingw-w64-x86_64-lz4-1.9.4-1-any downloading...
 mingw-w64-x86_64-nettle-3.8.1-1-any downloading...
 mingw-w64-x86_64-nghttp2-1.52.0-1-any downloading...
 mingw-w64-x86_64-openal-1.22.2-1-any downloading...
 mingw-w64-x86_64-opencore-amr-0.1.6-1-any downloading...
 mingw-w64-x86_64-openjpeg2-2.5.0-4-any downloading...
 mingw-w64-x86_64-openvr-1.23.7-1-any downloading...
 mingw-w64-x86_64-opus-1.3.1-5-any downloading...
 mingw-w64-x86_64-rtmpdump-git-r514.c5f04a5-4-any downloading...
 mingw-w64-x86_64-speex-1.2.1-1-any downloading...
 mingw-w64-x86_64-speexdsp-1.2.1-1-any downloading...
 mingw-w64-x86_64-tbb-2021.8.0-1-any downloading...
 mingw-w64-x86_64-tinyxml-2.6.2-5-any downloading...
 mingw-w64-x86_64-vid.stab-1.1-3-any downloading...
 mingw-w64-x86_64-vulkan-loader-1.3.242-1-any downloading...
 mingw-w64-x86_64-winpthreads-git-10.0.0.r228.g40134887f-1-any downloading...
 mingw-w64-x86_64-xvidcore-1.3.7-3-any downloading...
 mingw-w64-x86_64-zimg-3.0.4-1-any downloading...
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
checking available disk space...
:: Processing package changes...
upgrading mingw-w64-x86_64-gcc-libs...
error: could not commit transaction
error: could not create directory /var/lib/pacman/local/mingw-w64-x86_64-gcc-libs-12.2.0-10/: File exists
error: failed to commit transaction (transaction aborted)
Errors occurred, no packages were upgraded.
Update operation finished
axcore commented 1 year ago

Tartube is running in the MSYS2 environment. You can think of it as a slimmed-down Linux operating system, running on top of your Windows system. The Windows %PATH% is not available to Tartube because, as far as Tartube is concerned, it's a Linux application running on a Linux operating system.

No doubt there is a workaround, allowing Tartube users to use the Windows version of FFmpeg, but I haven't been able to find it. Until someone else can find it, Tartube is not compatible with Windows FFmpeg.

The option to set the FFmpeg path is greyed out for the same reason: it will not work.

Occasionally Tartube's FFmpeg installer fails. This is an MSYS2 issue, nothing I can do about it; the only solution is to delete Tartube's installation folder and to re-install Tartube.

vertigo220 commented 1 year ago

That makes sense. As I said, it would be beneficial then to add a brief bit of info about this in the app itself when it errors and probably in the settings area where you point it to FFmpeg, as well as changing the error message from saying nothing happened to saying the download finished but the files couldn't be merged.

So it sounds like my only option is to do a full reinstall, which I may need to do anyways due to my other issue, though I'll hold off for now in case you have any other suggestions of things I can try for troubleshooting that issue.

The fact that this has the potential to fail after downloading a not insignificant amount of data, requiring it to be downloaded again, is another reason why it would be ideal to be able to install it manually. I'm using a phone for internet, and while I at least have unlimited data, it takes a while, so it would be preferable to be able to download some files once and manually do the install and, if it fails, just try again, without having to redownload a few hundred MB each time.

axcore commented 1 year ago

as well as changing the error message from saying nothing happened to saying the download finished but the files couldn't be merged.

Not practical, I think; I don't know how to reliably detect different kinds of FFmpeg installation failures, so I can't inform the user about them. (If it was something that was easily reproducible, that would be different, but FFmpeg install failures seem to be random.)

The fact that this has the potential to fail after downloading a not insignificant amount of data, requiring it to be downloaded again, is another reason why it would be ideal to be able to install it manually.

If bandwidth is an issue, you should try the installer that includes a pre-installed FFmpeg (most recent one is here). It's still a larger download, but at least you won't have to worry about install failures.

vertigo220 commented 1 year ago

Not practical, I think; I don't know how to reliably detect different kinds of FFmpeg installation failures, so I can't inform the user about them. (If it was something that was easily reproducible, that would be different, but FFmpeg install failures seem to be random.)

Not that error message. The one after a download when it errors because FFmpeg isn't installed. If you check the error log, it says files were requested to be merged but couldn't because FFmpeg isn't installed, so it already knows the exact issue. It also already knows (or at least it should) that the file was downloaded or not. But whether it downloads the file then errors or doesn't even download it, it says "nothing happened." I'm simply suggesting have that error dialog say that the video was downloaded but not merged, not that nothing happened, which suggests it didn't even successfully download it.

If bandwidth is an issue, you should try the installer that includes a pre-installed FFmpeg (most recent one is here). It's still a larger download, but at least you won't have to worry about install failures.

Hmm, good idea, except why is it so much larger? It's an extra 867MB, whereas installing FFmpeg from within Tartube it says the download size is "only" 315 MB.

axcore commented 1 year ago

I'm simply suggesting have that error dialog say that the video was downloaded but not merged, not that nothing happened, which suggests it didn't even successfully download it.

I am reluctant to add more stuff to this window, because it's designed for clueless newbies, not for the type of user who knows what Github is. If I start adding customised messages to it, I fear it will become unwieldy.

Hmm, good idea, except why is it so much larger? It's an extra 867MB, whereas installing FFmpeg from within Tartube it says the download size is "only" 315 MB.

I am not familiar with FFmpeg's source code so I can't give you a definitive answer.

vertigo220 commented 1 year ago

Fair enough on both counts. FWIW, while I've now learned Tartube a bit more, when I was new to it, which wasn't terribly long ago, I found the vagueness of this error window to make it harder to figure out what was going on, and still do. I'm getting the hang of it the more I use it (and part of the problem is I only use it very infrequently), but I often find myself wondering confused when I get it whether it's because I'm trying to download a format that's unavailable. I'll admit, if I paid a bit more attention, I'd just check the error log, and I don't do so every time (I either just see the main error message, assume based on it that I requested an unavailable format, and start making adjustments to those options, or I simply forget to check the log), and that's definitely on me, but my .02 is that a basic users like the type you're concerned about are more likely than not to either not check the error log as well or to not understand it.

I think if a user is going to get confused by having the additional info that states their specific problem to help them resolve it, they're likely going to get confused by trying to use the log (if they use it at all) or they're not going to know what to do and just give up. Maybe the error window could show the message in the error log, but it could be hidden by default, and the user could click a "Show Error Message" button or something.

axcore commented 1 year ago

Error messages produced by video websites, by yt-dlp and by FFmpeg are constantly changing. I think it is simply not feasible to start interpreting them for the benefit of non-technical users. Indeed, in FFmpeg's case, there is hardly any output for us to interpret. The best we can do is to put all the error messages in one place, for the benefit of anyone who wants to read them.

Things would be very different, if Tartube, yt-dlp and FFmpeg were a single, unified application. But Tartube is just a GUI; there are practical limits to how easy the user experience can be made.

axcore commented 12 months ago

Closing this issue because it's so old. The ability to set the FFmpeg path on MS Windows has now been added (in v2.4.429, I think.)