5983 Commits

Author SHA1 Message Date
dependabot[bot]
0c3d3e8f8a
chore(deps): bump actions/stale from 10 to 11 (#5890)
Bumps [actions/stale](https://github.com/actions/stale) from 10 to 11.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10...v11)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-version: '11'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-03 22:55:13 +02:00
Émilien (perso)
1a3cb60282
feat: add support for SOCKS5 proxy (#5865) 2026-08-03 22:43:18 +02:00
Fijxu
cb88a805e5
feat: allow setting videojs max buffer length via config.yml (#5876) 2026-08-03 15:52:50 -04:00
Fijxu
b4b6e992fc
fix: fix rendered links and timestamps in video descriptions (#5878)
* Revert "Fix disappearing end of the comments with emoji (#5587)"

This reverts commit 86c425b43f75dd1f22034bbfbd99476651661348.

* fix: fix rendered links and timestamps in video descriptions
2026-08-03 15:43:50 -04:00
Fijxu
9c70265a9a
fix: add missing HTML.escape call for commit 4501c9d 2026-08-03 15:24:47 -04:00
syeopite
4501c9df9c
Show message when comments are turned off (#4051)
* Add error message when comments are disabled

* Add btn to try reddit comments when yt is disabled

* Escape warning messages for disabled comments

* Add missing semicolons

* Update comment detection to not use msg renderer

* Use short syntax for comment entry-point detection

Co-authored-by: Samantaz Fox <coding@samantaz.fr>

* Condense try-reddit-comments-link HTML in player.js

Co-authored-by: Samantaz Fox <coding@samantaz.fr>

* Improve locale keys for comments disabled messages

Co-authored-by: Samantaz Fox <coding@samantaz.fr>

* Remove extra whitespace

* Use button instead of anchor for try reddit link

* Request Reddit comm when yt disabled during nojs=1

* Change order of commentsEnabled in parse results

* Lint

* Rebase error

* update the naming of the comments section in Innertube

Downstreamed from 36ac67610d

---------

Co-authored-by: Samantaz Fox <coding@samantaz.fr>
Co-authored-by: Fijxu <fijxu@nadeko.net>
2026-08-03 15:18:13 -04:00
TheFrenchGhosty
986471320d
Enable the new locales translated at more than 20% (#5882)
* Enable the new locales translated at more than 20%

* Align all the comments on column 43
2026-08-03 19:34:57 +02:00
Fijxu
47b5d79ec7
fix: also fix comments community posts. (#5874)
Community posts comments still preserve the old author thumbnails
format that has an Array of thumbnails. I forgot to check that as I had
no idea `comments_youtube.cr` was also used for community posts comments

```json
"authorThumbnail": {
    "thumbnails": [
        {
            "url": "//yt3.googleusercontent.com/ytc/AIdro_m9CJFVl3bEWvGnNnN4G9ErBO2lTpKePWCjx_FQtLWaDww=s32-c-k-c0x00ffffff-no-rj-mo",
            "width": 32,
            "height": 32
        },
        {
            "url": "//yt3.googleusercontent.com/ytc/AIdro_m9CJFVl3bEWvGnNnN4G9ErBO2lTpKePWCjx_FQtLWaDww=s48-c-k-c0x00ffffff-no-rj-mo",
            "width": 48,
            "height": 48
        },
        {
            "url": "//yt3.googleusercontent.com/ytc/AIdro_m9CJFVl3bEWvGnNnN4G9ErBO2lTpKePWCjx_FQtLWaDww=s76-c-k-c0x00ffffff-no-rj-mo",
            "width": 76,
            "height": 76
        }
    ],
    "accessibility": {
        "accessibilityData": {
            "label": "SomeOrdinaryGamers"
        }
    }
},
```
2026-08-02 21:09:15 -04:00
Emilien
ce6d2d6d7e chore: fix some usability 2026-08-03 02:50:51 +02:00
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