- Display watch page even when player endpoint fails, using data from /next
- Show error message in player container placeholder (like YouTube does)
- Extract title, description, views, likes, comments etc. from /next
- Handle missing videoDetails gracefully with fallback to renderer data
- Fix is_listed detection from video badges when videoDetails unavailable
- Add subreason display for better error messages
- Add has_unlisted_badge? helper function
- Bump SCHEMA_VERSION to 4
- Integrate embed page with the same error handling
- Guard against empty streams when video has errors
- Fix JSON::Any.new(nil) crash for shortDescription
- Add locale key: error_from_youtube_unplayable
PR TODO status:
[x] Integrate the embed page with the changes
[x] Display the subreason on the watch page when there is an error
[x] Fix description (nil safety)
[ ] Add mocks for a video without videoDetails
* fix: restore dmca_content functionality
This restores (or adds) the functionality of the `dmca_content` config
option that at this date, has been unused and makes no effect.
* only disable download widget for dmca video ids
textcaptcha.com seems to be down since April and it does not appear that
service will be restored.
Text captchas can be easily automated using free LLMs, so keeping the
text captcha is more like a gate to create accounts in mass on public
Invidious instances.
It also gives headaches like bots automating account creation to modify
the videos that appear popular page of each instance (since the popular
page is based on the subscriptions of the registered users).
This PR adds a configuration option to control the preloading of video data on
page load with the HTML5 'preload'[1] attribute on the `<video>` element.
The option is enabled by default, meaning that the `preload` attribute's value
will be 'auto'. If users want to prevent preloading of video data, they
can disable the option, which will set the attribute value to 'none'.
[1](https://www.w3schools.com/tags/att_video_preload.asp)
Closes issue 4110
Fix#4110 by adding an option to control the preloading of video data on
page load. If disabled ("false"), the browser will not preload any video
data until the user explicitly hits the "Play" button.
If enabled ("true"), the default behavior will be used, which means the
browser decides how much of the video will be preloaded.