1079 Commits

Author SHA1 Message Date
syeopite
7901906092
Merge companion and standard pool into one 2025-04-10 00:33:41 -07:00
syeopite
ef07f786f2
Add config to set connection pool checkout timeout 2025-04-09 14:47:20 -07:00
syeopite
247254b3bb
Refactor connection pooling logic
- Remove duplication between standard and companion pool
- Raises a wrapped exception on any DB:Error
- Don't use a non-pool client when client fails
- Ensure that client is always released
- Add documentation to various pool methods
2025-04-09 14:42:17 -07:00
syeopite
78b7db17f4
Add support for setting max idle http pool size 2025-04-09 13:07:01 -07:00
Émilien (perso)
70ff463cc6
Add invidious companion support (#4985)
* add support for invidious companion

* redirect latest_version and dash manifest to invidious companion

* fix Shadowing outer local variable `response`

* fixing condition for Content-Security-Policy

* throw error if inv_sig_helper and invidious_companion used same time

* Use sample instead of Random.rand

Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>

* Remove debug puts functions

Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>

* modify the description for config.example.yaml about invidious companion

* move config checks for invidious companion

* separate invidious_companion logic + better config.yaml config

* fixing "end" misplacement

* fix linting + use .empty?

* crystal handle decompression already by itself

* fix download function when invidious companion used

* fix linting

* invidious companion always used so always add CSP and redirect latest_version

* apply all the suggestions + rework invidious_companion parameter

* format watch.cr

* fix ameba Redundant use of `Object#to_s` in interpolation

* add ability for invidious companion to check request from invidious

* Better document private_url and public_url

* Better doc for invidious_companion_key

* !empty? to present?

* skip proxy for invidious companion

* fixing format

* missing ,

* add companion pooling http

* fix: don't use http proxy when sending requests to companion

* fix: logic where we want to have the invidious logic if companion is not used

* chore: remove baseurl usage from invidious companion

* chore: change from inv-sig-helper to companion for required playback

* fix: use puts + add warning for inv-sig-helper deprecated

---------

Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-03-13 16:44:00 +01:00
syeopite
5c8b4eb379
Warn when po_token, visitor_data and/or inv-sig-helper is not configured (#5202)
* Warn when required configs for playback is missing

* Add link to documentation in warnings

* Direct users to /installation instead
2025-03-12 10:11:17 +01: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
Caian Benedicto
b4a6193642
Improve syntax
Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-01-05 09:56:00 +00: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
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
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
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
syeopite
cff25a7b25
Refactor instance fetching logic into separate job 2024-05-22 13:22:00 -07:00
syeopite
eb8fcc9e88
Add support for using HTTP proxies 2024-04-28 19:43:17 -07:00
Samantaz Fox
7b84bdb29b
API: Add APIHandler back
This handler should no have been removed in 4276, as it adds the required CORS
header (Access-Control-Allow-Origin) for public acces to the API.

Thanks to iBicha for noticing this!
2024-02-13 21:05:26 +01:00
Samantaz Fox
9310d09f93
Kemal: remove APIHandler middleware 2023-11-23 18:30:37 +01:00
syeopite
c5fe96e936
Remove lsquic from codebase 2023-07-26 07:19:12 -07:00
Samantaz Fox
d7568ac45a
Remove old warning code about unconfigured 'hmac_key' 2023-07-01 21:53:56 +02:00
Samantaz Fox
3444117818
User: Remove broken Google login (various constants) 2023-06-11 16:34:59 +02:00
Emilien Devos
372192eabc warn about hmac key deadline 2023-06-04 17:30:23 +02:00
Samantaz Fox
c7876d564f
Comments: add 'require' statement for a dedicated folder 2023-05-25 22:53:53 +02:00
Samantaz Fox
1af846e58c
API: make /api/v1/videos respect the 'local' parameter 2023-01-15 17:18:34 +01:00
Samantaz Fox
8e8ca4fcc5
Prepare to create a 'Channel' module 2022-12-22 16:13:34 +01:00
Samantaz Fox
87a5d70062
videos: move API's JSON structure to a dedicated module 2022-10-31 20:09:04 +01:00
Samantaz Fox
88141c459c
videos: move formats structure to a separate file/module 2022-10-31 20:09:04 +01:00
Samantaz Fox
3b39b8c772
Add table cleaning job (#3294) 2022-10-12 10:06:36 +02:00
Samantaz Fox
848a60aa9b
routes: remove useless 'locale' variable in error 505 handler 2022-08-10 01:01:31 +02:00
Samantaz Fox
88ea794fdb
routes: move error 404 logic to its own module 2022-08-10 01:00:44 +02:00
Samantaz Fox
870350fd61
routes: move before_all logic to its own module 2022-08-10 00:55:58 +02:00
Samantaz Fox
1e25894f7e
routing: move the remaining routes registration to a wrapper function 2022-08-10 00:48:09 +02:00
Samantaz Fox
223e74569a
routing: move feed routes registration to Invidious::Routing 2022-08-10 00:46:35 +02:00
Samantaz Fox
0a4d793556
routing: move search routes registration to Invidious::Routing 2022-08-10 00:31:15 +02:00
Samantaz Fox
5503914abe
routing: move playlist routes registration to Invidious::Routing 2022-08-10 00:26:41 +02:00
Samantaz Fox
906466d7fb
routing: move watch/embed routes registration to Invidious::Routing 2022-08-10 00:22:40 +02:00
Samantaz Fox
e2532de766
routing: move image proxy routes registration to Invidious::Routing 2022-08-10 00:20:04 +02:00
Samantaz Fox
3ac4390d11
routing: move channel routes registration to Invidious::Routing 2022-08-10 00:14:26 +02:00
Samantaz Fox
389ae7a573
routing: register playback routes with a function, rather than a macro 2022-08-10 00:10:29 +02:00