Commit Graph

213 Commits (23e927df41e9960462dd807ee74e677aeabe313b)

Author SHA1 Message Date
meow 7940e91cbe single quotes 3 years ago
meow 577a2356a0 convert arrow functions 3 years ago
meow 38ef0b10e7 eqeqeq 3 years ago
meow c72d3c4a0e semicolons 3 years ago
meow eb7e48b059 use strict 3 years ago
Émilien Devos 2ea986326d
Bump videojs to 7.12.1 (#3011) 3 years ago
AHOHNMYC 31de39a7a4
Remove insecure protocol in embedded view 3 years ago
Samantaz Fox 8262aa4138
Merge pull request #2895 from MathiusD/master
Persist player volume/speed
3 years ago
Samantaz Fox 95d86ebf22
Sanity check + comment why we add a leading dot 3 years ago
Samantaz Fox 6aa7db2358
Minor code/comments cleaning 3 years ago
138138138 2c22b0839f
Safari audio double duration fix for iOS 15
The previous method breaks Always Loop feature on iOS 15.
The previous player.currentTime(player.duration() + 1) sometimes breaks the entire player.
Now it jumps to (end - 1) seconds when the time goes between over half and (end - 2) seconds.
With Always Loop on, player will jump to the beginning after 1 second.
3 years ago
Féry Mathieu (Mathius) e66b317f02
Reduce regex in player script
Following correction at:
https://github.com/iv-org/invidious/pull/2895#issuecomment-1048245008
3 years ago
Féry Mathieu (Mathius) aa8758dec2
Patch updateCookie for preserve extra args (like domain) 3 years ago
Féry Mathieu (Mathius) ad6b29c09f
Update cookie domain definition in player script
Related with :
https://github.com/iv-org/invidious/pull/2895#issuecomment-1047762544
3 years ago
Féry Mathieu (Mathius) 8e4959a621
Update cookie declaration for preserve SameSite directive 3 years ago
Féry Mathieu (Mathius) 31699468fc
Lint docs of addCurrentTimeToURL in player script
Follow lint indications :
https://github.com/iv-org/invidious/pull/2912#discussion_r811479583
3 years ago
Féry Mathieu (Mathius) 36c7d4270b
Lint conditional deletion of t in addCurrentTimeToURL inside player script
Follow lint indications :
https://github.com/iv-org/invidious/pull/2912#discussion_r811474927
3 years ago
Féry Mathieu (Mathius) d77586d02d
Remove extra space in shareOptions.embedCode of player script
Follow lint indications :
https://github.com/iv-org/invidious/pull/2912#discussion_r811367117
3 years ago
Féry Mathieu (Mathius) 9979a1b910
Add currentTimestamp in shared url by videojs-share 3 years ago
Féry Mathieu (Mathius) 1e3f4ed398
Lint player.js
Follow lint indications :
- https://github.com/iv-org/invidious/pull/2895#discussion_r809461103
- https://github.com/iv-org/invidious/pull/2895#discussion_r809461622
3 years ago
Féry Mathieu (Mathius) 7048193f00
Move store of modification in Cookie instead of localStorage 3 years ago
Féry Mathieu (Mathius) 17ae2648ed
Modify use of module (Only if video settings are default)
Following remark at https://github.com/iv-org/invidious/pull/2895#issuecomment-1037279953
3 years ago
Féry Mathieu (Mathius) c952754c8c
Add videojs-persist plugin 3 years ago
Samantaz Fox 53d349a648
Inline a few JS functions
Helps sending less bytes to the client.
3 years ago
Samantaz Fox b344e1aadb
handlers.js: fix TypeError on document.activeElement.type 3 years ago
Samantaz Fox 3c882cff6e
player shortcuts: ignore numpad 3 years ago
Dimitris Apostolou 7e4690e43c
Fix typos 3 years ago
Samantaz Fox 2289f98c1e
Merge pull request #2846 from iv-org/SamantazFox-fix-search-focus-js
Ignore "/" key handling if search box is focused
3 years ago
Samantaz Fox 15c66e2b01
Ignore "/" key handling if search box is focused
Fixes a side effect of https://github.com/iv-org/invidious/pull/2814
See: https://github.com/iv-org/invidious/issues/2791#issuecomment-1018264144
3 years ago
Émilien Devos f013a6b1d7
rename hls to vhs in the player
hls method is deprecated: https://github.com/videojs/http-streaming#how-to-use
3 years ago
Samantaz Fox eba311baa9
Merge pull request #2397 from syeopite/dep-manager-for-videojs-stuff
Add dependency manager script for videojs stuff
3 years ago
Samantaz Fox 8aed1e11c3
Add JS to focus search box on '/' 3 years ago
Samantaz Fox edcc155482
Merge pull request #2744 from tirz/feature-fix_null_ptr_for_localStorage
fix: null ptr while retaining video time
3 years ago
11Tuvork28 d59323a601
Add check to avoid saving player pos to the
length of the given video by saving a minimum of 15 at the end
3 years ago
Théo Gaillard 73a142fd9b
fix: null ptr while loading/switching theme 3 years ago
Théo Gaillard 0453d08eed
fix: null ptr while retaining time 3 years ago
bbielsa ed6476b5ea Allow the t parameter to override the stored video playback position 3 years ago
bbielsa 5abe7fe123 Rename 'remember_position' to 'save_player_pos' for clarity 3 years ago
bbielsa b6792cf02e Added default value for get_video_time() which was causing a bug in safari 3 years ago
bbielsa 1261323c66 Remove console.log debugging 3 years ago
bbielsa 2a45b4eba0 Save and load the position for the video using a local storage object, the object is a dictionary, where the key is the video ID, and the value is the time at which the user last left off watching the video. If the user deselected the 'remember video position' checkbox in the preferences this dictionary is cleared 3 years ago
diogo f13fb80b42
scroll the nextVideo into the top 3 years ago
syeopite 0323202a03
Revert to iv-org fork of silvermine-videojs-quality-selector
Upstream requires at least two additional sources. Whereas Invidious needs it to be
able to display a single additional source for normal (dashless)
qualites. Aka medium and hd720.
3 years ago
syeopite ceae48088e
Stop shipping VideoJS files 3 years ago
syeopite 5054510d15
Prevent VR from being initialized in listen mode (#2396) 3 years ago
syeopite 50c8afb525
Handle equirectangular projections for VR (#2379) 3 years ago
syeopite f529948d81
Change videojs-vr to the unminified version 4 years ago
syeopite 6e6f4d5a37
Allow configurable support of interactive 360 vid 4 years ago
syeopite f06053b1cf
Fix projection settings for VR 4 years ago
syeopite df0cd30236
Add support for VR videos through videojs-vr 4 years ago
TheFrenchGhosty 75e5b49c3a
Merge pull request #2008 from syeopite/mobile-ui
Improve player controls for mobile devices
4 years ago
syeopite d6585d7583
Overhaul Invidious's "Youtube" player style 4 years ago
syeopite 1924d75c2b
Improve mobile user interface for video player 4 years ago
syeopite 53cdb04be7
Improve mobile ux with videojs-mobile-ui 4 years ago
syeopite bc5c0f65b8
Add watch on Invidious button to embeds 4 years ago
Andrew Zhao 89fd35e02d fix comment replies 4 years ago
syeopite 83b5fd252e
Enhance search filter UI for JS disabled users
Change filters UI box to use <details>.

Stylize detail button for filter ui

Fix localization for 'filter'

Fix CSS

Fix styling
4 years ago
Perflyst bcb44ab600
Merge branch 'master' into patch-1 4 years ago
Andrew Zhao 9b79e35d52 do not preload captions 4 years ago
138138138 3b484c362e
Skip duration multiply by playback rate
Fast Forward/Backward like YouTube. The skip duration is multiplied by playback rate.
4 years ago
138138138 121224b1b0
Fix ; () {} 4 years ago
138138138 ddd7f3f384
Update player.js 4 years ago
138138138 a6970e02f9
Fix double duration on all Apple devices
The fix will be applied when Safari browser is detected.
4 years ago
138138138 685902adab
Update player.js
Fixes audio mode duration doubled in iPhone iOS browsers. The player will stop after reaching the real duration. 
iOS() checks both iOS and iPadOS. 
Only tested on iPhone iOS browsers. Testers needed for behavior of iPadOS and MacOS.
4 years ago
Andrew Zhao 4a0b10984a Bump videojs and fix webworker 4 years ago
TheFrenchGhosty 1ad4685bb7
Merge pull request #1629 from tenpura-shrimp/searchui
Add ui for search sort and filter
4 years ago
Andrew Zhao 15ba3325d9 add ui for searching 4 years ago
Andre Borie 3046350cb2 Fix DASH playback bug. 4 years ago
Perflyst c7e65ce795
Merge pull request #1619 from tenpura-shrimp/ignorevideoplayback
do not add local to xhr when in videoplayback
4 years ago
Andrew Zhao 5a08dfa72f fix incorrect use of setinterval in js 4 years ago
Andrew Zhao ac0ed14eae do not add local to xhr when in videoplayback 4 years ago
saltycrys eed78c960d Improve DASH quality preference
Besides `auto`, `best` and `worst` it is now possible to select a target height.
If the target height is not available the closest lower height is selected.
4 years ago
saltycrys eea7ca9b72 Add DASH quality preference
The options are `auto` (the current and default behavior), `best` and `worst`.

The UI is only updated once playback starts.
4 years ago
TheFrenchGhosty 5e8856e65b
Merge pull request #1551 from saltycrys/add-embed-link
Add embed link to watch page
4 years ago
Andrew Zhao 0cb442d40e do not proxy hls on supported browser 4 years ago
saltycrys 680dc1f962 Shuffle URL params
The `list` and `index` params are the most important and come first now.
4 years ago
TheFrenchGhosty fe73eccb90
Merge pull request #1479 from saltycrys/theme-flash
Apply dark theme immediately
4 years ago
saltycrys de777907f2 Apply dark theme immediately
Themes are now controlled with a class on the body element.

If a preference is set the body element will have either "dark-theme"
or "light-theme" class. If no preference is set or the preference is
empty the class will be "no-theme".

"dark-theme" and "light-theme" are handled by darktheme.css and
lighttheme.css respectively.

"no-theme" is handled by default.css where depending on the value of
"prefers-color-scheme" the styles corresponding to "dark-theme" or
"light-theme" are applied.

Unfortunately this means that both themes are duplicated, once in the
theme .css and once in default.css.
4 years ago
saltycrys 3379f3ef61 Update videojs-vtt-thumbnails to latest upstream version
Note that the latest version on NPM is over two years old so this was built from source.
4 years ago
TheFrenchGhosty 3ab3a5a236
Merge pull request #713 from leonklingele/keydown-mediakeys-detection
js: add support to detect media keys in keydown handler
4 years ago
Omar Roth 3f97bebd69
Support adding video to playlist from watch page 5 years ago
Omar Roth 0e58d99f4e Fix player mouseover events 5 years ago
Omar Roth bd7950b757
Add toggle_parent to dynamic handlers 5 years ago
leonklingele 70cbe91776
Migrate to a good Content Security Policy (#1023)
So attacks such as XSS (see [0]) will no longer be of an issue.

[0]: https://github.com/omarroth/invidious/issues/1022
5 years ago
Kyle Copperfield a3045a3953
Use a MediaQueryListener to toggle on demand. Tested on OSX. (#925)
Closes #867.
5 years ago
Leon Klingele e3593fe197
js: add support to detect media keys in keydown handler
See [0] for all the relevant codes.

[0]: https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/key/Key_Values#Multimedia_keys

Fixes a regression introduced in e6b4e12689.
Fixes https://github.com/omarroth/invidious/issues/712.
5 years ago
Jorge Maldonado Ventura dd9f1024f4 Remove invalid HTML from embed player 5 years ago
Omar Roth 72bfdfd925
Merge pull request #975 from jorgesumle/embed
Change embed code
5 years ago
Omar Roth 0560d2cfb7
Bump video.js 5 years ago
Jorge Maldonado Ventura 58c1a68ad9 Change embed code 5 years ago
Omar Roth 23ccaea2ff
Fix comment event listener 5 years ago
Omar Roth be055d9dcb
Add support for custom playlists 5 years ago
Omar Roth 330ffb803f
Remove invalid source map directive for videojs-quality-selector 5 years ago
Omar Roth 553d52a45e
Update silvermine quality selector 5 years ago
Omar Roth 9766322e99
Update videojs-quality-selector 5 years ago
Omar Roth 7d3ecd2297
Bump JS/CSS dependencies 5 years ago
leonklingele acaf7b969a js: add support to detect alt, meta and control key in keydown handler (#704)
This fixes a quite severe user experience issue where pressing the
'alt', 'meta' and/or 'ctrl' key along with one of the supported keys
(e.g. 'f' to enter video fullscreen mode) would overwrite the default
browser behavior. In the case of 'f+meta' we would enter fullscreen
mode, and not open the browser search panel as one might expect.

This change is required to stay consistent with the way YouTube
handles keydown events.
5 years ago
leonklingele e6b4e12689 js: add support for keydown events (#678)
* js: add support for keydown events

This will modify the player behavior even if the player element is unfocused.

Based on the YouTube key bindings, allow to

- toggle playback with space and 'k' key
- increase and decrease player volume with up / down arrow key
- mute and unmute player with 'm' key
- jump forwards and backwards by 5 seconds with right / left arrow key
- jump forwards and backwards by 10 seconds with 'l' / 'j'  key
- set video progress with number keys 0–9
- toggle captions with 'c' key
- toggle fullscreen mode with 'f' key
- play next video with 'N' key
- increase and decrease playback speed with '>' / '<' key

* js: remove unused dependency 'videojs.hotkeys.min.js'

Support for controlling the player volume by scrolling over it is
still retained by copying over the relevant code part from the
aforementioned library.
5 years ago
psvenk f54fbd057e Add prefers-color-scheme support (#601)
* Add prefers-color-scheme support

This should fix <https://github.com/omarroth/invidious/issues/559>.
The cookie storage format has been changed from boolean
("true"/"false") to tri-state ("dark"/"light"/""), so that users
without a cookie set will get dark mode if they have enabled the dark
theme in their operating system. The code for handling the cookie
state, along with the user's operating system theme, has been factored
out into a new function `update_mode`, which is called both at window
load and at the "storage" event listener, because the "storage" event
listener is only trigerred when a change is made to the localStorage
from another tab/window (for more info - see
<https://stackoverflow.com/a/4679754>).
5 years ago
Omar Roth 3de37a61c5
Update videojs-http-source-selector 5 years ago