mirror of
https://github.com/iv-org/invidious.git
synced 2026-02-20 09:49:54 +00:00
Compare commits
4 Commits
v2.2026020
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fda8d1b528 | ||
|
|
e7f8b15b21 | ||
|
|
60c31e3069 | ||
|
|
11db343cfb |
@@ -1,5 +1,7 @@
|
|||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
|
|
||||||
|
## vX.Y.0 (future)
|
||||||
|
|
||||||
## v2.20260207.0
|
## v2.20260207.0
|
||||||
|
|
||||||
### Wrap-up
|
### Wrap-up
|
||||||
|
|||||||
@@ -211,9 +211,9 @@ window.helpers = window.helpers || {
|
|||||||
helpers.storage.remove(key);
|
helpers.storage.remove(key);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
set: function (key, value) {
|
set: function (key, value) {
|
||||||
let encoded_value = encodeURIComponent(JSON.stringify(value))
|
let encoded_value = encodeURIComponent(JSON.stringify(value))
|
||||||
localStorage.setItem(key, encoded_value);
|
localStorage.setItem(key, encoded_value);
|
||||||
},
|
},
|
||||||
remove: function (key) { localStorage.removeItem(key); }
|
remove: function (key) { localStorage.removeItem(key); }
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ player.on('timeupdate', function () {
|
|||||||
let base_url_yt_watch = elem_yt_watch.getAttribute('data-base-url');
|
let base_url_yt_watch = elem_yt_watch.getAttribute('data-base-url');
|
||||||
elem_yt_watch.href = addCurrentTimeToURL(base_url_yt_watch);
|
elem_yt_watch.href = addCurrentTimeToURL(base_url_yt_watch);
|
||||||
}
|
}
|
||||||
|
|
||||||
let elem_yt_embed = document.getElementById('link-yt-embed');
|
let elem_yt_embed = document.getElementById('link-yt-embed');
|
||||||
if (elem_yt_embed) {
|
if (elem_yt_embed) {
|
||||||
let base_url_yt_embed = elem_yt_embed.getAttribute('data-base-url');
|
let base_url_yt_embed = elem_yt_embed.getAttribute('data-base-url');
|
||||||
@@ -160,12 +160,18 @@ player.on('timeupdate', function () {
|
|||||||
let base_url_iv_embed = elem_iv_embed.getAttribute('data-base-url');
|
let base_url_iv_embed = elem_iv_embed.getAttribute('data-base-url');
|
||||||
elem_iv_embed.href = addCurrentTimeToURL(base_url_iv_embed, domain);
|
elem_iv_embed.href = addCurrentTimeToURL(base_url_iv_embed, domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
let elem_iv_other = document.getElementById('link-iv-other');
|
let elem_iv_other = document.getElementById('link-iv-other');
|
||||||
if (elem_iv_other) {
|
if (elem_iv_other) {
|
||||||
let base_url_iv_other = elem_iv_other.getAttribute('data-base-url');
|
let base_url_iv_other = elem_iv_other.getAttribute('data-base-url');
|
||||||
elem_iv_other.href = addCurrentTimeToURL(base_url_iv_other, domain);
|
elem_iv_other.href = addCurrentTimeToURL(base_url_iv_other, domain);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let elem_iv_listen = document.getElementById('link-iv-listen');
|
||||||
|
if (elem_iv_listen) {
|
||||||
|
let base_url_iv_listen = elem_iv_listen.getAttribute('data-base-url');
|
||||||
|
elem_iv_listen.href = addCurrentTimeToURL(base_url_iv_listen, domain);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
@@ -628,7 +634,7 @@ function toggle_caption_window() {
|
|||||||
player.textTrackSettings.setValues({ windowOpacity: options.windowOpacity[newIndex] });
|
player.textTrackSettings.setValues({ windowOpacity: options.windowOpacity[newIndex] });
|
||||||
update_captions();
|
update_captions();
|
||||||
}
|
}
|
||||||
|
|
||||||
function toggle_caption_opacity() {
|
function toggle_caption_opacity() {
|
||||||
const numOptions = options.textOpacity.length;
|
const numOptions = options.textOpacity.length;
|
||||||
const textOpacity = player.textTrackSettings.getValues().textOpacity || '1';
|
const textOpacity = player.textTrackSettings.getValues().textOpacity || '1';
|
||||||
@@ -733,7 +739,7 @@ addEventListener('keydown', function (e) {
|
|||||||
|
|
||||||
case '>': action = increase_playback_rate.bind(this, 1); break;
|
case '>': action = increase_playback_rate.bind(this, 1); break;
|
||||||
case '<': action = increase_playback_rate.bind(this, -1); break;
|
case '<': action = increase_playback_rate.bind(this, -1); break;
|
||||||
|
|
||||||
case '=': action = increase_caption_size.bind(this, 1); break;
|
case '=': action = increase_caption_size.bind(this, 1); break;
|
||||||
case '-': action = increase_caption_size.bind(this, -1); break;
|
case '-': action = increase_caption_size.bind(this, -1); break;
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ db:
|
|||||||
##
|
##
|
||||||
## When this setting is commented out, Invidious companion is not used.
|
## When this setting is commented out, Invidious companion is not used.
|
||||||
## Otherwise, Invidious will proxy the requests to Invidious companion.
|
## Otherwise, Invidious will proxy the requests to Invidious companion.
|
||||||
##
|
##
|
||||||
## Note: multiple URL can be configured. In this case, Invidious will
|
## Note: multiple URL can be configured. In this case, Invidious will
|
||||||
## randomly pick one every time video data needs to be retrieved. This
|
## randomly pick one every time video data needs to be retrieved. This
|
||||||
## URL is then kept in the video metadata cache to allow video playback
|
## URL is then kept in the video metadata cache to allow video playback
|
||||||
@@ -63,7 +63,7 @@ db:
|
|||||||
## The parameter private_url is required for the internal communication
|
## The parameter private_url is required for the internal communication
|
||||||
## between Invidious companion and Invidious.
|
## between Invidious companion and Invidious.
|
||||||
##
|
##
|
||||||
## The optional parameter public_url is the public URL from which
|
## The optional parameter public_url is the public URL from which
|
||||||
## Invidious companion is listening to the requests from the user(s).
|
## Invidious companion is listening to the requests from the user(s).
|
||||||
## When this setting is commented out, Invidious proxy all requests to
|
## When this setting is commented out, Invidious proxy all requests to
|
||||||
## Invidious companion. Useful for simple setups.
|
## Invidious companion. Useful for simple setups.
|
||||||
@@ -232,7 +232,7 @@ https_only: false
|
|||||||
## Configuration for using a HTTP proxy
|
## Configuration for using a HTTP proxy
|
||||||
## If unset, then no HTTP proxy will be used.
|
## If unset, then no HTTP proxy will be used.
|
||||||
## Proxy type supported: HTTP, HTTPS
|
## Proxy type supported: HTTP, HTTPS
|
||||||
##
|
##
|
||||||
## This is not used for loading the video streams from YouTube servers (circumvent YouTube restrictions)
|
## This is not used for loading the video streams from YouTube servers (circumvent YouTube restrictions)
|
||||||
## Please instead configure the proxy in Invidious companion:
|
## Please instead configure the proxy in Invidious companion:
|
||||||
## https://github.com/iv-org/invidious-companion/blob/master/config/config.example.toml
|
## https://github.com/iv-org/invidious-companion/blob/master/config/config.example.toml
|
||||||
@@ -885,7 +885,7 @@ default_user_preferences:
|
|||||||
## Default: true
|
## Default: true
|
||||||
##
|
##
|
||||||
#vr_mode: true
|
#vr_mode: true
|
||||||
|
|
||||||
##
|
##
|
||||||
## Save the playback position
|
## Save the playback position
|
||||||
## Allow to continue watching at the previous position when
|
## Allow to continue watching at the previous position when
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
# Crystal linter
|
# Crystal linter
|
||||||
# This is a modified version of the pre-commit hook from the crystal repo. https://github.com/crystal-lang/crystal/blob/master/scripts/git/pre-commit
|
# This is a modified version of the pre-commit hook from the crystal repo. https://github.com/crystal-lang/crystal/blob/master/scripts/git/pre-commit
|
||||||
# Please refer to that if you'd like an version that doesn't automatically format staged files.
|
# Please refer to that if you'd like an version that doesn't automatically format staged files.
|
||||||
changed_cr_files=$(git diff --cached --name-only --diff-filter=ACM | grep '\.cr$')
|
changed_cr_files=$(git diff --cached --name-only --diff-filter=ACM | grep '\.cr$')
|
||||||
if [ ! -z "$changed_cr_files" ]; then
|
if [ ! -z "$changed_cr_files" ]; then
|
||||||
if [ -x bin/crystal ]; then
|
if [ -x bin/crystal ]; then
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
name: invidious
|
name: invidious
|
||||||
version: 2.20260207.0
|
version: 2.20260207.0-dev
|
||||||
|
|
||||||
authors:
|
authors:
|
||||||
- Invidious team <contact@invidious.io>
|
- Invidious team <contact@invidious.io>
|
||||||
|
|||||||
@@ -48,9 +48,7 @@ FEATURE_FILTERS = {
|
|||||||
|
|
||||||
SORT_FILTERS = {
|
SORT_FILTERS = {
|
||||||
Invidious::Search::Filters::Sort::Relevance => "8AEB",
|
Invidious::Search::Filters::Sort::Relevance => "8AEB",
|
||||||
Invidious::Search::Filters::Sort::Date => "CALwAQE%3D",
|
|
||||||
Invidious::Search::Filters::Sort::Views => "CAPwAQE%3D",
|
Invidious::Search::Filters::Sort::Views => "CAPwAQE%3D",
|
||||||
Invidious::Search::Filters::Sort::Rating => "CAHwAQE%3D",
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Spectator.describe Invidious::Search::Filters do
|
Spectator.describe Invidious::Search::Filters do
|
||||||
|
|||||||
@@ -57,8 +57,6 @@ module Invidious::Search
|
|||||||
# Values correspond to { "1:varint": <X> }
|
# Values correspond to { "1:varint": <X> }
|
||||||
enum Sort
|
enum Sort
|
||||||
Relevance = 0
|
Relevance = 0
|
||||||
Rating = 1
|
|
||||||
Date = 2
|
|
||||||
Views = 3
|
Views = 3
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
audio_streams.each_with_index do |fmt, i|
|
audio_streams.each_with_index do |fmt, i|
|
||||||
src_url = "/latest_version?id=#{video.id}&itag=#{fmt["itag"]}"
|
src_url = "/latest_version?id=#{video.id}&itag=#{fmt["itag"]}"
|
||||||
src_url += "&local=true" if params.local
|
src_url += "&local=true" if params.local
|
||||||
src_url = invidious_companion.public_url.to_s + src_url +
|
src_url = invidious_companion.public_url.to_s + src_url +
|
||||||
"&check=#{invidious_companion_check_id}" if (invidious_companion)
|
"&check=#{invidious_companion_check_id}" if (invidious_companion)
|
||||||
|
|
||||||
bitrate = fmt["bitrate"]
|
bitrate = fmt["bitrate"]
|
||||||
|
|||||||
@@ -159,7 +159,7 @@
|
|||||||
<% end %>
|
<% end %>
|
||||||
@ <%= CURRENT_BRANCH %>
|
@ <%= CURRENT_BRANCH %>
|
||||||
<% if CURRENT_TAG != "" %>
|
<% if CURRENT_TAG != "" %>
|
||||||
(
|
(
|
||||||
<% if CONFIG.modified_source_code_url %>
|
<% if CONFIG.modified_source_code_url %>
|
||||||
<a href="<%= CONFIG.modified_source_code_url %>/releases/tag/<%= CURRENT_TAG %>"><%= CURRENT_TAG %></a>
|
<a href="<%= CONFIG.modified_source_code_url %>/releases/tag/<%= CURRENT_TAG %>"><%= CURRENT_TAG %></a>
|
||||||
<% else %>
|
<% else %>
|
||||||
|
|||||||
@@ -79,11 +79,11 @@ we're going to need to do it here in order to allow for translations.
|
|||||||
<h1>
|
<h1>
|
||||||
<%= title %>
|
<%= title %>
|
||||||
<% if params.listen %>
|
<% if params.listen %>
|
||||||
<a title="<%=translate(locale, "Video mode")%>" href="/watch?<%= env.params.query %>&listen=0">
|
<a title="<%=translate(locale, "Video mode")%>" id="link-iv-listen" data-base-url="/watch?<%= env.params.query %>&listen=0" href="/watch?<%= env.params.query %>&listen=0">
|
||||||
<i class="icon ion-ios-videocam"></i>
|
<i class="icon ion-ios-videocam"></i>
|
||||||
</a>
|
</a>
|
||||||
<% else %>
|
<% else %>
|
||||||
<a title="<%=translate(locale, "Audio mode")%>" href="/watch?<%= env.params.query %>&listen=1">
|
<a title="<%=translate(locale, "Audio mode")%>" id="link-iv-listen" data-base-url="/watch?<%= env.params.query %>&listen=1" href="/watch?<%= env.params.query %>&listen=1">
|
||||||
<i class="icon ion-md-headset"></i>
|
<i class="icon ion-md-headset"></i>
|
||||||
</a>
|
</a>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
Reference in New Issue
Block a user