Commit Graph

5185 Commits

Author SHA1 Message Date
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
Fijxu
ddfb8e7d93 Views: Add "Watch on Materialious" link on videos. 2024-07-21 13:01:00 -04:00
Emilien Devos
b0cd6587bd retreive potoken for bypass restrictions
Signed-off-by: Fijxu <fijxu@nadeko.net>
2024-07-21 13:01:00 -04:00
Fijxu
c7b8f470d8 Set the video time to 0 if the video has been watched ALMOST completly 2024-07-21 13:00:58 -04:00
nadeko.net Selfhost
762fa5214d Use Docker Valkey instead of passing a socket 2024-07-21 13:00:27 -04:00
zzls Selfhost
d50990ea15 Use Valkey instead of Redis for video cache 2024-07-21 13:00:27 -04:00
Fijxu
067dcbef5e Options for donation and contact links 2024-07-21 13:00:27 -04:00
Fijxu
a7e9602ccd Execute jobs only on master branch, better tags for images 2024-07-21 13:00:27 -04:00
Fijxu
a74057bb7a Use full path for OpenGraph og:image 2024-07-21 13:00:26 -04:00
zzls Selfhost
9a7b6976ff Only execute action on changes inside specific folders 2024-07-21 13:00:26 -04:00
Fijxu
6e1e3e9554 docker-compose.yml for my instances 2024-07-21 13:00:26 -04:00
Fijxu
ad591f3c32 Automated invidious docker builds 2024-07-21 13:00:26 -04:00
Emilien Devos
8665a69fee limit feeds and delete materialized views 2024-07-21 13:00:26 -04:00
sf.nadeko.net ~root
d1051efd6e Add History feed menu 2024-07-21 13:00:26 -04:00
Fijxu
03bf4592ce Add history tab in feed menu 2024-07-21 13:00:26 -04:00
Fijxu
d641bcbf5d Use legit User-Agent instead of Crystal User-Agent. 2024-07-21 13:00:26 -04:00
Fijxu
2027a35e5a test123 2024-07-21 13:00:25 -04:00
sf.nadeko.net ~root
65d9468911 Add some links and change some things in the CSS 2024-07-21 13:00:25 -04:00
Emilien Devos
389a2a4a4d use redis for video cache
Signed-off-by: zzls Selfhost <root@selfhost.zzls.xyz>
2024-07-21 13:00:25 -04:00
syeopite
b60e056f96 Update uptime logic to handle updown.io response 2024-07-21 13:00:25 -04:00
syeopite
532d92bb7a Fix invalid logic for instance uptime comparison 2024-07-21 13:00:25 -04:00
syeopite
24f878e6f6 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-07-21 13:00:25 -04:00
syeopite
a9fc84bc14 Refactor instance fetching logic into separate job 2024-07-21 13:00:25 -04:00
syeopite
7e680c692f Remove preferences and login link from footer 2024-07-21 13:00:25 -04:00
syeopite
1eb28edfb3 Add modified disclaimer to version tag 2024-07-21 13:00:25 -04:00
syeopite
efcd94ffbe Typo 2024-07-21 13:00:24 -04:00
syeopite
780f9df7d3 Add config option for instance donation link
Co-authored-by: Arya K <arya@projectsegfau.lt>
2024-07-21 13:00:24 -04:00
syeopite
4d11c324b0 Add "Instance" section to footer 2024-07-21 13:00:24 -04:00
syeopite
57f8bfb965 Add config to add custom text in the footer
Co-authored-by: Aural Glow <125497673+auralglow@users.noreply.github.com>
2024-07-21 13:00:24 -04:00
syeopite
6acabc5bff Add new instance customization section in config 2024-07-21 13:00:24 -04:00
syeopite
9d0ab0a83c Add Invidious version to footer 2024-07-21 13:00:24 -04:00
syeopite
4164159057 Use instances.invidious.io instead of redirect
Co-authored-by: TheFrenchGhosty <47571719+TheFrenchGhosty@users.noreply.github.com>
2024-07-21 13:00:24 -04:00
syeopite
30d858bc8b Update locales/en-US.json
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2024-07-21 13:00:24 -04:00
syeopite
e98aafa4b5 Extract and implement footer overhaul from #2215 2024-07-21 13:00:24 -04: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
09bf09befe Player: Fix playback position of already watched videos (#4731)
Trying to watch an already watched video will make the video start 15 seconds
before the end. This is not very comfortable when listening to music or
watching/listening playlists over and over.

This can be easily tested on any instance with the "Save playback position"
enabled in the Preferences.

Closes issue 3976
2024-07-21 17:24:06 +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