5924 Commits

Author SHA1 Message Date
Emilien
240c8f0f22 chore: make it compatible with socks proxy 2026-08-03 02:50:51 +02:00
Emilien
a794618d4e fix: auto hide player bar 2026-08-03 02:50:51 +02:00
Emilien
2b32cdb4f3 fix: use external bg solver 2026-08-03 02:50:51 +02:00
Emilien
2cc3b61cb7 feat(sabr): fetch player response via Onesie (WEB client)
Replace the plain /youtubei/v1/player request (made through the proxy,
and therefore bound to the proxy's egress IP) with an encrypted Onesie
request using the WEB client. Onesie is proxied by YouTube's "trusted
bandaid", so the returned player response - and the server_abr_streaming_url
inside it - is not tied to our egress IP. Media is still pulled over SABR
(sabr_scheme_plugin.js); only how the player response is obtained changes.

- sabr_onesie.js: new module, window.fetchOnesiePlayerResponse(). Builds the
  WEB player request, encrypts it (OnesieInnertubeRequest + OnesieRequest),
  POSTs to the onesie endpoint through /proxy, parses ONESIE_HEADER/ONESIE_DATA
  UMP parts, gunzips/decrypts, returns the raw player response JSON. Adapted
  from googlevideo/examples/onesie-request and invidious-secret-companion's
  WEB-client variant.
- sabr_helpers.js: add decryptResponse() (AES-CTR + HMAC verify), companion to
  the existing encryptRequest().
- sabr_loader.js: expose window.YT so a VideoInfo can be built from the raw
  onesie player response.
- sabr_player.js: in loadVideo(), fetch the player response via Onesie and wrap
  it in new YT.VideoInfo(...); fall back to innertube.getInfo() on failure.
- player.ecr: load sabr_onesie.js before sabr_player.js.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 02:50:51 +02:00
Emilien
5185487eb3 fix(sabr): correct per-segment URIs and control-bar play button size
Segment index parsers (mp4/webm) declared the per-segment URI array with
`var` inside the loop, so every SegmentReference's getUris() closure
captured the same function-scoped binding and returned the LAST segment's
URL. YouTube received the final segment's startTimeMs/sq for every
segment, replied with policy-only UMP (no media), and the player looped
forever on a black screen ("SABR throttled by YouTube"). Use `let`
(block-scoped, fresh per iteration) to match FreeTube's `const`.

Also scope the big centered play button styling to
`.shaka-play-button-container`; the bare `.shaka-play-button` selector
also matched the control-bar play button (48px siblings), oversizing it
to ~54px and pushing it out of alignment.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-03 02:50:51 +02:00
Emilien
a213cd1697 fix: cap SABR reloads at 3 to prevent infinite backoff loop on throttled videos 2026-08-03 02:50:51 +02:00
Emilien
0e1c46b207 perf: parallelize Shaka init with network calls, defer scripts, preconnect, fix shaka 5 spinner CSS 2026-08-03 02:50:51 +02:00
Emilien
660dad9dbe fix: drop preferredAudio config (shaka 5 expects non-string type) 2026-08-03 02:50:51 +02:00
Emilien
b25343551d fix: align shaka 5 player config keys (preferredAudio, manifest.disableVideo) 2026-08-03 02:50:51 +02:00
Emilien
bdec1cba12 Re-engineer SABR: port FreeTube sabr: scheme + manifest parser (Shaka 5.1.10), companion-optional watch page, no esm.sh 2026-08-03 02:50:51 +02:00
Emilien
eab8265d3f Layer /next endpoint fallback for companion-optional watch page (PR #5003 v2) 2026-08-03 02:50:51 +02:00
Emilien
e70981ccb0 chore: filter out xtags
as explained in https://github.com/LuanRT/googlevideo/issues/43#issuecomment-3735272817
2026-08-03 02:50:51 +02:00
Emilien Devos
95c68548d6 chore: very initial poc 2026-08-03 02:50:50 +02:00
Emilien
fe706d125b feat: add support for SOCKS5 proxy 2026-08-03 02:50:17 +02:00
Fijxu
711817018a
chore: fix typo in .gitignore 2026-08-02 18:21:18 -04:00
Fijxu
e80fae77cc
chore: add invidious.o file to .gitignore 2026-08-02 17:58:10 -04:00
Fijxu
51723b6331
chore: remove pkg-config package from package.nix
This package makes it conflict with the dependencies needed to build
Invidious (openssl, libpcre, etc). crystalline can work perfectly
without it tho, but it was added in the first place because crystalline
was trying to invoke it.
2026-08-02 17:51:07 -04:00
Fijxu
d30a1f3e17
chore: remove -Dpreview_mt from Makefile as it has been deprecated by the Crystal compiler. (#5872)
Crystal 1.21.0 now features execution contexts, they do not longer support (and recommend) the -Dpreview_mt build flag. -Dpreview_mt also worked really bad and it made Invidious to hang on high load, so it was never useful.

https://crystal-lang.org/2026/07/16/1.21.0-released/#execution-contexts
2026-08-02 17:20:57 -04:00
Fijxu
54f20d01cb
Translations update from Hosted Weblate (#5474) 2026-08-02 17:13:33 -04:00
Fijxu
2acee823b5
chore: remove -Dpreview_mt from Makefile as it has been deprecated by the Crystal compiler.
Crystal 1.21.0 now features execution contexts, they do not longer support (and recommend) the `-Dpreview_mt` build flag. It also worked really bad and it made Invidious to hang on high load.
2026-08-02 16:54:22 -04:00
Hosted Weblate
e709fcfb49
Add Sign Languages translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Rafael Mexes <rafaelmexespangaubanyau01@gmail.com>
2026-08-02 22:30:05 +02:00
Hosted Weblate
dc381c7b02
Update Norwegian Bokmål translation
Update Norwegian Bokmål translation

Update Norwegian Bokmål translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Telaneo <post@telaneo.net>
2026-08-02 22:30:04 +02:00
Hosted Weblate
45f50b15ef
Update Alemannic translation
Update Alemannic translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lenny Angst <lenny@familie-angst.ch>
2026-08-02 22:30:04 +02:00
Hosted Weblate
34beafeeec
Update Chinese (Simplified Han script) translation
Update Chinese (Simplified Han script) translation

Update Chinese (Simplified Han script) translation

Update Chinese (Simplified Han script) translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
2026-08-02 22:30:03 +02:00
Hosted Weblate
14866656bd
Update Chinese (Traditional Han script) translation
Update Chinese (Traditional Han script) translation

Update Chinese (Traditional Han script) translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
2026-08-02 22:30:03 +02:00
Hosted Weblate
1cf00ac69b
Update Portuguese (Portugal) translation
Co-authored-by: António Oliveira <antonio.oliveira5487@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-02 22:30:02 +02:00
Hosted Weblate
ed068d3d8c
Update Slovenian translation
Update Slovenian translation

Co-authored-by: Damjan Gerl <damjan@damjan.net>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-02 22:30:02 +02:00
Hosted Weblate
602670f441
Update Korean translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: xrfmkrh <rF3nMd7sRKezjF2vcEQo@protonmail.com>
2026-08-02 22:30:01 +02:00
Hosted Weblate
9c39cadc6e
Update Albanian translation
Update translation files

Updated by "Remove blank strings" hook in Weblate.

Update Albanian translation

Update translation files

Updated by "Remove blank strings" hook in Weblate.

Update Albanian translation

Update Albanian translation

Update Albanian translation

Co-authored-by: Andrea Toska <toskaandrea@gmail.com>
Co-authored-by: Besnik Bleta <besnik@programeshqip.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/invidious/translations/
Translation: Invidious/Invidious Translations
2026-08-02 22:30:01 +02:00
Hosted Weblate
d2d3d16b80
Update Finnish translation
Update Finnish translation

Update Finnish translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Patrik Selin <patrik.selin@gmail.com>
Co-authored-by: Tuomas Hietala <tuomas.hietala@iki.fi>
2026-08-02 22:30:01 +02:00
Hosted Weblate
e107081ecc
Update Persian translation
Co-authored-by: Danial Behzadi <dani.behzi@ubuntu.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-02 22:30:00 +02:00
Hosted Weblate
cdec292bbe
Update Swedish translation
Update Swedish translation

Update Swedish translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Joel A <joeax910@student.liu.se>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
2026-08-02 22:30:00 +02:00
Hosted Weblate
476d05b7cc
Update French translation
Update French translation

Update French translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: I-I-IT <weblate.hut787@aleeas.com>
Co-authored-by: John Kindle <idp-portal.suse.com.dwindle414@aleeas.com>
Co-authored-by: Tristan B <tristanb0@users.noreply.hosted.weblate.org>
2026-08-02 22:29:59 +02:00
Hosted Weblate
783c99b266
Update Spanish translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Nicolás Pérez <ccnicolasperez@gmail.com>
2026-08-02 22:29:59 +02:00
Hosted Weblate
72f1208431
Update Dutch translation
Update Dutch translation

Update Dutch translation

Co-authored-by: Dick Groskamp <dikgro@yahoo.co.uk>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-02 22:29:58 +02:00
Hosted Weblate
0c9d29a913
Update Indonesian translation
Co-authored-by: Arif Budiman <arifpedia@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-02 22:29:58 +02:00
Hosted Weblate
16b2ca02ef
Update Arabic translation
Update Arabic translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Rex_sa <rex.sa@pm.me>
2026-08-02 22:29:57 +02:00
Hosted Weblate
8e55c8e9e7
Update Italian translation
Update Italian translation

Update Italian translation

Update Italian translation

Update Italian translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Random <random-r@users.noreply.hosted.weblate.org>
2026-08-02 22:29:57 +02:00
Hosted Weblate
c3e3992e44
Update Polish translation
Update Polish translation

Update Polish translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthaiks <kitynska@gmail.com>
2026-08-02 22:29:56 +02:00
Hosted Weblate
b4ac053d4d
Update Croatian translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Milo Ivir <mail@milotype.de>
2026-08-02 22:29:56 +02:00
Hosted Weblate
469751873c
Update Armenian translation
Add Armenian translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Maximaus <mikurasua@gmail.com>
2026-08-02 22:29:55 +02:00
Hosted Weblate
321597cb2a
Update Icelandic translation
Update Icelandic translation

Update Icelandic translation

Update Icelandic translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Sveinn í Felli <sv1@fellsnet.is>
2026-08-02 22:29:55 +02:00
Hosted Weblate
005b064d09
Update Portuguese translation
Update Portuguese translation

Update Portuguese translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Sergio Marques <so.boston.android@gmail.com>
2026-08-02 22:29:54 +02:00
Hosted Weblate
2f607b6263
Update Czech translation
Update Czech translation

Update Czech translation

Update Czech translation

Co-authored-by: Fjuro <fjuro@alius.cz>
Co-authored-by: Fjuro <fjuro@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jaroslav Lichtblau <l10n@lichtblau.cz>
2026-08-02 22:29:54 +02:00
Hosted Weblate
ae039fd60a
Update Catalan translation
Update Catalan translation

Update Catalan translation

Update Catalan translation

Co-authored-by: Ecron <ecron_89@hotmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Xusi Fons <xusi@keemail.me>
2026-08-02 22:29:54 +02:00
Hosted Weblate
e041ac1208
Update Japanese translation
Update Japanese translation

Update Japanese translation

Co-authored-by: Himmel <himmel@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: maboroshin <maboroshin@users.noreply.hosted.weblate.org>
2026-08-02 22:29:53 +02:00
Hosted Weblate
d269559587
Update Ukrainian translation
Update Ukrainian translation

Co-authored-by: Denys Nykula <nykula@ukr.net>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-02 22:29:53 +02:00
Hosted Weblate
db5b60f770
Update Belarusian translation
Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Update Belarusian translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Pavel Miniutka <pavel.miniutka@gmail.com>
2026-08-02 22:29:52 +02:00
Hosted Weblate
642a21ca4a
Update Russian translation
Update Russian translation

Update Russian translation

Co-authored-by: Artyom Rybakov <rib.artem@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2026-08-02 22:29:52 +02:00
Hosted Weblate
218d557899
Update Estonian translation
Update Estonian translation

Update Estonian translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org>
2026-08-02 22:29:51 +02:00