Commit Graph

3096 Commits

Author SHA1 Message Date
Samantaz Fox 3b7e45b7bc
SigHelper: Small fixes + suggestions from code review 2024-08-07 23:12:38 +02:00
syeopite e098c27a45
Remove unused methods in `Invidious::LogHandler` 2024-07-28 16:44:30 -07:00
syeopite 6506b8dbfc
Ameba: Fix Naming/PredicateName 2024-07-25 20:08:26 -07:00
Samantaz Fox 61d75050e4
SigHelper: Use 'URI.parse' instead of 'URI.new'
Co-authored-by: Brahim Hadriche <brahim.hadriche@gmail.com>
2024-07-25 22:13:08 +02:00
Samantaz Fox 10e5788c21
Videos: Send player sts when required 2024-07-25 22:13:08 +02:00
Samantaz Fox b509aa91d5
SigHelper: Fix many issues 2024-07-25 22:13:08 +02:00
Samantaz Fox ec8b7916fa
Videos: Make use of the video decoding 2024-07-25 22:13:08 +02:00
Samantaz Fox 56a7488161
Helpers: Add inv_sig_helper client 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
Samantaz Fox 63a729998b
Misc: Sync crystal overrides with current stdlib 2024-07-25 22:13:07 +02:00
syeopite 205f988491
Ameba: Fix Naming/MethodNames 2024-07-24 20:04:44 -07:00
syeopite 0db3b830b7
Ameba: Fix Lint/HashDuplicatedKey 2024-07-24 20:03:41 -07:00
syeopite c8fb75e6fd
Ameba: Fix Lint/UnusedBlockArgument 2024-07-24 19:59:20 -07:00
syeopite 636a6d0be2
Ameba: Fix Lint/UnusedArgument 2024-07-24 19:57:54 -07:00
syeopite 3415507e4a
Ameba: undo Lint/NotNilAfterNoBang in signatures.cr
File is set to be removed with #4772
2024-07-24 19:48:34 -07:00
Emilien Devos 53223f99b0 Add ability to set po_token and visitordata ID 2024-07-24 19:28:47 +02:00
Samantaz Fox 325561e755
Channel: parse subscriber count and channel banner (#4785)
This PR adds support for parsing the newer channel header format
(banner + subscription parsing)

Before this change:
* 0 subscribers
* No banner image

After this change:
* Example with Mr Breast channel: 299M
* Image banner is visible

Closes issue 4783
2024-07-21 17:24:09 +02:00
Samantaz Fox 7fdbda612f
Videos: Fix genre url being unusable (#4717)
Closes issue 4700
2024-07-21 17:24:03 +02:00
Samantaz Fox 4f60feee17
API: Fix out of bound error on empty playlists (#4696)
Before this PR, Invidious assumed that every playlist had at least one video.
When a playlist had no videos, Invidious was throwing an "Index out of bounds"
exception.

The following API endpoints were impacted:
* api/v1/playlists/:plid
* api/v1/auth/playlists/:plid

Fixes issue 4679
2024-07-21 17:24:01 +02:00
Samantaz Fox 733bd27a5c
Handle playlists cataloged as Podcast (#4695)
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.

Test case: "/playlist?list=PLDu-Eh5lUs1a4irCbnxMIB6FrUMaTXgVF"

Fixes issue 4688
2024-07-21 17:23:58 +02:00
Samantaz Fox 1ff0775f4b
API: Fix duplicated query parameters in proxied video URLs (#4587)
This pull request fixes that bug that was causing the query parameters to get
doubled in the streaming URLs when '?local=true' is passed to the
'/api/v1/videos/{id}' API endpoint.

Before: host/path?parameters?parameters
After: host/path?parameters

No associated open issue
2024-07-21 17:23:53 +02:00
Samantaz Fox e62d4db752
API: Return actual stream height, width and fps (#4586)
At the moment Invidious will return hardcoded data for the 'size',
'qualityLabel' and 'fps' fields for streams, when such hardcoded data is
available, otherwise it just omits those fields from the response (e.g. with
the AV1 formats). Those issues are especially noticable when Invidious claims
that 50fps streams have 60fps and when it claims that the dimensions for a
vertical video are landscape. The DASH manifests that Invidious generates
already use the correct information.

This pull request corrects that issue by returning the information that
YouTube provides instead of hardcoded values and also fixes the long
standing bug of Invidious claiming that audio streams have 30 fps.

Here are two test cases:
50/25/13fps: https://youtu.be/GbXYZwUigCM (/api/v1/videos/GbXYZwUigCM)
vertical video: https://youtu.be/hxQwWEOOyU8 (/api/v1/videos/hxQwWEOOyU8)

Originally these problems were going to be solved by the complete refactor
of stream handling in 3620, but as that pull request got closed by the stale
bot over a month ago and has such a massive scope that it would require a
massive amount of work to complete it, I decided to open this pull request
that takes a less radical approach of just fixing bugs instead of a full
on refactoring.

FreeTube generates it's own DASH manifests instead of using Invidious' one,
so that it can support multiple audio tracks and HDR. Unfortunately due to
the missing and inaccurate information in the API responses, FreeTube has
to request the DASH manifest from Invidious to extract the height, width and
fps. With this pull request FreeTube could rely just on the API response,
saving that extra request to the Invidious instance. It would also make it
possible for FreeTube to use the vp9 streams with Invidious, which would
reduce the load on the video proxies.

Closes issue 4131
2024-07-21 17:23:50 +02:00
Samantaz Fox 8b1da2001e
Preferences: Fix handling of modified source code URL(#4437)
Before this PR, setting the modified code repo URL through the preferences
page in Invidious was broken:

* the HTML input tag for this field had invalid type "input"
  (though browser falls back on text input)

* the URL was used to set the "checked" property and not as a plain value,
  which makes no sense for a text-based input (and resulted in a blank field)

* when the submitted field is empty, the retrieved value was an empty 'String'
  instead of 'nil', causing the "modified source code URL" to be an empty
  'href' link which just pointed to the current page

No associated open issue
2024-07-21 17:23:48 +02:00
Samantaz Fox 5a12005b48
API: Fix URL for vtt subtitles (#4221)
For 'fmt=vtt' to work, the 'fmt' parameter needs to be replaced
in the original caption api URL.

No associated open issue
2024-07-21 17:23:44 +02:00
syeopite fad0a4f52d
Ameba: Fix Lint/UselessAssign 2024-07-17 12:39:40 -07:00
syeopite fa50e0abf4
Simplify last_node retrieval
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2024-07-17 12:21:48 -07:00
syeopite 8258062ec5
Ameba: Fix Lint/NotNilAfterNoBang 2024-07-15 17:36:00 -07:00
syeopite 8a90add310
Ameba: Fix Naming/VariableNames
Fix Naming/VariableNames in comment renderer

Fix Naming/VariableNames in helpers/utils

Fix Naming/VariableNames in api/v1/misc.cr
2024-07-11 20:56:28 -07:00
Samantaz Fox bad92093bf
Channels: Add sort options to streams (#4224) 2024-07-10 22:28:22 +02:00
Samantaz Fox 436a61e3bb
API: Fix error code for disabled popular endpoint (#4296)
When visiting /api/v1/popular and popular endpoint is disabled
Before:

500 {"error":"Closed stream"}

After

403 {"error":"Administrator has disabled this endpoint."}
2024-07-10 22:25:31 +02:00
Samantaz Fox 5e0f55333a
Allow embedding videos in local HTML files (#4450)
The current Content Security Policy does not allow to embed videos
inside local HTML files which are viewed in the browser via the file
protocol. This commit adds the file protocol to the allowed frame
ancestors, so that the embedded videos load correctly in local HTML
files.

This behaviour is consistent which how the official YouTube website
allows to embed videos from itself.

Closes issue 4448
2024-07-10 22:24:18 +02:00
Samantaz Fox 99c7e9e800
YtAPI: Remove API keys like official clients (#4655)
This PR removes API keys from innertube requests, as the official clients
did it too.
2024-07-10 22:19:51 +02:00
Samantaz Fox e9bab06e90
HTML: Use full URL in the og:image property (#4675)
Some opengraph implementations don't support a URL without the domain
therefore failing to fetch the video thumbnail and channel image.
This pull request basically fixes that.
2024-07-10 22:17:45 +02:00
ChunkyProgrammer 911dad6935 Channel: parse subscriber count and channel banner 2024-07-09 14:43:14 -04:00
meatball 248df785d7 Update spec and rollback to last commits changes 2024-06-18 20:55:14 +02:00
syeopite c24ed85110
Fix named arg syntax when passing force_resolve 2024-06-16 14:49:48 -07:00
syeopite f466116cd7
Extract label for transcript in YouTube response 2024-06-13 09:07:20 -07:00
syeopite 5b519123a7
Raise error when transcript does not exist 2024-06-11 18:46:34 -07:00
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
syeopite 9980c0e00f
Update uptime logic to handle updown.io response 2024-05-22 13:28:15 -07:00
syeopite aa96cf3453
Fix invalid logic for instance uptime comparison 2024-05-22 13:22:00 -07:00
syeopite 41c978d350
Use HTTP::Client directly in instance list job
The HTTP::Client created via `make_client` is affected by the
force_resolve configuration option. However, api.invidious.io
does not support ipv6 and as such any request with ipv6 to
api.invidious.io will instead raise.

Directly calling the HTTP::Client will ignore the force_resolve option
allowing requests to go through ipv4 when needed.
2024-05-22 13:22:00 -07:00
syeopite cff25a7b25
Refactor instance fetching logic into separate job 2024-05-22 13:22:00 -07:00
syeopite 6b7e730100
Validate override for crystal 1.12.1 2024-05-22 13:10:46 -07:00
thansk 1ce2d10c50
fix: use ion icon for search icon 2024-05-20 14:17:30 +00:00
thansk 5abafb8296
fix: use a search icon instead of text 2024-05-20 11:49:56 +00:00
thansk 9cd2e93a2e
feat: allow submitting search with mouse 2024-05-19 11:46:55 +00: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
syeopite 3b471ae964
Automatically initialize proxy via stdlib override 2024-04-28 19:43:22 -07:00
syeopite eb8fcc9e88
Add support for using HTTP proxies 2024-04-28 19:43:17 -07:00
tracedgod 5b11ca22d0 Use string interpolation instead of concatenation 2024-04-28 00:04:30 -04:00
Samantaz Fox 470245de54
YtAPI: Remove API keys like official clients 2024-04-27 20:48:42 +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 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
tracedgod 6db4a46c5f update the url_search_issues variable to search for the current error on GitHub instead of showing all issues 2024-04-26 16:01:02 -04:00
ChunkyProgrammer 24de19d06f only ignore smaller trending categories on default trending tab 2024-04-23 23:51:22 -04:00
absidue f313162fa1 Add bitrate to formatStreams in /api/v1/videos/{id} response 2024-04-21 12:53:31 +02:00
absidue b90cf286fc Fix duplicate query parameters in URLs when local=true for /api/v1/videos/{id} 2024-04-20 20:46:01 +02:00
ChunkyProgrammer 2b6e71b553 Simplify cvm assignment logic + improve formatting
Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
2024-04-20 10:25:51 -04:00
ChunkyProgrammer d1eae10147 make `authorVerified` a bool value 2024-04-16 18:21:45 -04:00
ChunkyProgrammer fbf07e18aa Parse links in the comments
Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
2024-04-11 08:58:33 -04:00
ChunkyProgrammer de2287963f fix loading replies to comments, remove unneeded code
Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
2024-04-10 18:32:20 -04:00
ChunkyProgrammer 039212ed91 escape html, add todo comment 2024-04-10 18:21:53 -04:00
ChunkyProgrammer a9f55aa310 fix lint, improve performance 2024-04-10 18:21:53 -04:00
ChunkyProgrammer c27bb90e4d Add support for new comment format 2024-04-10 18:21:53 -04:00
syeopite 990931ff67
Remove legacy proxy code 2024-04-07 11:08:12 -07:00
ChunkyProgrammer bfd9c9876e Parse if video is post live dvr and include it in API 2024-04-07 10:26:33 -04:00
ChunkyProgrammer 2a029b4d8c Add field for `authorVerified` for recommended videos when using the API 2024-04-04 20:20:27 -04:00
Brahim Hadriche a9e8aabe1f Merge commit '08390acd0c17875fddb84cabba54197a5b5740e4' into fix/popular-disabled-error 2024-04-01 10:03:37 -04:00
Brahim Hadriche b0c6bdf44c use 403 code 2024-04-01 10:03:29 -04:00
Brahim Hadriche c5eb10b21f Revert "Fix error code for disabled popular endpoint"
This reverts commit 1363fb8094.
2024-04-01 10:02:49 -04:00
Brahim Hadriche 1a2d408d38 Update shorts params 2024-03-31 11:37:13 -04:00
src-tinkerer 72fe8af850
Merge branch 'master' into stream-sort 2024-03-26 12:19:45 +00:00
ChunkyProgrammer 0aaa3e6a08 API: Parse channel's tags 2024-03-11 13:31:14 -04:00
nooptek 499aed37dd Fix handling of modified source code URL setting 2024-03-10 17:51:29 +01:00
Samantaz Fox 619aa3ff05
YoutubeAPI: bump client versions 2024-03-06 21:36:15 +01:00
ChunkyProgrammer 5ceeefa236 add support for new likes format 2024-03-01 23:45:29 -05:00
Tomasz Wilczyński 4adb4c00d2
routes: Allow embedding videos in local HTML files (fixes #4448)
The current Content Security Policy does not allow to embed videos
inside local HTML files which are viewed in the browser via the file
protocol. This commit adds the file protocol to the allowed frame
ancestors, so that the embedded videos load correctly in local HTML
files.

This behaviour is consistent which how the official YouTube website
allows to embed videos from itself.

Signed-off-by: Tomasz Wilczyński <twilczynski@naver.com>
2024-02-24 20:01:16 +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
src-tinkerer cf61af67ab Update src/invidious/routes/channels.cr sort_by for consistency 2023-11-30 14:34:01 +03:30
Brahim Hadriche 1363fb8094 Fix error code for disabled popular endpoint 2023-11-28 21:34:17 -05:00
src-tinkerer 5f2b43d653 Remove unecessary if condition in videos.cr 2023-11-25 00:48:27 +03:30
src-tinkerer 6251d8d43f Rename a variable in videos.cr 2023-11-25 00:46:11 +03:30
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
src-tinkerer 162b89d942 Fix format in videos.cr 2023-11-23 14:44:37 +03:30