karthink / elfeed-tube

Youtube integration for Elfeed, the feed reader for Emacs
The Unlicense
241 stars 11 forks source link

Invidious is unstable #21

Closed xbc5 closed 7 months ago

xbc5 commented 1 year ago

Timeouts occur often. Do we use invidious for:

  1. video data;
  2. other features (e.g. closed captions)?

If 1: could we put invidious behind a feature toggle? MPV supports direct YT links via YT-DLP.

Another good addition would be a scoring system: the API has a monitor field that we could easily map, reduce, and sort at boot.

Could you clarify what purpose invidious serves within this package?

Thanks.

karthink commented 1 year ago

Invidious is used to get all video metadata except the transcripts. This includes the thumbnail, duration and video description.

Timeouts occur often.

If timeouts occur, elfeed-tube should automatically switch to a different Invidious instance and retry. Multiple Invidous instances would have to be down simultaneously before there's a failure in fetching metadata.

could we put invidious behind a feature toggle? MPV supports direct YT links via YT-DLP

Invidious and mpv (as used by elfeed-tube) are not connected in any way. I'm not sure what you mean here.

the API has a monitor field that we could easily map, reduce, and sort at boot.

Yup, this could be done. If you would like to submit a PR, please go ahead. You could start by looking at the functions elfeed-tube--get-invidious-servers and elfeed-tube--nrotate-invidious-servers. In my experience simply trying instances at random has been working fine.

xbc5 commented 1 year ago

Invidious and mpv (as used by elfeed-tube) are not connected in any way. I'm not sure what you mean here.

I mean elfeed-tube-mpv fails to launch MPV if the invidious instance times out -- no feedback (except the log buffer).

Yup, this could be done. If you would like to submit a PR, please go ahead...

I probably will, but not immediately.