Commit Graph

3465 Commits

Author SHA1 Message Date
Fijxu
2d20e73d99
set offset on index for backends status
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.2, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.3, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.16.3, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / lint (push) Waiting to run
2025-05-24 11:06:42 -04:00
Fijxu
20f0710a91
Merge remote-tracking branch 'upstream/master'
Some checks failed
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.3, true) (push) Has been cancelled
Build and release container directly from master / release (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.2, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.1, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.1, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.16.3, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Has been cancelled
Invidious CI / build-docker (push) Has been cancelled
Invidious CI / build-docker-arm64 (push) Has been cancelled
Invidious CI / lint (push) Has been cancelled
2025-05-22 20:16:18 -04:00
Fijxu
4b37d47ebb
Add missing xml.text on "title" element for channels RSS (#5320) 2025-05-22 20:12:54 -04:00
Fijxu
197e4d6f66
feat: config option to change the backend prefix
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.2, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.3, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.16.3, true) (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / lint (push) Waiting to run
2025-05-22 00:39:20 -04:00
Fijxu
f90b092692
restore missing extra_media_csp on CSP header
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.2, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.3, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.16.3, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / lint (push) Waiting to run
2025-05-21 17:03:04 -04:00
Fijxu
7d0f3fab25
chore: change issue URL to the modified source code url set on the config
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.2, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.3, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.16.3, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / lint (push) Waiting to run
2025-05-21 02:27:21 -04:00
Fijxu
75e27c3aa7
fix missing scheme error 2025-05-21 02:00:19 -04:00
Fijxu
55fed710f8
Merge remote-tracking branch 'upstream/master' 2025-05-20 15:14:56 -04:00
syeopite
2c857b5ab6
Remove text captchas from Invidious (#5308)
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).
2025-05-17 16:37:55 -07:00
syeopite
475bf7448a
Add Javascript licence information automatically (#5297) 2025-05-17 16:20:38 -07:00
syeopite
50e0a4361b
Add missing javascript licenses (#5292) 2025-05-17 16:19:21 -07:00
syeopite
6bfb61e9b4
fix: safely access "label" key (#5282) 2025-05-17 16:18:58 -07:00
syeopite
ef07c542dc
fix: pass user to query.process if present (#5277) 2025-05-17 16:18:37 -07:00
syeopite
a9180aa6c1
fix: do not strip '+' character from referer (#5276) 2025-05-17 16:18:15 -07:00
syeopite
4b2f9ffffc
fix: set CSP header after setting preferences of registered users (#5275) 2025-05-17 16:17:43 -07:00
syeopite
64ad97f308
fix(typo): 'Salect' -> 'Select' (#5242) 2025-05-17 16:17:08 -07:00
syeopite
d5cb653fd1
Handle parse errors gracefully on timeline items (#5196) 2025-05-17 16:16:20 -07:00
syeopite
0b23dd12e1
require base_job before the other jobs (#5194) 2025-05-17 16:15:32 -07:00
syeopite
df41cb9588
Update Kemal to 1.6.0 and remove Kilt (#5120) 2025-05-17 16:14:40 -07:00
Fijxu
6376fd55db
Remove text captcha due to textcaptcha.com being down
Fixes https://github.com/iv-org/invidious/issues/5295

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).
2025-05-17 13:17:26 -04:00
Fijxu
b2c3583663
Merge branch 'transcripts-support'
Some checks failed
Build and release container directly from master / release (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.1, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.2, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.0, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.0, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Has been cancelled
Invidious CI / build-docker (push) Has been cancelled
Invidious CI / build-docker-arm64 (push) Has been cancelled
Invidious CI / lint (push) Has been cancelled
From: https://github.com/iv-org/invidious/pull/5298/
2025-05-13 12:35:32 -04:00
syeopite
66dbd750c2
Improve transcript description string ids for i18n 2025-05-10 20:47:52 -07:00
syeopite
6ecae19477
Fix missing transcripts btn when desc is expanded 2025-05-10 20:32:16 -07:00
Fijxu
6fe21a7523
Revert "Update src/invidious/routes/before_all.cr"
This reverts commit aab6ff4bb6.
2025-05-10 23:08:48 -04:00
syeopite
f317e6620a
Fix extraction of transcript headings
Innertube structure was changed
2025-05-10 20:04:07 -07:00
syeopite
b781036404
Add logic to swap languages in transcript widget 2025-05-10 20:04:07 -07:00
syeopite
5ba6baea19
Add UI for transcripts for JS-disabled users
This commit adds a server-side UI template that renders a transcript
element. This is used to render transcripts for users without JS.
2025-05-10 20:04:07 -07:00
syeopite
01b21d9d52
Add logic to request transcripts in watch handler 2025-05-10 20:04:07 -07:00
syeopite
786e40afb0
Add logic to show/hide transcripts without JS 2025-05-10 20:04:07 -07:00
syeopite
654f5fd45e
Add btn in video desc to show transcript 2025-05-10 20:04:06 -07:00
Fijxu
aab6ff4bb6
Update src/invidious/routes/before_all.cr
Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-05-10 23:02:34 -04:00
syeopite
20cf913a4e
Add Javascript licence information automatically
This commit automates the process of documenting the licenses of
Invidious Javascript files through a compile time macro in the
licenses.ecr template file.

This should hopefully help keep the license documentation up-to-date
and allow extensions like LibreJS to always be able to load the latest
Javascript files of Invidious.

Currently only Invidious's first-party Javascript files are supported.
In the future it should be possible to leverage videojs-dependencies.yml
to automatically document the Javascript licenses for
VideoJS and co. as well.
2025-05-10 18:44:53 -07:00
Fijxu
1492453c60
update comment 2025-05-10 16:31:14 -04:00
Fijxu
401bc110d6
fix: set CSP header after setting preferences of registered users
Fixes https://github.com/iv-org/invidious/issues/5142

add reason why extra_media_csp is after reading user preferences from the database and cookies

set media-src after loading database user preferences
2025-05-10 13:26:30 -04:00
Fijxu
30ae222bf2
Add missing javascript licenses 2025-05-09 23:02:19 -04:00
Fijxu
abb5927450
chore: set minified js route on licenses so librejs can detect it
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.2, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / lint (push) Waiting to run
2025-05-09 22:29:54 -04:00
Fijxu
c141705810
fix: restore jslicense (required for librejs to work) on footer 2025-05-09 22:29:53 -04:00
Fijxu
975201a673
chore: set ident back to spaces 2025-05-09 22:29:53 -04:00
Fijxu
4c8b02f5fa
Merge 'Extract footer overhaul from #2215':
From https://github.com/iv-org/invidious/pull/4003

Squashed

commit 5bcc25b2da46e5b21ebc9d11a0963b4df8cd9402
Author: syeopite <syeopite@syeopite.dev>
Date:   Thu Nov 7 20:33:35 2024 -0800

    Reduce footer buffer height

commit 1341f67e85b27103514339c0ab4267dae7e7af09
Author: syeopite <syeopite@syeopite.dev>
Date:   Thu Nov 7 20:29:52 2024 -0800

    Rename project homepage to project website

commit d1b9769d8941e4ce7d95bc2f3a574586da47b3c9
Author: syeopite <syeopite@syeopite.dev>
Date:   Thu Nov 7 20:28:26 2024 -0800

    Add footer buffer only in necessary templates

commit 2c798c945215db683aa4be2e34747ea9f6bf1c8b
Author: syeopite <syeopite@syeopite.dev>
Date:   Wed Mar 13 14:58:29 2024 -0700

    Remove preferences and login link from footer

commit d5571faec5435dff3a1c09d726c983fbc9836bb2
Author: syeopite <syeopite@syeopite.dev>
Date:   Wed Mar 13 14:52:43 2024 -0700

    Add modified disclaimer to version tag

commit a41bedbe64152ce5c51589c2d645276b89f4060a
Author: syeopite <syeopite@syeopite.dev>
Date:   Wed Mar 13 14:50:44 2024 -0700

    Typo

commit 87cdc3b286a80f0a404e4b2891a58febe3aacad7
Author: syeopite <syeopite@syeopite.dev>
Date:   Wed Mar 13 14:48:06 2024 -0700

    Add config option for instance donation link

    Co-authored-by: Arya K <arya@projectsegfau.lt>

commit b5ae452bc5750e14f00d8e16d2fc8b708262fcc3
Author: syeopite <syeopite@syeopite.dev>
Date:   Wed Mar 13 14:38:18 2024 -0700

    Add "Instance" section to footer

commit 001ba71b9101445243d194887adbd0b95852cc54
Author: syeopite <syeopite@syeopite.dev>
Date:   Wed Mar 13 14:01:20 2024 -0700

    Add config to add custom text in the footer

    Co-authored-by: Aural Glow <125497673+auralglow@users.noreply.github.com>

commit 1da6933b8e41be43e0aa703d1f989869cabb56a2
Author: syeopite <syeopite@syeopite.dev>
Date:   Wed Mar 13 13:55:49 2024 -0700

    Add new instance customization section in config

commit dc9697157bca50aab56450ea76aa0ac18da18448
Author: syeopite <syeopite@syeopite.dev>
Date:   Wed Mar 13 13:35:39 2024 -0700

    Add Invidious version to footer

commit 629f95fcbead361f2e260a0a38e0839de7f1d735
Author: syeopite <70992037+syeopite@users.noreply.github.com>
Date:   Sat Sep 16 23:05:38 2023 +0000

    Use instances.invidious.io instead of redirect

    Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com>

commit 3f0ea875c16eb3a87050a9a73bec536be41dde48
Author: syeopite <70992037+syeopite@users.noreply.github.com>
Date:   Sun Jul 30 06:10:18 2023 +0000

    Update locales/en-US.json

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

commit e9639aaef8222a458c0d67d72c18764487ba9750
Author: syeopite <syeopite@syeopite.dev>
Date:   Mon Jul 24 15:11:45 2023 -0700

    Extract and implement footer overhaul from #2215
2025-05-09 22:29:53 -04:00
Fijxu
f52b91c28d
Merge remote-tracking branch 'upstream/master'
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.2, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / lint (push) Waiting to run
2025-05-09 17:13:45 -04:00
Fijxu
b120abdcc5
fix: safely access "label" key
Fixes https://github.com/iv-org/invidious/issues/5095

On some videos, `label` is missing from the video information. Invidious
assumed that the `label` key existed.

Videos with label have this inside `metadataBadgeRenderer`:

```
{"style" => "BADGE_STYLE_TYPE_SIMPLE",
 "label" => "4K",
 "trackingParams" => "COMDENwwGAoiEwiCrebe6JWNAxWIxz8EHSQRFTU="}
```

but other videos, for some reason, look like this:

```
{"icon" => {"iconType" => "PERSON_RADAR"},
 "style" => "BADGE_STYLE_TYPE_SIMPLE",
 "trackingParams" => "CM4DENwwGAsiEwiCrebe6JWNAxWIxz8EHSQRFTU="}
```
2025-05-09 02:58:29 -04:00
Fijxu
65bb1f5ebb
chore: remove unused config options 2025-05-09 00:50:26 -04:00
Fijxu
af13d10730
Merge 'Show message when comments are turned off'
From https://github.com/iv-org/invidious/pull/4051
2025-05-09 00:16:07 -04:00
Fijxu
caa2273bf2
fix(backend switcher): pass referer in URL
Some checks are pending
Build and release container directly from master / release (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.1, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.2, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.0, true) (push) Waiting to run
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Waiting to run
Invidious CI / build-docker (push) Waiting to run
Invidious CI / build-docker-arm64 (push) Waiting to run
Invidious CI / lint (push) Waiting to run
Closes https://git.nadeko.net/Fijxu/invidious/issues/109

This will allow browsers that by default set the referer to the same
page to tracking via the referer header. IceCat browser does this.
2025-05-08 20:27:40 -04:00
Fijxu
4e2f59ba37
feat(routes): redirect to the backend selected at the time of downloading 2025-05-08 17:24:54 -04:00
Émilien (perso)
9e3c0dfd85
fix: fallback first with TVHTML then MWEB
fixes #5273
2025-05-08 19:55:22 +02:00
Fijxu
25eade589f
fix: pass user to query.process if present.
Fixes https://github.com/iv-org/invidious/issues/5097
2025-05-08 03:12:00 -04:00
Fijxu
35896d086b
fix: do not strip '+' character from referer
Fix that a user of my instance (https://inv.nadeko.net) sent me by email.
2025-05-08 01:00:46 -04:00
Fijxu
b9114cbb9d
feat(frontend): config option to disable video downloads 2025-05-08 00:31:03 -04:00
Fijxu
ea587758a5
Merge branch 'graceful-parse-errors'
Some checks failed
Build and release container directly from master / release (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.12.1, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.13.2, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.14.0, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.15.0, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (nightly, false) (push) Has been cancelled
Invidious CI / build-docker (push) Has been cancelled
Invidious CI / build-docker-arm64 (push) Has been cancelled
Invidious CI / lint (push) Has been cancelled
From: https://github.com/iv-org/invidious/pull/5196
2025-05-04 15:32:37 -04:00