Commit Graph

1108 Commits

Author SHA1 Message Date
Fijxu
bbec111997 feat(experimental): minify js files using esbuild
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-04-05 03:03:04 -03:00
Fijxu
ce052103e7 deprecate support for external video playback proxy 2025-04-03 03:12:36 -03:00
Fijxu
fd8c40e0da fix: fix wrong invidious companion logic on backends
do not change to another companion if request fails
2025-04-03 03:12:36 -03:00
Fijxu
ddf6802d76 chore: add message if checkbackend job is disabled 2025-03-30 19:19:47 -03:00
Fijxu
7aba1f7ba3 Revert "Merge branch 'add-prometheus-metrics-endpoint'"
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
This reverts commit e5c0f15398 due to
https://github.com/iv-org/invidious/pull/3576#issuecomment-2727898574
, reversing changes made to ecacbab2a5.
2025-03-16 23:51:16 -03:00
Fijxu
e5c0f15398 Merge branch 'add-prometheus-metrics-endpoint'
From https://github.com/iv-org/invidious/pull/3576
2025-03-01 03:39:21 -03:00
Fijxu
bceb7a61ef feat: Detect videoplayback proxy from invidious-companion and add it to the CSP header 2025-02-28 20:06:09 -03:00
syeopite
f3d982a885 Update Kemal to 1.6.0 and remove Kilt
Kilt is unmaintained and the ECR templating logic has been
natively integrated into Kemal with the issues previously seen
having been resolved.

This commit is mostly a precursor to support the next Kemal
release which will add the ability to create error handlers for
raised exceptions.

See https://github.com/kemalcr/kemal/pull/688
2025-02-28 20:04:42 -03:00
Fijxu
27fecf3879 require base_job before the other jobs
The crystal compiler seems to evaluate `require` in an alphabetical way,
so if anyone in the future, wants to add another job and that job is
above `base_job.cr` in alphabetical order, the compiler is going to fail
with `Error: undefined constant: Invidious::Jobs::BaseJob`.

This doesn't fix anything, but it will prevent a future headache.
2025-02-28 20:04:28 -03:00
Fijxu
50fa7de901 Merge remote-tracking branch 'upstream/master' 2025-02-27 02:02:47 -03:00
syeopite
adcdb8cb92 Fix lint and formatting 2025-02-26 14:18:50 -08:00
syeopite
3e329410d1 Add the ability to listen on UNIX sockets (#5112) 2025-02-26 14:04:29 -08:00
syeopite
4ea4878d1a User: Batch notifications together 2025-02-26 13:55:25 -08:00
Fijxu
e76867aaba feat(Database::Videos): built-in video cache and support for multiple caching backends
I did this to get rid of Redis compatible DBs and for speed purposes.
This is considered experimental, but everything works fine from
what I have tested.

Here are some benchmarks using the built-in benchmark library of
crystal:

\# built-in release
cache get  19.79M ( 50.54ns) (± 4.12%)  32.0B/op  fastest
cache insert   7.88k (126.86µs) (± 2.20%)  65.5kB/op  fastest
cache get   4.31k (232.11µs) (± 5.50%)  104kB/op  fastest

\# redis release
cache get  22.27k ( 44.90µs) (± 6.40%)  264B/op  fastest
cache insert   4.74k (211.01µs) (± 4.72%)  65.7kB/op  fastest
cache get   2.51k (399.11µs) (±13.15%)  129kB/op  fastest

---

OP/s are way higher, and memory usage per call is lower, so it's a win
win.
2025-02-26 17:51:54 -03:00
Fijxu
b3e24c703d feat(invidious-companion): use connection pool
From
https://github.com/iv-org/invidious/pull/4985#discussion_r1889356705

Thanks syeopite!
2025-02-21 14:12:03 -03:00
Fijxu
bbc5913b8d feat(database): support for either Redis or PostgreSQL for video cache 2025-02-18 18:11:05 -03:00
Caian Benedicto
b4a6193642 Improve syntax
Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-01-05 09:56:00 +00:00
Fijxu
30c0b5059d refactor CSP and fix non proxied videoplayback due to CSP
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.10.1, true) (push) Has been cancelled
Invidious CI / build - crystal: ${{ matrix.crystal }}, stable: ${{ matrix.stable }} (1.11.2, true) (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 }} (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
Probably fixes https://git.nadeko.net/Fijxu/invidious/issues/65
2024-12-30 19:57:22 -03:00
Fijxu
31219ce196 external proxies: Add more information about the job 2024-12-14 17:18:23 -03:00
Fijxu
a01c8c63d3 tokens: rename Tokens to SessionTokens 2024-12-14 17:17:27 -03:00
Fijxu
58c4d8c951 tokens: use http instead of redis to get the tokens
It should be compatible with github.com/iv-org/youtube-trusted-session-generator
2024-12-14 17:15:17 -03:00
Caian Benedicto
275318dae2 Change socket_binding to a nested configuration in YAML 2024-12-14 15:18:25 -03:00
Caian Benedicto
48d2250024 Unify socket_binding and socket_permissions 2024-12-14 06:53:30 -03:00
Caian Benedicto
b4e930f3bc Change bind_unix to socket_binding, add socket_permissions and config example 2024-12-13 21:50:02 -03:00
Caian Benedicto
d7f5cdc2f9 Merge branch 'master' into unix-sockets 2024-12-13 20:26:52 -03:00
Samantaz Fox
a760b69cb6 Logger: Add color support for different log levels (#4931)
No related issue
2024-11-08 23:28:51 +01:00
Fijxu
e2276ace1b Merge remote-tracking branch 'upstream/master' into master 2024-10-31 20:25:33 -03:00
Samantaz Fox
9957da28dc Proxy: Use connection pools for images (#4326)
Theoretically this should improve memory usage and performance by quite a bit
as we aren't creating a new HTTP::Client and in a turn a new connection for
every image we request from YouTube.

Closes issue 4009
2024-10-30 13:55:28 +01:00
Samantaz Fox
f326bcf8db Add support for using Invidious through a HTTP Proxy (#4270)
Partially addresses issue 301
2024-10-30 13:46:49 +01:00
Fijxu
486c5845cd Config: Also reload env variables 2024-10-30 01:57:06 -03:00
Fijxu
67d7b78ac9 Config: Reload configuration on modification
It detects changes on the config.yml automtically if invidious is
running on linux. If not, the configuration can be reloaded using
`kill -s HUP $(pidof invidious)` or any other tool that sends a SIGHUP
signal to the invidious process.

Closes #16
2024-10-28 13:37:06 -03:00
Fijxu
3cc0dbca01 PubSub: Use external domain for pubsub feeds 2024-10-17 17:02:12 -03:00
Fijxu
eb2670fe49 Tokens: Refresh po_token and visitor_data every 5 seconds
Closes #11
2024-10-13 15:57:51 -03:00
Fijxu
65f3bbcb10 External Proxies: Use list of external videoplayback proxies 2024-10-11 13:50:42 -03:00
Fijxu
8dc0a67be3 Feat: User supplied po_token and visitor_data 2024-10-11 16:50:21 -03:00
Fijxu
eff8673efc Feat: Experimental support for external videoplayback proxies 2024-10-08 18:59:01 -03:00
Fijxu
b1f25a69ad Logger: Add color support for different log levels 2024-10-08 18:59:01 -03:00
Samantaz Fox
7c79ee7cc2 Performance: Improve speed of automatic instance redirection (#4193)
The automatic instance redirection implemented in #1940 fetches a new list of
instances each time someone queries the /redirect endpoint. This is extremely
inefficient...

This PR optimizes all that into a background job that only fetches a single
list every 30 minutes. This should performance quite a bit.

No related issue was opened.
2024-10-08 17:31:20 +02:00
Fijxu
f8ec312328 Logger: Add color support for different log levels 2024-09-19 21:35:52 -03:00
Sophie Tauchert
5d0149844f Batch user notifications together 2024-08-26 21:24:27 +02:00
syeopite
4bc77b81bf Move YTIMG_POOLS to connection_pool.cr 2024-08-24 19:47:40 -07:00
syeopite
480e073fa9 Use HTTP pools for image requests to YouTube 2024-08-24 19:45:52 -07:00
Fijxu
4a2877f28b Merge remote-tracking branch 'upstream/limit-feeds-materialized-views' 2024-08-19 18:29:25 -04:00
Emilien Devos
e476dbe25b limit feeds and delete materialized views 2024-08-14 19:38:54 +02:00
Fijxu
6c2626cf05 Remove old DECRYPT_FUNCTION var 2024-08-10 16:28:31 -04:00
Fijxu
b7430c5a5a Merge branch 'sig_helper' 2024-08-10 16:17:09 -04:00
Samantaz Fox
7798faf234 SigHelper: Make signature server optional and configurable 2024-08-07 23:25:35 +02:00
Samantaz Fox
ec8b7916fa Videos: Make use of the video decoding 2024-07-25 22:13:08 +02:00
Samantaz Fox
a845752fff Jobs: Remove the signature function update job 2024-07-25 22:13:08 +02:00
Emilien Devos
8665a69fee limit feeds and delete materialized views 2024-07-21 13:00:26 -04:00