fabiospampinato / cliflix

Watch anything instantaneously, just write its name.
MIT License
1.49k stars 65 forks source link

Support selecting Chromecast device #25

Open gaycomputers opened 5 years ago

gaycomputers commented 5 years ago

Returns following error.

Error: Chromecast: getaddrinfo ENOTFOUND ba172551-9399-4b27-3968-29f0b88dd4ca.local ba172551-9399-4b27-3968-29f0b88dd4ca.local:8009 (node:28952) UnhandledPromiseRejectionWarning: Error: null at Function.module.exports.sync (/home/trisimix/node_modules/execa/index.js:303:26) at Object. (/home/trisimix/node_modules/cliflix/dist/index.js:253:23) at step (/home/trisimix/node_modules/cliflix/dist/index.js:33:23) at Object.next (/home/trisimix/node_modules/cliflix/dist/index.js:14:53) at /home/trisimix/node_modules/cliflix/dist/index.js:8:71 at new Promise () at __awaiter (/home/trisimix/node_modules/cliflix/dist/index.js:4:12) at Object.stream (/home/trisimix/node_modules/cliflix/dist/index.js:245:16) at Object. (/home/trisimix/node_modules/cliflix/dist/index.js:99:33) at step (/home/trisimix/node_modules/cliflix/dist/index.js:33:23) at Object.next (/home/trisimix/node_modules/cliflix/dist/index.js:14:53) at fulfilled (/home/trisimix/node_modules/cliflix/dist/index.js:5:58) (node:28952) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2) (node:28952) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

fabiospampinato commented 5 years ago

We are using webtorrent-cli under the hood, can you check if using that directly works for you?

OvermindDL1 commented 5 years ago

For note, it streams to my chromecasts just fine... all of them... all 6... even though I just want it on one specific one of them... ^.^;

OvermindDL1 commented 5 years ago

If this project uses it's own fork of webtorrent (looks like it might?) then merging the https://github.com/webtorrent/webtorrent-cli/pull/58 PR would add the ability to select chromecasts then it looks like?

fabiospampinato commented 5 years ago

If this project uses it's own fork of webtorrent (looks like it might?)

That's right, but I don't want to maintain features I don't need, I've only forked it for adding support for IINA. When they'll merge that PR we can get back to this.

OvermindDL1 commented 5 years ago

Heh, well right now the chromecast'ing is pretty useless otherwise as casting to everything gets my wife yelling at me... ^.^;

What is IINA speaking of, google is not being revealing and trying to use it just seems to exit without doing much of anything, no error or anything. I'm not finding an iina program in the debian or ubuntu packaging repositories so it doesn't seem to be a program and I'm not finding any information about a protocol. Do you have information about it? Is it some custom protocol or something proprietary?

fabiospampinato commented 5 years ago

@OvermindDL1 It's a popular video player for macOS https://github.com/lhc70000/iina

OvermindDL1 commented 5 years ago

Oooo, why is it showing up on linux then? Why add specific media players rather than an extension mechanism in the config file that allows for a <name> -> /path/to/cmd -flags {video} --more-flags where {video} or whatever is replaced with the full file path to the video file (with other options for things like caption files or so forth). Then you'd be able to support any arbitrary program with relative ease on a user-by-user basis with perhaps some built-in options? If that's the point of the fork then that seems far better to PR upstream. :-)

As an aside, apparently that above PR 58 on the webtorrent repo is moving forward, it looks like it might make it in very soon!

fabiospampinato commented 5 years ago

why is it showing up on linux then? Why add specific media players rather than an extension mechanism

Because CLIFlix was basically an afternoon project.

Then you'd be able to support any arbitrary program If that's the point of the fork then that seems far better to PR upstream. :-)

Kind of, for instance IINA didn't have a CLI a few versions back, you certainly don't want to write an AppleScript in the terminal or a program that runs it, instead of just selecting "IINA" from a list or passing the "--iina" option, right?

If you'd like to submit a PR that adds support for adding support for custom media players let me know.

OvermindDL1 commented 5 years ago

Because CLIFlix was basically an afternoon project.

Gotta love how such things become overnight sensations. ^.^

for instance IINA didn't have a CLI a few versions back

o.O That's... weird...

you certainly don't want to write an AppleScript in the terminal or a program that runs it

I thought Mac's used bash as their scripting interface? I've never even heard of AppleScript... ^.^;

Could just add a System Player option that just xdg-open <file> for just playing of the video (sans caption files or whatever), that would play with whatever is registered for the system then, would be a useful option as well (since cliflix is missing the player that I generally use, though I've been using it via ssh from my phone to play to the chromecasts, or trying anyway except for that bug...).

fabiospampinato commented 5 years ago

I thought Mac's used bash as their scripting interface? I've never even heard of AppleScript... ^.^;

Bash is the default shell. AppleScript is a weird language for talking to native mac apps.

Could just add a System Player option that just xdg-open for just playing of the video

There's no complete video file until it's 100% downloaded. The other players open a url that webtorrent-cli provides (you can see that when webtorrent-cli starts up), doing what you ask would just open the browser. Besides I don't have time for this currently, feel free to make a separate issue about this is you want.