Commit Graph

2888 Commits

Author SHA1 Message Date
Samantaz Fox
bcb679e653
Proxy: Handle non-200 HTTP codes on DASH manifests (#4429)
Before this PR, Invidious assumed that fetching the DASH manifest from
YouTube will always be successful and didn't check the status code.

That meant that if YouTube gave a rate-limiting page, invidious would
return an HTTP 200 response with the 'application/dash+xml' Content-Type
header and the YouTube ratelimiting page as the body.

No associated issue
2024-04-26 23:25:54 +02:00
Samantaz Fox
b163afecb7
API: Parse channel's tags (#4294)
Example from an auto generated channel (Minecraft - Topic):
/api/v1/channels/UCQvWX73GQygcwXOTSf_VDVg

{
  ...
  "tags":[
    "Video game","Indie game","Xbox One","New Nintendo 3DS",
    "PS3","Nintendo Switch","Wii U","Fire OS",
    "Mac operating systems","Apple TV","Xbox 360",
    "PlayStation Vita","PS4","Windows","Linux","Nintendo 3DS",
    "iOS","Windows Phone","iPadOS","Java","Android","tvOS",
    "ChromeOS"
  ]
  ...
}

Example from another channel (Mr Beast):
/api/v1/channels/UCX6OQ3DkcsbYNE6H8uQQuVA

{
  ...
  "tags":["mrbeast6000","beast","mrbeast","Mr.Beast","mr"]
  ...
}

No associated issue
2024-04-26 23:20:30 +02:00
Brahim Hadriche
1a2d408d38 Update shorts params 2024-03-31 11:37:13 -04:00
ChunkyProgrammer
0aaa3e6a08 API: Parse channel's tags 2024-03-11 13:31:14 -04:00
Samantaz Fox
619aa3ff05
YoutubeAPI: bump client versions 2024-03-06 21:36:15 +01:00
Samantaz Fox
e8a36985af
API: Add APIHandler back (#4431)
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-19 00:16:17 +01:00
Samantaz Fox
962ce23cc2
WebVTT::Builder: Add logic to escape special chars (#4414)
Note: WebVTT does allow some tags in the cue payload in some circumstances
while this PR just blindly escapes everything:
https://developer.mozilla.org/en-US/docs/Web/API/WebVTT_API#cue_payload_text_tags
2024-02-19 00:16:17 +01:00
Samantaz Fox
e0ce59d3e8
Channels: Add support for multi-image community posts (#4412)
This PR adds a CSS-only image carousel for community posts with more than
one image attached.

Closes issue 3522
2024-02-19 00:16:17 +01:00
Samantaz Fox
c5a3112e49
CSS: expand #contents width on small screens (#4405)
The #contents div now takes the full width on small screens (< 1280px).
All page elements have a little more room, especially the video titles.
2024-02-19 00:16:17 +01:00
Samantaz Fox
d3703baba9
I18n: Add missing translation strings (#4424)
Closes issue 3120
2024-02-19 00:15:44 +01:00
ChunkyProgrammer
26429bee3f make it so interpolation text can be a hash
Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
2024-02-15 21:45:22 -05:00
ChunkyProgrammer
ef6b766b29 Add support for multi image community posts 2024-02-15 21:45:21 -05:00
Samantaz Fox
60f6a345d9
Locales: Fix broken i18Next v3/v4 plurals
Languages impacted: es, fa, pt
2024-02-15 22:12:04 +01: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
5c0b6d8afa
Stats: Fix two swapped function names (#4376)
The function names `count_users_active_6m` and `count_users_active_1m` were
swapped. As the names were swapped on both sides (declaration and use), this
had no functional impact.

No related isse was tracked.
2024-02-12 22:34:13 +01:00
Samantaz Fox
c85b908613
API: Fix missing wildcards after login redirect (#4348)
This PR fixes an issue where the `scopes` parameter would see its wildmark
characters (*) removed during the login page redirection, after that a call
to `/authorize_token` was made while the user was not logged in.

Closes issue 4200
2024-02-12 22:30:48 +01:00
Samantaz Fox
f32764c840
HTML: Preserve playlist in "Watch on YouTube" link (#4342)
It seems that at some point, Youtube changed the URL parameter from `plid`
to `list` and we didn't notice. This fixes that.

Closes #3929
2024-02-12 22:23:44 +01:00
Samantaz Fox
d30dae43fe
HTML: Add title to toggle theme icon (#4320) 2024-02-12 22:20:14 +01:00
Samantaz Fox
1f51255f2f
API: Remove the fields parameter (#4276)
Multiple users have reported that the fields parameter is slowing down API
response times significantly. As most API endpoints are already optimized to
make as few requests as possible to Youtube, there is no point in limiting the
output. Furthermore, the added processing might be part of the broader memory
leak problem (See 1438).

In addition, the small increase in data output is not much of an issue compared
to the huge video proxy that lies next to this API.

No related issue tracked
2024-02-12 22:10:45 +01:00
Samantaz Fox
dcbe52c9fb
Videos: Use start time and end time for clips (#4264)
This PR parses the start and end time for clips.

It also adds a new, dedicated API endpoint (`/api/v1/clips/{id}`) for
retrieving the start and end time of a clip.

Here is a sample response from that new endpoint (`video` is a video object,
as described in https://docs.invidious.io/api/common_types/#videoobject):

GET `/api/v1/clips/UgkxxPM3BRphCAPLP88YoUGuj79KXPfpNNO_?pretty=1`

Response:
```
{
  "startTime": 8842.645,
  "endTime": 8855.856,
  "clipTitle": "✂️ Kirby is pink!",
  "video": {}
}
```

Closes issue 3921
2024-02-12 22:10:16 +01:00
Samantaz Fox
bd5df3af5f
API: Unescape search suggestions (#4218)
Previously, the suggestion were HTML encoded. This PR fixes that.
2024-02-12 22:03:33 +01:00
Samantaz Fox
9bd2072e1d
API: Add playlist and start time to resolve_url
This adds `playlistId` and `startTimeSeconds` to /api/v1/resolveurl if these
informations were returned by Youtube's endpoint.
2024-02-12 22:01:08 +01:00
Samantaz Fox
3b4358dbd4
Extractors: Don't error if AuthorId does not exist (#3869)
Some playlist author's don't have a YouTube channel, so does movies.
This caused various extractors (related videos, search) to fail.

Closes the following issues:
2530, 3349, 3766, 3812, 4133
2024-02-12 21:54:17 +01:00
absidue
72bcd3cc72 Handle non-200 status codes for YouTube DASH manifests 2024-02-12 18:55:15 +01:00
shironeko
6b33820f1f Add missing translation strings
closes #3120
2024-02-08 19:01:19 -05:00
shironeko
98c421e9f5 Fix when video from pubsub is a scheduled event 2024-02-08 18:58:23 -05:00
shironeko
c864a63b6d Fix pubsub feed parsing
similar to what's done in #3793, this is causing an assert on my instance
2024-02-08 17:05:11 -05:00
syeopite
0ad2eff2a4
WebVTT::Builder: Add logic to escape special chars 2024-01-30 15:25:45 -08:00
ThetaDev
c005ada487
fix: prevent censoring of self-harm related search queries (#4403)
* fix: prevent censoring of self-harm related search queries

* fix: yt_filters_spec with new flag
2024-01-29 14:59:25 +01:00
toabr
4a339df5c4 CSS: expand #contents width on small screens 2024-01-27 00:38:47 +01:00
syeopite
1c0b4205d4
Add parameter to disable force_resolve in make_client (#4335)
* Add option to disable force_resolve in make_client

Some websites such as archive.org and textcaptcha.com
does not support IPv6 and as such requests fail when Invidious requests
with IPv6 to those services.

* Reenable force_resolve on pubsub subcribe request

* Make force_resolve false by default in make_client

* Remove missed explicit force_resolve=false
2024-01-10 23:01:00 +00:00
vojkovic
7cca1285aa
Fix two swapped function names 2024-01-06 15:51:31 +08:00
ChunkyProgrammer
7da4a7f72b add null safety to clip parsing 2023-12-26 22:05:09 -05:00
nixos script
0917efd9cb fix issue where scope would be missing the * if the user was not logged in before calling the authorize endpoint
fix #4200
2023-12-21 13:52:19 +08:00
ChunkyProgrammer
090b470bfc fix potential memory leak 2023-12-19 23:07:18 -05:00
guidiasz
87a8207f37 fix: "Watch on YouTube" preserve current playlist 2023-12-18 13:23:55 -03:00
ChunkyProgrammer
fe8b1b4cc4 Add title to toggle theme icon 2023-12-07 11:43:56 -05:00
ChunkyProgrammer
f1edb1d6bf fix related video author when id is empty 2023-12-07 09:39:33 -05:00
Chunky programmer
b5f8b4542a Search: Don't error if AuthorId does not exist 2023-12-07 09:39:33 -05:00
ChunkyProgrammer
b344d98c25 Add API endpoint for Clips 2023-12-07 09:39:04 -05:00
ChunkyProgrammer
8c22e6a640 use start time and endtime for clips 2023-12-07 09:39:03 -05:00
ChunkyProgrammer
6488794218 Unescape search suggestions 2023-12-07 09:36:59 -05:00
Samantaz Fox
07fe648a9c
Remove anti-captcha (#4277) 2023-12-06 18:29:16 +01:00
Samantaz Fox
6da3287e9d
Misc: Fix logic for setting user agent (#4265) 2023-12-06 18:28:12 +01:00
Samantaz Fox
37c2f5caed
Misc: Use #splat method for macro expressions (#4242) 2023-12-06 18:22:50 +01:00
Samantaz Fox
e8a14446af
Videos: Append '&mpd_version=5' to DASH manifest URL (#4196) 2023-12-06 18:20:26 +01:00
Samantaz Fox
9d5fa2bcc4
Helpers: remove JSONFilter logic 2023-11-23 18:30:42 +01:00
Samantaz Fox
9310d09f93
Kemal: remove APIHandler middleware 2023-11-23 18:30:37 +01:00
Samantaz Fox
3a5d408602
Remove leftover functions/specs used by the anti-captcha job 2023-11-20 17:40:31 +01:00
Samantaz Fox
7e363fa3c8
Config: Remove anti-captcha related configs 2023-11-20 17:39:51 +01:00