ffmpeg-ffprobe-yt-dlp-static-electron
v1.0.4
Published
Static binaries of ffmpeg, ffprobe and yt-dlp for Mac and Windows
Downloads
157
Maintainers
Readme
ffmpeg-ffprobe-yt-dlp-static-electron
Description
I made this package as a replacement for my project's dependency on Vitaliy Alekhnovich's youtube-dl-ffmpeg-ffprobe-static which has been removed from npm. I incorporated ideas from pietrop's ffmpeg-static-electron to make the binary paths electron-builder friendly.
Currently this module is only supporting the platforms needed for my project which are Mac OSX Intel and Windows 64bit.
Contains binaries for ffmpeg, ffprobe and yt-dlp. I replaced youtube-dl with yt-dlp as youtube-dl support is slowly dying and takes forever to download anything. Binaries are not on the git repo because they're too large.
Installation
npm i ffmpeg-ffprobe-yt-dlp-static-electron
Usage
import { ffmpeg, ffprobe, ytdlp } from 'ffmpeg-ffprobe-yt-dlp-static-electron'
import { fixPathForAsarUnpack } from 'electron-util'
console.log(fixPathForAsarUnpack(ffmpeg.path))
console.log(fixPathForAsarUnpack(ffprobe.path))
console.log(fixPathForAsarUnpack(ytdlp.path))
// /path/to/ffmpeg-ffprobe-yt-dlp-static-electron/bin/[mac|win]/ffmpeg[|.exe]
// /path/to/ffmpeg-ffprobe-yt-dlp-static-electron/bin/[mac|win]/ffprobe[|.exe]
// /path/to/ffmpeg-ffprobe-yt-dlp-static-electron/bin/[mac|win]/yt-dlp[|.exe]
^Using with fixPathForAsarUnpack from sindresorhus's electron-util
// electron-builder.yml
files:
-"node_modules/ffmpeg-ffprobe-yt-dlp-static-electron/bin/${os}${/*}"
-"node_modules/ffmpeg-ffprobe-yt-dlp-static-electron/index.js"
-"node_modules/ffmpeg-ffprobe-yt-dlp-static-electron/package.json"
win:
files:
- "!node_modules/ffmpeg-ffprobe-yt-dlp-static-electron/bin/mac${/*}"
mac:
files:
- "!node_modules/ffmpeg-ffprobe-yt-dlp-static-electron/bin/win${/*}"
I highly recommend that you add these scripts to your package.json. These will update yt-dlp to the latest version. I'll try to release updates to this package as new versions of yt-dlp come out, but these will let you get the latest a little sooner.
// package.json
{
...,
"scripts":{
...,
"update-yt-dlp:mac": "node_modules/ffmpeg-ffprobe-yt-dlp-static-electron/bin/mac/yt-dlp -U",
"update-yt-dlp:win": "cd node_modules/ffmpeg-ffprobe-yt-dlp-static-electron/bin/win && yt-dlp.exe -U",
}
}
For Mac users, if you're getting permission errors when running or updating yt-dlp, this command works for me:
sudo chmod a+x /node_modules/ffmpeg-ffprobe-yt-dlp-static-electron/bin/mac/yt-dlp