Sending video to wall error
nys99 opened this issue · 1 comments
Hi, I am trying to use the video-url-input.js file to send a youtube video to the wall. However, when I pass the function a URL I get the following output:
path.js:7
throw new TypeError('Path must be a string. Received ' + inspect(path));
^
TypeError: Path must be a string. Received undefined
at assertPath (path.js:7:11)
at Object.dirname (path.js:1330:5)
at Object.<anonymous> (/home/pi/Desktop/rio/rio-server/node_modules/youtube-dl/lib/youtube-dl.js:16:71)
at Module._compile (module.js:577:32)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.require (module.js:504:17)
at require (internal/module.js:20:19)
I have installed ffmpeg and I get the follow output when I run ffmpeg:
ffmpeg version 4.1.6-1~deb10u1+rpt2 Copyright (c) 2000-2020 the FFmpeg developers
built with gcc 8 (Raspbian 8.3.0-6+rpi1)
What might be causing this issue?
Not sure whether this is still relevant for you after such a long time, but it is for me, so I'm documenting what I figured out.
Fixed in blauzaaan@55337fa
I'm getting errors during npm run install-server
:
> youtube-dl@1.11.0 postinstall /home/pi/rio/rio-server/node_modules/youtube-dl
> node ./scripts/download.js
Error: Could not find download link in https://rg3.github.io/youtube-dl/download.html
...
See: przemyslawpluta/node-youtube-dl#162
It's fixed later versions, so change rio-server/package.json:
"youtube-dl": "1.11.0"
--> "youtube-dl": "1.13.1"
(newer versions seem to depend on a package which require newer node versions, so not using those for now)
However, with the video I selected, I got
Error: Command failed: /home/pi/rio/rio-server/node_modules/youtube-dl/bin/youtube-dl --dump-json --format=17 http://www.youtube.com/watch?v=MLFWLJSPN7I
ERROR: requested format not available
Therefore I additionally changed the format in rio-server/inputs/video-worker.js
:
// var video = youtubedl(url, ['--format=17']); // 176 x 144 @ 12fps
var video = youtubedl(url, ['--format=worst']); // changed as at least some videos are not available in format 17
If considering switching to youtube-dl-exec, remember to not only in package.json
, but also in inputs/video-worker.js
:
const youtubedl = require('youtube-dl');