Commit graph

5242 commits

Author SHA1 Message Date
syeopite 0224162ad2
Rewrite transcript logic to be more generic
The transcript logic in Invidious was written specifically
as a workaround for captions, and not transcripts as a feature.

This commit genericises the logic a bit as so it can be used for
implementing transcripts within Invidious' API and UI as well.

The most notable change is the added parsing of section headings
when it was previously skipped over in favor of regular lines.
2024-06-11 18:23:01 -07:00
meatball 04ca64691b Make solution complaint with spec 2024-05-30 22:37:55 +02:00
meatball 5957523624 Improve code quallity 2024-05-30 22:13:30 +02:00
meatball 629599f940 Fix change in parser file 2024-05-30 21:57:15 +02:00
meatball 31ad708206 fix: Handle nil value for genreUcid in Video struct 2024-05-30 21:56:33 +02:00
Émilien (perso) 1ae14cc224
move helm chart to a dedicated github repository (#4711) 2024-05-27 00:40:43 +02:00
absidue 3b773c4f77 Fix missing commas 2024-05-14 19:02:41 +02:00
absidue 57e606cb43 Add back missing resolution field 2024-05-14 19:02:41 +02:00
absidue f57aac5815 Fix the missing p in the quality labels.
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2024-05-14 19:02:41 +02:00
absidue 71a821a7e6 Return actual height, width and fps for streams in /api/v1/videos 2024-05-14 19:02:32 +02:00
Fijxu e0d0dbde3c
API: Check if playlist has any videos on it.
Invidious assumes that every playlist will have at least one video
because it needs to check for the `index` key. So if there is no videos
on a playlist, there is no `index` key and Invidious throws
`Index out of bounds`
2024-05-13 21:07:46 -04:00
Fijxu 90fcf80a8d
Handle playlists cataloged as Podcast
Videos of a playlist cataloged as podcast are called episodes therefore
Invidious was not able to find `video` in the `text` value inside the
stats array.
2024-05-13 19:39:46 -04:00
ulmemxpoc c4fec89a9b
Apply suggestions from code review 2024-05-10 11:23:11 -07:00
Fijxu 9d66676f2d
Use full URL in the og:image property. 2024-05-01 22:21:18 -04:00
ulmemxpoc f696f96824 Add rel="noreferrer noopener" to external links 2024-04-30 03:40:19 +00:00
Samantaz Fox 2fdb6dd644
CI: Bump Crystal version in docker too 2024-04-27 21:02:37 +02:00
Samantaz Fox 470245de54
YtAPI: Remove API keys like official clients 2024-04-27 20:48:42 +02:00
Samantaz Fox b0ec359028
CI: Bump Crystal version matrix 2024-04-27 20:01:19 +02:00
Samantaz Fox eda7444ca4
Update changelog 2024-04-27 00:17:01 +02:00
Samantaz Fox 79b342aee5
Rename legacy changelog file 2024-04-27 00:14:46 +02:00
Samantaz Fox 0ab6d9e748
Videos: Use android test suite client (#4650)
"Temporary" fix, until a better and more permanent solution is found.

Closes issue 4584
2024-04-26 23:54:24 +02:00
Samantaz Fox 6f889dc695
Trending: Un-nest category if this is the only one (#4600)
Trending music was returning less than 24 videos which was getting
filtered out. Since multiple categories only appears on the default
trending page, we don't need to do that filtering for Music, Gaming or movies.

Closes issue 4596
2024-04-26 23:52:44 +02:00
Samantaz Fox 8eaaeb1c74
API: Add bitrate to formatStreams too (#4590)
Before this PR, the bitrate was only returned for the 'adaptiveFormats'.
They are now also returned the 'formatStreams'.

No linked issue
2024-04-26 23:49:44 +02:00
Samantaz Fox 7c1d2714e0
Comments: Add support for new format (#4576)
The new comment format is similar to the description's commandRuns.

This should fix the issues with most comments but there are still
some more changes that would need to be made like adding support for
formatting (bold, italic, underline) and channel emojis.

Fixes issue 4566
2024-04-26 23:48:15 +02:00
Samantaz Fox c94c6f4b83
Remove legacy proxy code (#4570)
Also fixes the build on nightly as the offending code was removed.

Related to
https://github.com/iv-org/invidious/pull/4270#issuecomment-1858876952
2024-04-26 23:44:47 +02:00
Samantaz Fox f1fd197cbc
API: convey info "is post live" from Youtube response (#4569)
Returns the 'isPostLiveDvr' field in the videos API when the video
is a post-live DVR (= ended livestream that hasn't been reprocessed
into VOD yet).

Example taken 10 minutes after that livestream ended:
/api/v1/videos/euqnWk-uP6M

{
  ...
  "isPostLiveDvr": true,
  ...
}

Partially fixes 4421
2024-04-26 23:44:30 +02:00
Samantaz Fox bd549f21e9
API: Add 'authorVerified' field on recommended videos (#4562)
Closes 3323
2024-04-26 23:36:08 +02:00
Samantaz Fox 48ad864572
Videos: Add support for new likes format (#4462)
YouTube added a new format for like data in December 2023.
This PR adds support for parsing saod new format.

Related: LuanRT/YouTube.js issue 557

Closes 4419
2024-04-26 23:30:30 +02:00
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
Samantaz Fox 5855e9d188
Translations update from Hosted Weblate (#4164) 2024-04-26 23:19:23 +02:00
Samantaz Fox 33f316c864
Videos: Remove AndroidScreenEmbed client 2024-04-26 23:15:34 +02:00
Samantaz Fox be291e8f0f
Videos: Copy captions over between responses 2024-04-26 22:33:08 +02:00
Samantaz Fox d49c762609
YtAPI: Add more client infos for Android test suite 2024-04-26 22:26:45 +02:00
Samantaz Fox 7f3ddad12e
Videos: Use android test suite client 2024-04-26 22:03:59 +02:00
Hosted Weblate 01e2a5e89d
Update Lombard translation
Update translation files

Updated by "Remove blank strings" hook in Weblate.

Update Lombard translation

Add Lombard translation

Co-authored-by: Federico <fv4@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Translate-URL: https://hosted.weblate.org/projects/invidious/translations/
Translation: Invidious/Invidious Translations
2024-04-25 18:35:09 +02:00
Hosted Weblate bff0b5c85a
Update Serbian (cyrillic) translation
Update Serbian (cyrillic) translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: NEXI <nexiphotographer@gmail.com>
2024-04-25 18:35:09 +02:00
Hosted Weblate 2da63bf36d
Update Chinese (Simplified) translation
Update Chinese (Simplified) translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: 大王叫我来巡山 <hamburger2048@users.noreply.hosted.weblate.org>
2024-04-25 18:35:09 +02:00
Hosted Weblate 7546cb511d
Update Chinese (Traditional) translation
Update Chinese (Traditional) translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Jeff Huang <s8321414@gmail.com>
2024-04-25 18:35:09 +02:00
Hosted Weblate 200cfd7579
Update Portuguese (Portugal) translation
Co-authored-by: Samantaz Fox <translator-weblate@samantaz.fr>
2024-04-25 18:35:09 +02:00
Hosted Weblate 6ed872d72b
Update English (United States) translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Lime bar <limebarartist@gmail.com>
2024-04-25 18:35:09 +02:00
Hosted Weblate 58dc63671a
Update Korean translation
Update Korean translation

Update Korean translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: simmon <simmon@nplob.com>
Co-authored-by: xrfmkrh <rF3nMd7sRKezjF2vcEQo@protonmail.com>
2024-04-25 18:35:08 +02:00
Hosted Weblate eba0699c48
Update Serbian translation
Update Serbian translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: NEXI <nexiphotographer@gmail.com>
2024-04-25 18:35:08 +02:00
Hosted Weblate e3018e00c4
Update Swedish translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: bittin1ddc447d824349b2 <bittin@reimu.nl>
2024-04-25 18:35:08 +02:00
Hosted Weblate b54d45504f
Update Spanish translation
Update Spanish translation

Update Spanish translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Samantaz Fox <translator-weblate@samantaz.fr>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
2024-04-25 18:35:08 +02:00
Hosted Weblate 64eef948bd
Update Dutch translation
Co-authored-by: Gert-dev <Gert-dev@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2024-04-25 18:35:08 +02:00
Hosted Weblate 3f9c7b6c19
Update Interlingua translation
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Software In Interlingua <softinterlingua@gmail.com>
2024-04-25 18:35:08 +02:00
Hosted Weblate c60d2561d1
Update Arabic translation
Update Arabic translation

Update Arabic translation

Update Arabic translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Rex_sa <rex.sa@pm.me>
Co-authored-by: Samantaz Fox <translator-weblate@samantaz.fr>
2024-04-25 18:35:08 +02:00
Hosted Weblate 0de3b0a96d
Update Italian translation
Update Italian translation

Co-authored-by: Federico <fv4@users.noreply.hosted.weblate.org>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
2024-04-25 18:35:08 +02:00
Hosted Weblate 5551b613d3
Update Polish translation
Update Polish translation

Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Matthaiks <kitynska@gmail.com>
2024-04-25 18:35:08 +02:00