Commit Graph
56 Commits
Author SHA1 Message Date
Fijxu 07f3894a71 Remove signature helper completely from Invidious (#5550)
* Remove signature helper completely from Invidious

The official way to reproduce video with Invidious now is by using
Invidious Companion which uses Youtube.JS with a Javascript Interpreter
that can successfully decrypt youtube video URLs.

Sig helper has not been used for a long time, is beyond broken and no
one has plans to fix it and maintain it.

* Remove DECRYPT_FUNCTION and shrink player function

* remove `sp = cfr[sp]`

* Improve message
2025-12-06 16:50:59 -03:00
Alex 42d34cd084 Removed specific section from hyperlink in config.cr 2025-09-24 18:54:27 +02:00
Alex 18a8490587 Fixed broken companion hyperlink 2025-09-24 18:54:27 +02:00
Fijxu f9cf70f9d7 Add default playlist preference (#5449)
* Add default playlist preference

Closes https://github.com/iv-org/invidious/issues/5421

* Add option to set default playlist to none

* Move it to player preferences
2025-09-11 11:05:09 -03:00
Emilien cba2adc6ef fix csp + progress proxy + allow omit public_url 2025-09-08 21:34:47 +02:00
Émilien (perso) 0c07e9d27a chore: set dash by default (#5216) 2025-04-04 14:00:29 +02:00
Émilien (perso) 23ff6135bb chore: enforce 16 characters for invidious_companion_key (#5220) 2025-03-26 15:27:59 +01:00
Émilien (perso)andsyeopite 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 3e329410d1 Add the ability to listen on UNIX sockets (#5112) 2025-02-26 14:04:29 -08:00
syeopite 5d9ed95ffd Warn when any top-level config is "CHANGE_ME!!" 2025-01-22 10:34:04 -08:00
Caian Benedictoandsyeopite b4a6193642 Improve syntax
Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-01-05 09:56:00 +00:00
Caian Benedicto 525dea1e2a Add checks for socket path and permissions 2024-12-27 20:58:44 -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
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 82ac9a8609 Preferences: Add option to control preloading of video data (#4122)
This PR adds a configuration option to control the preloading of video data on
page load with the HTML5 'preload'[1] attribute on the `<video>` element.

The option is enabled by default, meaning that the `preload` attribute's value
will be 'auto'. If users want to prevent preloading of video data, they
can disable the option, which will set the attribute value to 'none'.

[1](https://www.w3schools.com/tags/att_video_preload.asp)

Closes issue 4110
2024-10-08 17:38:06 +02:00
Fijxu 17b525f2a6 Logger: colorize_logs false by default 2024-09-27 18:08:21 -03:00
Fijxu d77afdcf00 Logger: Make colorize_logs true by default 2024-09-20 00:32:27 -03:00
Fijxu f8ec312328 Logger: Add color support for different log levels 2024-09-19 21:35:52 -03:00
Samantaz Fox 2d18ff1f80 Add ability to set po_token and visitordata ID (#4789)
This PR adds two new config option, to pass a PO token (config 'po_token') and
a visitor ID (config 'visitor_data') to Youtube. These two strings are required
to play videos using the WEB client.

Warning: These strings gives much more identifiable information to Google!

If the po_token setting is filled in, then the WEB client is used. If not, the
Android client is used. TvHtml5ScreenEmbed will still be used as a fallback.

Script for generating po_token and visitor_data:
https://github.com/iv-org/youtube-trusted-session-generator

Helps with issue 4734
2024-08-13 20:35:43 +02:00
Samantaz Fox 7798faf234 SigHelper: Make signature server optional and configurable 2024-08-07 23:25:35 +02:00
Samantaz Fox a845752fff Jobs: Remove the signature function update job 2024-07-25 22:13:08 +02:00
Emilien Devos 53223f99b0 Add ability to set po_token and visitordata ID 2024-07-24 19:28:47 +02:00
syeopite eb8fcc9e88 Add support for using HTTP proxies 2024-04-28 19:43:17 -07:00
Samantaz Fox 07fe648a9c Remove anti-captcha (#4277) 2023-12-06 18:29:16 +01:00
Samantaz Fox 7e363fa3c8 Config: Remove anti-captcha related configs 2023-11-20 17:39:51 +01:00
syeopite ed8b84ed15 Replace more * in macro with #splat 2023-11-08 00:49:37 -08:00
Thomas Lange bf470704a5 Add option to control preloading of video data
Fix #4110 by adding an option to control the preloading of video data on
page load. If disabled ("false"), the browser will not preload any video
data until the user explicitly hits the "Play" button.

If enabled ("true"), the default behavior will be used, which means the
browser decides how much of the video will be preloaded.
2023-09-26 22:21:12 +02:00
Samantaz Fox 842e9fade5 Captions: Add ability to use Innertube's transcripts API (#4001) 2023-09-18 23:31:56 +02:00
syeopite c5fe96e936 Remove lsquic from codebase 2023-07-26 07:19:12 -07:00
syeopite e4942b188f Integrate transcript captions into captions API 2023-07-23 14:40:09 -07:00
Samantaz Fox ba43365acb Config: Stop if 'hmac_key' is the default value 2023-07-01 19:38:50 +02:00
Samantaz Fox 1647092b3c Config: Make 'hmac_key' mandatory 2023-07-01 19:29:24 +02:00
Émilien Devos 98301a2237 Add ability to disable all user notifications (#3473) 2023-01-05 23:08:05 +00:00
Samantaz Fox 3b39b8c772 Add table cleaning job (#3294) 2022-10-12 10:06:36 +02:00
Jakub Filo 4818b89ab1 Allow to set maximum custom playlist length via a config variable. 2022-08-27 22:36:07 +02:00
Émilien Devos 3d77642a1e Disable decrypt_polling by default + add comment (#3244) 2022-08-06 17:09:10 +00:00
Rob Watson 125997f45f Remove puts statements in config.cr 2022-05-11 10:22:39 +02:00
Samantaz Fox 7f445f6167 Merge pull request #2915 from MathiusD/RefreshChannelsJob-frenquency
Allow configuration of the time between 2 RefreshChannelsJob
2022-02-25 00:04:48 +01:00
Le Jester 897f871f99 Make the history recording optional. 2022-02-23 13:03:21 +01:00
Féry Mathieu (Mathius) e60a1836fe Lint config.example.yml and config.cr
Follow lint indications :
- https://github.com/iv-org/invidious/pull/2915#discussion_r812396203
- https://github.com/iv-org/invidious/pull/2915#discussion_r812396807
2022-02-22 23:19:59 +01:00
Féry Mathieu (Mathius) f109d812a1 Move TimeSpanConverter with another Converters
Follow indications :
https://github.com/iv-org/invidious/pull/2915#discussion_r811373953
2022-02-22 01:34:19 +01:00
Féry Mathieu (Mathius) 5d2f2690e2 Lint config properties
Follow lint indications :
https://github.com/iv-org/invidious/pull/2915#discussion_r811375584
2022-02-22 00:59:55 +01:00
Féry Mathieu (Mathius) dfab62ce48 Rename new property to channel_refresh_interval
Follow indications :
https://github.com/iv-org/invidious/pull/2915#discussion_r811373503
2022-02-22 00:46:26 +01:00
Féry Mathieu (Mathius) 18197e7e3e Lint description of channel_refresh_time 2022-02-21 11:13:24 +01:00
Féry Mathieu (Mathius) f75a81c9ee Make configurable time between each RefreshChannelsJob 2022-02-21 10:53:20 +01:00
Dimitris Apostolou 7e4690e43c Fix typos 2022-02-07 14:57:14 +02:00