Commit graph

3039 commits

Author SHA1 Message Date
9d9a2d40e9
feat: add AllTube URL display on video load failure
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: 1.11.2, stable: true (push) Waiting to run
Invidious CI / build - crystal: 1.12.1, stable: true (push) Waiting to run
Invidious CI / build - crystal: 1.9.2, stable: true (push) Waiting to run
Invidious CI / build - crystal: nightly, stable: false (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build - crystal: 1.10.1, stable: true (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / ameba_lint (push) Waiting to run
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.
2024-09-18 15:05:29 +02:00
743ba53822
feat: add option to download video via AllTube
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.
2024-09-18 14:57:25 +02:00
3b99a05b28
feat(config): set default URL for modified source code
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.
2024-09-18 14:57:07 +02:00
Emilien Devos
cec3cfba77 Revert "use web screen embed for fixing potoken functionality (#4923)"
This reverts commit de918b9234.
The code doesn't work as expected. Reverting
2024-09-17 00:22:06 +02:00
Émilien (perso)
de918b9234
use web screen embed for fixing potoken functionality (#4923)
* use web screen embed for fixing potoken functionality

* use web screen embed only for getting streamingData + disable tv screen on po_token
2024-09-16 23:42:43 +02:00
Samantaz Fox
c5fdd9ea65
HTML: Sort playlists alphabetically in watch page drop down (#4853)
Closes issue 4708
2024-08-24 20:50:46 +02:00
Samantaz Fox
2876ee0f9f
HTML: Fix XSS vulnerability in description/comments (#4852)
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
2024-08-24 20:50:05 +02:00
Samantaz Fox
0699e5fc27
YtAPI: Bump client versions (#4849)
This might help reducing the amount of playback errors.

No related issue
2024-08-24 20:47:01 +02:00
Samantaz Fox
15669acccf
SigHelper: Fix inverted time comparison in 'check_update' (#4845)
Closes issue 4840
2024-08-24 20:44:52 +02:00
Samantaz Fox
cd2daf4adb
Storyboards: Various fixes and code cleaning (#4153)
Closes issue 3441
2024-08-24 20:43:05 +02:00
syeopite
ccecc6d318
Fix lint errors introduced in #4146 and #4295 (#4876)
* Ameba: Fix Naming/VariableNames

Introduced in #4295

* Ameba: Fix Naming/PredicateName

Introduced in #4146
2024-08-24 18:11:11 +00:00
Samantaz Fox
3c6a662aaf
Search: Add support for Youtube URLs (#4146)
Closes issue 3300
2024-08-24 19:44:59 +02:00
Samantaz Fox
9e55799269
Channel: Render age restricted channels (#4295)
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
2024-08-24 19:43:59 +02:00
Samantaz Fox
da70c9b7b0
Ameba: Miscellaneous fixes (#4807)
End of a series of PRs meant to improve code quality.

Related to issue 2231
2024-08-24 19:42:10 +02:00
Samantaz Fox
828da3c6ce
API: Proxy formatStreams URLs too (#4859)
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
2024-08-24 19:39:36 +02:00
Samantaz Fox
febf18cbf7
UI: Add search button to search bar (#4706)
Closes issue 529
2024-08-24 19:38:48 +02:00
Samantaz Fox
21ab5dc668
Storyboard: Revert cue timing "fix" 2024-08-22 00:29:15 +02:00
syeopite
ecbea0b67b
Ameba: Fix Lint/ShadowingOuterLocalVar 2024-08-21 02:43:26 -07:00
syeopite
d1cd790388
Ameba: Fix Lint/RedundantStringCoercion 2024-08-21 02:43:26 -07:00
syeopite
f66068976e
Ameba: Fix Naming/PredicateName 2024-08-21 02:43:08 -07:00
syeopite
22b35c453e
Ameba: Fix Style/WhileTrue 2024-08-21 02:43:08 -07:00
Colin Leroy-Mira
c606465708 Proxify formatStreams URLs too 2024-08-19 09:37:24 +02:00
Samantaz Fox
85deea5aca
Search: Change smart search inhibitor to a backslash 2024-08-17 19:22:40 +02:00
Samantaz Fox
78c5ba93c7
Misc: Clean some code in UrlSanitizer 2024-08-17 19:22:40 +02:00
Samantaz Fox
31a80420ec
Search: Add URL search inhibition logic 2024-08-17 19:22:40 +02:00
Samantaz Fox
4c0b5c314d
Search: Add support for youtu.be and youtube.com URLs 2024-08-17 19:22:40 +02:00
Samantaz Fox
eb0f651812
Add a youtube URL sanitizer 2024-08-17 19:22:40 +02:00
Samantaz Fox
764965c441
Storyboards: Fix lint error 2024-08-17 12:20:53 +02:00
Samantaz Fox
b795bdf2a4
HTML: Sort playlists alphabetically in watch page drop down 2024-08-16 12:10:22 +02:00
Samantaz Fox
5b05f3bd14
Storyboards: Workarounds for videojs-vtt-thumbnails
The workarounds are as follow:
  * Unescape HTML entities
  * Always use 0:00:00.000 for cue start/end
2024-08-16 11:36:01 +02:00
Samantaz Fox
a335bc0814
Storyboards: Fix some small logic mistakes 2024-08-16 10:05:49 +02:00
Samantaz Fox
7b50388eaf
Storyboards: Fix broken first storyboard 2024-08-16 10:05:48 +02:00
Samantaz Fox
da3d58f03c
Storyboards: Cleanup and document code 2024-08-16 10:05:47 +02:00
Samantaz Fox
8327862697
Storyboards: Use replace the NamedTuple by a struct 2024-08-16 10:04:40 +02:00
Samantaz Fox
6878822c4d
Storyboards: Move parser to its own file 2024-08-16 10:02:52 +02:00
Samantaz Fox
0b28054f8a
videos: Fix XSS vulnerability in description/comments
Patch provided by e-mail, thanks to an anonymous user whose cats are named
Yoshi and Yasuo.

Comment is mine
2024-08-15 18:26:17 +02:00
Samantaz Fox
cc33d3f074
YtAPI: Also update User-Agent string 2024-08-15 18:14:29 +02:00
Samantaz Fox
acbb625866
YtAPI: Update clients to latest version 2024-08-15 12:57:36 +02:00
Samantaz Fox
466bfbb306
SigHelper: Fix inverted time comparison in 'check_update' 2024-08-14 21:43:37 +02:00
ChunkyProgrammer
e31053e812 Use dig to get properties
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2024-08-13 15:09:16 -04:00
ChunkyProgrammer
96ade642fa Channel: Render age restricted channels 2024-08-13 15:09:16 -04:00
Samantaz Fox
e319c35f09
Videos: use intermediary variable when using CONFIG.po_token 2024-08-13 20:56:09 +02:00
Samantaz Fox
2d18ff1f80
Add ability to set po_token and visitordata ID (#4789)
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
2024-08-13 20:35:43 +02:00
Samantaz Fox
2d7869b48b
Add support for an external signature server (#4772)
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
2024-08-13 20:26:59 +02:00
Samantaz Fox
88b9f17388
Ameba: Fix Naming/VariableNames (#4790)
Related to issue 2231
2024-08-13 20:26:15 +02:00
Emilien Devos
e6c39f9e3a add pot= parameter now required by youtube 2024-08-13 14:37:35 +02:00
Samantaz Fox
5e38ef59da
Ameba: Fix Lint/UselessAssign (#4795)
Related to issue 2231
2024-08-11 13:38:29 +02:00
Samantaz Fox
80ffc442f2
HTML: Add rel="noreferrer noopener" to external links (#4667)
Note: Does not add rel="noreferrer noopener" to:
 * links in channel description
 * links in video descriptions
 * links in video comments

Related to issue 4267
2024-08-11 13:35:57 +02:00
Samantaz Fox
9bf754ed4f
Remove unused methods in Invidious::LogHandler (#4812)
Closes issue 4791
2024-08-11 11:45:56 +02:00
Samantaz Fox
fa6c5158c5
Ameba: Fix Lint/NotNilAfterNoBang (#4796)
Related to issue 2231
2024-08-11 11:45:05 +02:00