Introduces a configuration property to specify an AllTube URL to be shown in error messages when video loading fails. Adds conditional logic to error handling to include a link to AllTube if the URL is configured and the request path meets criteria. This enhances user experience by providing an alternative viewing option.
Introduced a new error message option to allow users to download videos using AllTube when they encounter issues. This update enhances user experience by providing an alternative to YouTube for video downloads.
Added a default URL for `modified_source_code_url` property to ensure AGPL compliance by displaying the source modification link in the footer. This change helps streamline configuration and maintains legal transparency.
Before this PR, the comment/description content was not HTML escaped when 'parse_description()'
was called with a JSON object lacking the "commandRuns" entry.
Closes issue 4727
This PR:
* gets thumbnail and channel name from the initial request
* gets videos, shorts and streams via autogenerated channel playlists
Test Url: /channel/UCbfnHqxXs_K3kvaH-WlNlig
Closes issue 3513
The /api/v1/videos endpoint does not proxy the formatStreams URLs when
'local=true' is passed, whereas the adaptiveFormats URLs are correctly proxied.
The Web UI does proxy when clicking "Download" with 'fmt=18' for example, so
this is probably an oversight. This PR aims to fix that.
No related issue
This PR adds two new config option, to pass a PO token (config 'po_token') and
a visitor ID (config 'visitor_data') to Youtube. These two strings are required
to play videos using the WEB client.
Warning: These strings gives much more identifiable information to Google!
If the po_token setting is filled in, then the WEB client is used. If not, the
Android client is used. TvHtml5ScreenEmbed will still be used as a fallback.
Script for generating po_token and visitor_data:
https://github.com/iv-org/youtube-trusted-session-generator
Helps with issue 4734
This PR adds support for inv_sig_helper, which offloads the player fetching,
function extraction and signature parsing, which in turn allows to use the
web client to watch videos.
When the new config option "signature_server" is not set, the logic for the
external signature server is not enabled and invidious behaves like before.
This PR also updates the crystal overrides because the stdlib changed quite
a while ago (See issue 11049 at crystal-lang/crystal) and those were required
to properly use TCP/unix sockets.
Closes issue 4649
Note: Does not add rel="noreferrer noopener" to:
* links in channel description
* links in video descriptions
* links in video comments
Related to issue 4267