Commit Graph

355 Commits

Author SHA1 Message Date
bbielsa 1261323c66 Remove console.log debugging 2021-12-15 19:37:55 +01:00
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 2021-12-15 19:37:55 +01:00
syeopite a65b9b2b53
Merge pull request #2406 from TechnicalSuwako/fix-non-js-player
fix non-JS player #2405
2021-10-17 18:22:08 +00:00
diogo f13fb80b42
scroll the nextVideo into the top 2021-10-11 23:43:41 +02:00
tuvork f5e7fe34a5
Added border radius to channel-profile (#2484) 2021-10-11 09:53:37 +02:00
Samantaz Fox adc12addfa
Add config option to display source code URL in footer (#2450) 2021-10-07 13:53:12 +02:00
syeopite 92b04a30f3
Prevent indexing of Invidious instances (#2420)
Closes #2418
2021-09-22 01:29:51 +02:00
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.
2021-09-18 13:30:17 -07:00
syeopite 6699c80357
Preserve videojs directory for dependency script 2021-09-18 13:30:17 -07:00
syeopite ceae48088e
Stop shipping VideoJS files 2021-09-18 13:28:48 -07:00
テクニカル諏訪子 3351ad8197 fix non-JS player #2405 2021-09-15 20:23:48 +09:00
syeopite 5054510d15
Prevent VR from being initialized in listen mode (#2396) 2021-09-15 01:37:23 +02:00
syeopite 50c8afb525
Handle equirectangular projections for VR (#2379) 2021-09-10 07:42:39 +00:00
syeopite 2abec5b62f
Use colorized version of safari-pinned-tab.svg 2021-07-25 16:07:11 -07:00
syeopite 31de2d304c
Change README logo to use vector image 2021-07-24 15:14:58 -07:00
Samantaz Fox fd313f0d66
Fix alignment of "invidious" logo on search page
The alignment was broken by #2196
2021-06-29 23:18:17 +02:00
Samantaz Fox cfcb64c516
Fix layout of video 'card' items
Previous changes broke alignment of text and icons
2021-06-25 20:47:15 +02:00
Samantaz Fox 9e4fd193c6 Limit descriptions width to ease mixed LTR/RTL text reading
This will prevent, on large pages, the LTR and RTL text to be
far away, on each side of the page. This could happen on channel
and playlists descriptions, when the page is displayed on a large
screen.
2021-06-24 17:35:44 +04:30
Mostafa Ahangarha f616b8e518 Revert "remove unnecessary text-align"
This reverts commit 97b469f59c.
2021-06-24 16:53:16 +04:30
Mostafa Ahangarha 97b469f59c remove unnecessary text-align 2021-06-24 15:58:54 +04:30
Cadence Ember 7ec93825b6 Change description-box from flex to block
I also make minor changes to the surroundings so that the same layout
and functionality as before is preserved.
2021-06-24 15:12:05 +04:30
Mostafa Ahangarha 4a4867deeb
Undo last commit 2021-06-24 13:10:31 +04:30
Mostafa Ahangarha 965a8ea9fd
Change display to block
Change display from flex to block so that the direction of content would get properly set
2021-06-24 12:17:49 +04:30
Mostafa Ahangarha 3e8ddabcc1
Add bidi support
Adding these styles is the easiest way to add bidi (bidirectional text) support without or with least side effect. I have tested it by adding it manually on yewtu.be instance and so far it works very well.
2021-06-24 11:56:58 +04:30
Graham 908bc7561b
Add 10px margin to top and bottom of hr element 2021-06-14 12:24:01 -06:00
Paul Braeuning e38b602b7d Disallow /watch path for bots again 2021-06-14 10:40:59 +02:00
syeopite f529948d81
Change videojs-vr to the unminified version 2021-05-23 09:24:49 -07:00
syeopite 6e6f4d5a37
Allow configurable support of interactive 360 vid 2021-05-23 09:22:37 -07:00
syeopite f06053b1cf
Fix projection settings for VR 2021-05-23 09:22:37 -07:00
syeopite df0cd30236
Add support for VR videos through videojs-vr 2021-05-23 09:22:29 -07:00
TheFrenchGhosty 75e5b49c3a
Merge pull request #2008 from syeopite/mobile-ui
Improve player controls for mobile devices
2021-05-13 10:33:47 +02:00
TheFrenchGhosty 76c9cf62ff
Merge pull request #1995 from syeopite/watch-on-invidious
Add watch on Invidious button to embeds
2021-05-13 10:32:02 +02:00
syeopite 65663fb857
Update code to reflect 'read more' btn name change 2021-05-10 00:26:42 -07:00
syeopite c5fae84263
Add functionality to read more button 2021-05-10 00:25:20 -07:00
syeopite d6585d7583
Overhaul Invidious's "Youtube" player style 2021-05-03 04:22:17 -07:00
syeopite 1924d75c2b
Improve mobile user interface for video player 2021-05-03 03:44:33 -07:00
syeopite 06b27d932d
Move player styling to separate file 2021-05-03 03:44:33 -07:00
syeopite 53cdb04be7
Improve mobile ux with videojs-mobile-ui 2021-05-03 03:44:33 -07:00
TheFrenchGhosty b9e57d0283
Merge pull request #1977 from syeopite/add996
Change empty home page to search engine like layout
2021-04-17 17:02:47 +00:00
138138138 4336a55c2e
Update default.css 2021-04-09 23:29:18 +09:00
syeopite bc5c0f65b8
Add watch on Invidious button to embeds 2021-04-08 04:15:15 -07:00
syeopite 1057d0eaa6
Fix response design on search homepage 2021-04-07 01:44:03 -07:00
syeopite 73b1284234
Fix search-widget styling for change in #1976 2021-04-07 00:16:14 -07:00
syeopite 5f2e87f0e3
Fix rendering of hr element 2021-04-07 00:09:38 -07:00
syeopite d9528f5cc3
Change positioning of footer to use flexbox 2021-04-06 23:53:38 -07:00
syeopite 909606826d
Change footer div into footer element 2021-04-06 04:15:08 -07:00
syeopite e6e2d51b58
Improve search widget margins 2021-04-05 20:42:04 -07:00
syeopite ea16c01fa2
Fix mobile responsive design for footer 2021-04-05 20:24:02 -07:00
syeopite fe879e6d94
Fix missing colon in empty.css 2021-04-04 17:17:59 -07:00
syeopite 049e8e07ef
Fix footer position to bottom of page 2021-04-04 02:45:38 -07:00
syeopite 47dfd4e681
Scale text logo on search engine like homepage 2021-04-04 02:26:01 -07:00
syeopite 555108c7fd
Add styling to search bar on empty home page 2021-04-04 00:48:14 -07:00
syeopite b3099001be
Fix minor scaling issue in filter drop down.
Basically prevents filter content from jumping above the dropbox when there's
enough space to do
2021-03-26 13:51:22 -07:00
Andrew Zhao 89fd35e02d fix comment replies 2021-03-20 00:43:12 -04:00
syeopite 48a3c3a0c1
Add hover state to filter UI 2021-03-13 10:57:27 -08:00
syeopite fab9ae64a0
Remove duplicate styling code 2021-03-13 10:55:12 -08:00
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
2021-03-01 03:45:07 -08:00
Perflyst bcb44ab600
Merge branch 'master' into patch-1 2021-02-26 19:59:16 +01:00
Andrew Zhao 9b79e35d52 do not preload captions 2021-02-24 01:02:55 -05:00
138138138 3b484c362e
Skip duration multiply by playback rate
Fast Forward/Backward like YouTube. The skip duration is multiplied by playback rate.
2021-02-17 21:33:26 +08:00
138138138 121224b1b0
Fix ; () {} 2021-02-10 01:05:29 +08:00
138138138 ddd7f3f384
Update player.js 2021-02-03 11:50:14 +08:00
138138138 a6970e02f9
Fix double duration on all Apple devices
The fix will be applied when Safari browser is detected.
2021-02-02 21:25:13 +08:00
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.
2021-02-01 15:59:27 +08:00
Andrew Zhao 4a0b10984a Bump videojs and fix webworker 2021-01-29 19:08:28 -05:00
TheFrenchGhosty 1ad4685bb7
Merge pull request #1629 from tenpura-shrimp/searchui
Add ui for search sort and filter
2021-01-20 12:56:41 +00:00
Andrew Zhao 15ba3325d9 add ui for searching 2021-01-17 14:33:49 -05:00
Andre Borie 3046350cb2 Fix DASH playback bug. 2021-01-17 14:59:18 +00:00
Perflyst c7e65ce795
Merge pull request #1619 from tenpura-shrimp/ignorevideoplayback
do not add local to xhr when in videoplayback
2021-01-13 10:01:03 +01:00
Andrew Zhao 5a08dfa72f fix incorrect use of setinterval in js 2021-01-10 17:05:08 -05:00
Andrew Zhao ac0ed14eae do not add local to xhr when in videoplayback 2020-12-29 17:58:24 -05:00
Perflyst eeeecf9763
Merge pull request #1572 from saltycrys/add-dash-quality-preference
Add DASH quality preference
2020-12-23 20:36:13 +01:00
saltycrys 75c6844b66 Improve storyboards
Instead of limiting the width of storyboards through CSS it is now done in the
VTT directly.
2020-12-21 17:02:36 +01:00
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.
2020-12-19 18:37:41 +01:00
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.
2020-12-19 18:37:30 +01:00
saltycrys fc67dd18d0 Increase color contrast of light theme links 2020-12-14 14:20:31 +01:00
saltycrys b3e9b92344 Fix pure-button hover color on a-tags 2020-12-14 14:15:03 +01:00
TheFrenchGhosty 5e8856e65b
Merge pull request #1551 from saltycrys/add-embed-link
Add embed link to watch page
2020-12-08 21:30:13 +00:00
Andrew Zhao 0cb442d40e do not proxy hls on supported browser 2020-12-08 00:53:48 -05:00
saltycrys 680dc1f962 Shuffle URL params
The `list` and `index` params are the most important and come first now.
2020-12-08 02:30:48 +01:00
TheFrenchGhosty fe73eccb90
Merge pull request #1479 from saltycrys/theme-flash
Apply dark theme immediately
2020-11-28 20:54:45 +00:00
saltycrys 5f932e9749 Fix CSS specificity issues 2020-11-18 00:10:32 +01:00
saltycrys ff46c18164 Move themes into default.css
Now that themes are controlled with a class instead of setting
media="none" on the stylesheet link and both themes already being
duplicated in default.css for the automatic themeing it makes sense
to have all theme related CSS in the same place.

This commit also fixes the missing dark theme on embeds.
2020-11-17 22:53:45 +01:00
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.
2020-11-16 04:19:41 +01:00
saltycrys 0530045536
Remove double empty line 2020-11-12 16:53:31 +01:00
saltycrys d3e4739745 Improve storyboard display 2020-11-08 22:23:24 +01:00
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.
2020-11-08 22:02:25 +01:00
Matthew McGarvey 5937e0289e Fix feed menu overlap at ipad screen widths 2020-10-07 23:01:18 -05:00
TheFrenchGhosty 3ab3a5a236
Merge pull request #713 from leonklingele/keydown-mediakeys-detection
js: add support to detect media keys in keydown handler
2020-09-09 03:15:21 +00:00
Omar Roth 3f97bebd69
Support adding video to playlist from watch page 2020-04-09 10:55:32 -05:00
Omar Roth 0e58d99f4e Fix player mouseover events 2020-03-27 09:47:46 -05:00
Omar Roth bd7950b757
Add toggle_parent to dynamic handlers 2020-03-15 18:52:49 -04:00
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
2020-03-15 16:46:08 -05:00
Kyle Copperfield a3045a3953
Use a MediaQueryListener to toggle on demand. Tested on OSX. (#925)
Closes #867.
2020-03-02 09:33:47 -06:00
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.
2020-03-01 17:43:19 +01:00
Jorge Maldonado Ventura dd9f1024f4 Remove invalid HTML from embed player 2020-02-01 19:25:03 +01:00
Omar Roth 72bfdfd925
Merge pull request #975 from jorgesumle/embed
Change embed code
2020-02-01 11:11:12 -05:00
Omar Roth 0560d2cfb7
Bump video.js 2020-01-08 20:19:47 -05:00
Jorge Maldonado Ventura 58c1a68ad9 Change embed code 2020-01-04 15:27:45 +01:00
Omar Roth 23ccaea2ff
Fix comment event listener 2019-10-18 12:44:11 -04:00
Omar Roth be055d9dcb
Add support for custom playlists 2019-10-15 21:17:14 -04:00
Omar Roth 330ffb803f
Remove invalid source map directive for videojs-quality-selector 2019-10-14 21:07:07 -04:00
Omar Roth e03b4b7505
Hide scrollbar for player menus 2019-10-05 11:51:31 -04:00
Omar Roth e61c8046f4
Fix z-index, scrollbar in player 2019-10-04 12:50:44 -04:00
agony affeeb39de Fixed bug that made the whole 'Invidious' div clickable. Solves #691 2019-10-02 14:05:58 +02:00
Omar Roth 553d52a45e
Update silvermine quality selector 2019-09-26 17:11:10 -04:00
Omar Roth be2ee33273
Fix overflow for player controls 2019-09-24 13:38:50 -04:00
Omar Roth 9766322e99
Update videojs-quality-selector 2019-09-21 22:22:20 -04:00
Omar Roth 7d3ecd2297
Bump JS/CSS dependencies 2019-08-27 08:01:33 -05:00
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.
2019-08-18 23:22:39 -05:00
Omar Roth 2b94975345
Fix playlist_thumbnail extractor 2019-08-16 20:06:21 -05:00
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.
2019-08-16 16:01:14 -05:00
Dragnucs 7eaac995bd Change font family to better native selection (#679) 2019-08-16 15:59:05 -05:00
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>).
2019-08-15 11:29:55 -05:00
Omar Roth f6f176afc1
Merge pull request #680 from leonklingele/add-player-styles
Add support for player styles
2019-08-09 13:49:51 -05:00
Omar Roth 3de37a61c5
Update videojs-http-source-selector 2019-08-09 10:36:41 -05:00
Leon Klingele 46577fb128
Add support for player styles
This currently includes the following styles:

- Invidious, the default
- YouTube, using a centered play button and always visible video control bar

Implements https://github.com/omarroth/invidious/issues/670.
Supersedes https://github.com/omarroth/invidious/pull/661.
2019-08-09 02:04:36 +02:00
Leon Klingele fe2cffb25b
Fix jumpy page on search field focus 2019-08-01 09:35:57 +02:00
Omar Roth d034fecc89
Remove default arguments from function definitions 2019-07-20 20:33:44 -05:00
Omar Roth e8a56e0fea
Add '1.75' playback speed 2019-07-14 10:13:40 -05:00
Omar Roth bcd239ac2b
Add community page 2019-07-09 09:31:04 -05:00
Omar Roth aac240fe41
Resize comment thumbnails 2019-07-01 12:08:29 -05:00
Omar Roth 8fad0af935
Add caption styling 2019-06-30 22:46:08 -05:00
Omar Roth a3cc3c57fd
Add cursor: none to player 2019-06-28 20:55:23 -05:00
Omar Roth 0d0d3edeae
Add thumbnail and banners to channel page 2019-06-28 20:48:24 -05:00
Omar Roth cc6d6ddd66
Prevent firing _onStreamProgress after aborting 2019-06-22 20:08:37 -05:00
Omar Roth bbb40aef51
Fix event listener for notifications.js 2019-06-16 18:11:34 -05:00
Omar Roth 485a3e29e7
Optimize get_subscriptions AJAX 2019-06-16 17:33:24 -05:00
Omar Roth 1477f99c2c
Add target="_blank" to embed titles 2019-06-16 14:49:00 -05:00
Omar Roth 2e1f9d5fa9
Fix title URL for embedded videos 2019-06-16 13:14:56 -05:00
Omar Roth 9dea251862
Fix typo in notifications.js 2019-06-16 12:57:56 -05:00
Omar Roth 17edfd6573
Shorten timeout for AJAX 2019-06-16 12:55:17 -05:00
Omar Roth 485459b8b2
Add clickable title for embedded videos 2019-06-16 09:41:33 -05:00
Omar Roth 552f616305
Fix retry on timeout for AJAX requests 2019-06-15 10:09:32 -05:00
Omar Roth 9122f8acee
Add title overlay to embedded videos 2019-06-08 10:52:47 -05:00
Omar Roth ef8c9f093c
Add premiere date to watch page 2019-06-08 10:18:45 -05:00
Omar Roth 8c944815bc
Minor refactor 2019-06-07 21:13:50 -05:00
Omar Roth 8521f04087
Use short URL for sharing videos 2019-06-05 11:10:23 -05:00
Omar Roth e23bab0103
Only add notification event listener after onload 2019-06-01 17:38:49 -05:00
Omar Roth 0338fd42e1
Add support for Web notifications 2019-06-01 16:09:17 -05:00
Omar Roth efd54b7523
Add 'comments' as URL parameter 2019-05-29 14:24:30 -05:00
Omar Roth d68baf08cb
Shrink h1 on mobile 2019-05-28 10:04:04 -05:00
Omar Roth a7578aa709
Update videojs-vtt-thumbnails version 2019-05-27 20:55:34 -05:00
Omar Roth de77c71042
Add "local" to "next video" URLs 2019-05-27 12:16:22 -05:00
Omar Roth 4345b1d930
Reset playbackRate once player has caught up to source 2019-05-20 12:15:48 -05:00
Omar Roth 7d2e1f63b5
Refactor watched_widget.js 2019-05-16 20:51:17 -05:00
Omar Roth e833ccf309
Fix comments for age-restricted videos 2019-05-14 08:18:57 -05:00
Omar Roth bb15dc57a4
Fix font color for captions button 2019-05-11 11:09:45 -05:00
Omar Roth bfa488f77d
Add option to toggle theme without reload 2019-05-09 11:50:44 -05:00
Omar Roth 03be793930
Fix typo in player.js 2019-05-09 08:36:36 -05:00