StefanLobbenmeier / youtube-dl-gui

A cross-platform GUI for youtube-dl made in Electron and node.js
GNU Affero General Public License v3.0
1.55k stars 62 forks source link

ENOENT error on Macos. Can not download any video #34

Closed cdiamon closed 1 year ago

cdiamon commented 1 year ago

I receive an unhandled error when I add any youtube video

{ "errno": "ENOENT", "code": "ENOENT", "syscall": "spawn /Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/yt-dlp_macos", "path": "/Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/yt-dlp_macos", "spawnargs": [ "-J", "--flat-playlist", "--no-cache-dir", "--ignore-config", "--user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36", "--no-check-certificate", "--yes-playlist", "https://www.youtube.com/watch?v=Z_yibRal4mI" ], "originalMessage": "spawn /Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/yt-dlp_macos ENOENT", "shortMessage": "Command failed with ENOENT: /Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/yt-dlp_macos -J --flat-playlist --no-cache-dir --ignore-config --user-agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 --no-check-certificate --yes-playlist https://www.youtube.com/watch?v=Z_yibRal4mI\nspawn /Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/yt-dlp_macos ENOENT", "command": "/Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/yt-dlp_macos -J --flat-playlist --no-cache-dir --ignore-config --user-agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 --no-check-certificate --yes-playlist https://www.youtube.com/watch?v=Z_yibRal4mI", "stdout": "", "stderr": "", "failed": true, "timedOut": false, "isCanceled": false, "killed": false }

StefanLobbenmeier commented 1 year ago

That’s really weird, it happens when the yt-dlp_macos is not found

can you confirm that /Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/ is empty?

(You can rightclick on finder in the dock and say „Go to Folder“ and paste it in there.)

You can try just restarting open video downloader and it should attempt to download it again.

cdiamon commented 1 year ago

Inside of the /Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/ I see ffmpeg, ffmpegVersion, ffprobe, ytdlVersion.

The app also installs yt-dlp on every restart.

StefanLobbenmeier commented 1 year ago

The app also installs yt-dlp on every restart.

does the installation go all the way to 100%?

StefanLobbenmeier commented 1 year ago

And a shot in the dark - can you open ytdlVersion in Text edit and paste the content here?

should look like this: {"version":"2023.03.04","ytdlp":true}

cdiamon commented 1 year ago

ytdlVersion: {"version":"2023.03.04","ytdlp":true} When I receive an error, the yt-dlp_macos gets deleted from abovementioned folder.

I have tried some random video, and got another error

{ "shortMessage": "Command was killed with SIGKILL (Forced termination): /Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/yt-dlp_macos -J --flat-playlist --no-cache-dir --ignore-config --user-agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15 --no-check-certificate --yes-playlist https://www.youtube.com/watch?v=cUkoqppoFr8", "command": "/Applications/Open Video Downloader.app/Contents/Resources/app.asar.unpacked/binaries/yt-dlp_macos -J --flat-playlist --no-cache-dir --ignore-config --user-agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15 --no-check-certificate --yes-playlist https://www.youtube.com/watch?v=cUkoqppoFr8", "signal": "SIGKILL", "signalDescription": "Forced termination", "stdout": "", "stderr": "", "failed": true, "timedOut": false, "isCanceled": false, "killed": false }

StefanLobbenmeier commented 1 year ago

That’s super weird. I don’t think there’s logic in this app to delete the file on error.

Do you have some virus scanner on your machine?

cdiamon commented 1 year ago

No virus scanner installed I am aware of. But it definitely gets deleted only on errors, not on any other action. If I don't add anything, then it is not deleted and therefore not installed on the next start.

StefanLobbenmeier commented 1 year ago

Hmm can you try running the downloaded yt-dlp_macos from the terminal? It should print help options by default

(Just drag and drop it in a terminal and press enter should do the trick)

StefanLobbenmeier commented 1 year ago

(If that works normally, then I will have to do some research, because then I am out of ideas)

cdiamon commented 1 year ago

The only thing the console writes: Killed: 9 And the file disappears

StefanLobbenmeier commented 1 year ago

Ok Great, then at least open video downloader is working normally 😄

You might get some help for it on the yt-dlp repository, but I am pretty sure it is something on your machine deleting it outside my control.

cdiamon commented 1 year ago

Thank you anyways! Don't you know if there's any additional log available when opening the file in the console?

StefanLobbenmeier commented 1 year ago

You could try /Applications/Open\ Video\ Downloader.app/Contents/Resources/app.asar.unpacked/binaries/yt-dlp_macos -v to get some more log output.

it prints this on my machine:

[debug] Command-line config: ['-v']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.03.04 [392389b7d] (darwin_exe)
[debug] Python 3.8.9 (CPython arm64 64bit) - macOS-13.2.1-arm64-arm-64bit (LibreSSL 2.8.3)
[debug] exe versions: none
[debug] Optional libraries: Cryptodome-3.17, brotli-1.0.9, certifi-2022.12.07, mutagen-1.46.0, sqlite3-2.6.0, websockets-10.4
[debug] Proxy map: {}
[debug] Loaded 1786 extractors

Usage: yt-dlp_macos [OPTIONS] URL [URL...]

yt-dlp_macos: error: You must provide at least one URL.
Type yt-dlp --help to see a list of all options.

I am also on macOS 13.2.1 btw

StefanLobbenmeier commented 1 year ago

There is one more thing you can try, which is to download the yt-dlp_macos directly from yt-dlp_macos and running it in the terminal, I would expect the same behaviour but that way we can also confirm that its not something that happens with it while open video downloader downloads the file.

cdiamon commented 1 year ago

trying to open it with -v finally showed something

image
StefanLobbenmeier commented 1 year ago

I see - usually you can get rid of the message by right clicking on the file and saying „open“

cdiamon commented 1 year ago

It gets deleted anyways. I guess, there are some system settings that kill it. Thank you for your time! I'll try to figure this riddle out later 🙇

StefanLobbenmeier commented 1 year ago

Thanks! It might be changing that setting to "App store and identified developers" image

but let me know what fixes it.

cdiamon commented 1 year ago

I have managed to fix it. I have installed yt-dlp with brew brew install yt-dlp After this, the app downloaded yt-dlp_macos on start and works as expected! 🎉

StefanLobbenmeier commented 1 year ago

Glad you figured it out and thanks for sharing the solution. I Wonder if downloading the file via brew also automatically accepts the developer certificate, and that’s how it was fixed. Quite strange though.

StefanLobbenmeier commented 1 year ago

Adding keyword gatekeeper here since that what I searched for

I had a similar issue with the latest release of yet-dlp now, it would not start (but did not get deleted)

I suspect we could fix this by running

spctl --add /Path/To/yt-dlp

to approve it for gatekeeper. We will see