[config/config.example.yml]
- Separate hide_shorts_and_live to hide_shorts and hide_livestreams
[config/sql/channel_videos.sql]
- Introduce enum video_type
- Include video_type as new column for channel_videos
[locales/en-US.json]
- Add labels for new settings
[src/invidious/channels/channels.cr]
- Add property video_type of type VideoType to ChannelVideo struct
- Add deserializer module for conversion from database entry to enum
- Add check if we already have a video in the database.
If the video `updated` field has no been updated, only update views
- Add check whether a video is in the `videos` array. If this is not
the case, fetch the individual video for `video_type` as well as
`length_videos`
[src/invidious/config.cr]
- Separate hide_shorts_and_live property
to hide_shorts and hide_livestreams properties
[src/invidious/database/channels.cr]
- Include video_type in database insert for ChannelVideo
[src/invidious/routes/preferences.cr]
- Separate hide_shorts_and_live setting to hide_shorts and hide_livestreams
[src/invidious/users.cr]
- Accumulate VideoTypes in an array and query on these types
- Remove paths for hide_shorts_and_live
[src/invidious/videos.cr]
- Add `Short` entry to VideoType enum
[src/invidious/videos/parser.cr]
- Add check whether a video is a short
[config/config.example.yml]
- Introduce new default value for hide_shorts_and_live
[locales/en-US.json]
- Add translation label for hide_shorts_and_live
[src/invidious/config.cr]
- Add default value for hide_shorts_and_live to ConfigPreferences
[src/invidious/users.cr]
- Add filtering for shorts and listreams if hide_shorts_and_live is active
[src/invidious/routes/preferences.cr]
- Retrieve and convert hide_shorts_and_live option from preferences page
to preferences object
[src/invidious/user/preferences.cr]
- Add hide_shorts_and_live property
[src/invidious/views/user/preferences.ecr]
- Add div, label and input for new hide_shorts_and_live option
* fix: restore dmca_content functionality
This restores (or adds) the functionality of the `dmca_content` config
option that at this date, has been unused and makes no effect.
* only disable download widget for dmca video ids
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).
This PR adds a configuration option to control the preloading of video data on
page load with the HTML5 'preload'[1] attribute on the `<video>` element.
The option is enabled by default, meaning that the `preload` attribute's value
will be 'auto'. If users want to prevent preloading of video data, they
can disable the option, which will set the attribute value to 'none'.
[1](https://www.w3schools.com/tags/att_video_preload.asp)
Closes issue 4110
Fix#4110 by adding an option to control the preloading of video data on
page load. If disabled ("false"), the browser will not preload any video
data until the user explicitly hits the "Play" button.
If enabled ("true"), the default behavior will be used, which means the
browser decides how much of the video will be preloaded.