Commit Graph

3318 Commits

Author SHA1 Message Date
Fijxu fdf0a25b9e Add Livestreams to trending page (#5480) 2025-10-16 17:31:48 -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
Fijxu ba02a4cdf5 Prevent player microformat from being overwritten by the next microformat (#5453)
* Prevent player microformat from being overwritten by the next microformat

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

The player microformat is what we need to get the published date,
premiere timestamp, allowed regions and more information of the video.

Youtube introduced a new `microformat.microformatDataRenderer` in the
next endpoint which overwrote the player microformat
`microformat.playerMicroformatRenderer` when merged

* Update src/invidious/videos/parser.cr

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

---------

Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-09-08 17:16:22 -03:00
Emilien cf2dfbb75d chore: remove debug 2025-09-08 21:34:47 +02:00
Emilien 21c13bba9d chore: use api captions from companion when available 2025-09-08 21:34:47 +02:00
syeopite 5e9d51c06e Refactor FilteredCompressHandler to inherit from stdlib
This changes its behavior to align with the stdlib variant in that
compression is now delayed till the moment that the server begins to
send a response.

This allows the handler to avoid compressing empty responses,and
safeguards against any double compression of content that may occur
if another handler decides to compressi ts response.

This does however come at the drawback(?) of it now removing
`content-length` headers on requests if it exists; since compression
makes the value inaccurate anyway.

See: https://github.com/crystal-lang/crystal/pull/9625
2025-09-08 21:34:47 +02:00
Emilien 1653dd629e fix formatting 2025-09-08 21:34:47 +02:00
Emilien cba2adc6ef fix csp + progress proxy + allow omit public_url 2025-09-08 21:34:47 +02:00
Emilien 42b955d713 chore: add the suggestions 2025-09-08 21:34:47 +02:00
Emilien 324a416fd4 initial support for base_url with invidious companion + proxy invidious_companion 2025-09-08 21:34:47 +02:00
syeopite fd8dc93569 Show message when connection to the database is not possible (#5346) 2025-08-23 04:04:06 -07:00
syeopite 67f93e55d8 Fix "ex" variable collision in invidious.cr
The exception handling for database connections results in an
`ex` variable which Ameba sees as overshadowing the `ex` used by the
`ex` block arg used to define the HTTP status code 500 handler below.

Although this is a non-issue since the db connection exception handling
will cause Invidious to exit, Ameba's nature as a static checker means
that it isn't aware of this.

The simplest fix without a dirty ameba ignore comment is to rename `ex`
within the Kemal handler block below, since `ex` within a begin rescue
block is a Crystal convention that will also cause Ameba to raise when
not adhered to.
2025-08-23 03:35:59 -07:00
syeopite f35f529adc Videos: Fix missing .id to retrieve first playlist video ID (#5366) 2025-08-23 03:30:00 -07:00
syeopite 6badb80082 Channels: Fix fetching channel playlists (#5418) 2025-08-23 03:26:49 -07:00
syeopite 41e0e77d33 HTML: Add Missing Noreferrers (#5368) 2025-08-23 03:23:05 -07:00
syeopite 9ebc76462f Channels: Fix fetching of individual community posts (#5361) 2025-08-23 03:20:04 -07:00
syeopite 0308acb624 Videos: Add fallback to TvSimply client (#5345) 2025-08-23 03:18:41 -07:00
syeopite cac2397494 YTAPI: Add TvSimply client (#5344) 2025-08-23 03:17:28 -07:00
syeopite cf640d808e YtAPI: Bump client versions (#5325) 2025-08-23 03:16:55 -07:00
Kristian Vos dd8086e6d9 fix: fetching channel playlists returned 500 error 2025-08-13 15:43:54 +02:00
ChunkyProgrammer 803311713d make sort_by code more legible 2025-06-27 11:38:08 -04:00
epicsam123 64ac3b5203 add missing noreferrers 2025-06-26 18:40:06 -04:00
Samantaz Fox b0c9f87fbe Fix missing .id to retrieve first playlist video ID
This was missed in the review of PR 5196
2025-06-26 19:09:52 +00:00
ChunkyProgrammer f8febbe2b2 format changes 2025-06-25 23:53:07 -04:00
ChunkyProgrammer 436f955e0f update fetch_community_post_comments protobuf to match currently used protobuf, add sort_by option 2025-06-25 23:34:30 -04:00
ChunkyProgrammer 4155f15bf7 update resolve_url api to better support new post endpoint 2025-06-25 23:33:28 -04:00
ChunkyProgrammer b9171d9dab Update protobuf for individual community post 2025-06-25 22:35:16 -04:00
ChunkyProgrammer f3f6937ffc Fix community tab not loading 2025-06-25 22:22:30 -04:00
Fijxu 8723fdca06 Update src/invidious.cr
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2025-06-21 12:02:32 -04:00
Fijxu d51e1cb051 remove fallback to TV client 2025-06-15 17:45:53 -04:00
Fijxu cf0a68bd77 store adaptiveFormats data into a variable 2025-06-15 17:43:07 -04:00
Fijxu 8cd9d53fb1 show message when connection to the database is not possible 2025-06-12 18:44:01 -04:00
Fijxu 01cdb384e0 add suggestions from syeopite 2025-06-12 17:25:19 -04:00
Fijxu b1e7e0c45e replace url by signatureCipher if url is not present 2025-06-12 16:18:01 -04:00
Fijxu 0c96e0977f check for signatureCipher too 2025-06-12 16:07:58 -04:00
Fijxu 37be513e14 Add fallback to TvSimply client 2025-06-12 01:25:59 -04:00
Fijxu 4daf1f0818 Add TvSimply client
Data taken from: https://github.com/LuanRT/YouTube.js/commit/8cf658151fc4e4266fadfb7e53dd5db3db693355, https://github.com/LuanRT/YouTube.js/commit/689fb0b90edab6f0e4326a35144541d68f72fe01 and https://github.com/LuanRT/YouTube.js/commit/b15f623dab3acb44eaef33175df2d22d35be2979
2025-06-12 01:24:45 -04:00
syeopite df8839d1f0 Make base-Invidious video info extraction more resilient (#5312)
Try next fallback client if one raises

Convert `dig` to `dig?`

Optimize companionless stream retrieval
2025-05-28 20:18:51 +00:00
Fijxu 4b37d47ebb Add missing xml.text on "title" element for channels RSS (#5320) 2025-05-22 20:12:54 -04:00
Fijxu 09d342b84d Update src/invidious/yt_backend/youtube_api.cr
Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-05-22 17:55:46 -04:00
Fijxu 3a8d4f333f update IOS_APP_VERSION 2025-05-22 17:17:01 -04:00
Fijxu 97354adf0f Update src/invidious/yt_backend/youtube_api.cr
Co-authored-by: syeopite <70992037+syeopite@users.noreply.github.com>
2025-05-22 17:15:45 -04:00
Fijxu 6497e1c418 YtAPI: Bump client versions 2025-05-22 16:06:13 -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