Commit graph

550 commits

Author SHA1 Message Date
saltycrys ef96a50cea Remove "Top" feed option from preferences
The Top feed used to be a feed based on YouTube ratings. Once YouTube removed
publicly available ratings the Top feed was removed from Invidious but the
option to display a link to it remained.
2020-12-19 19:30:42 +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
TheFrenchGhosty 2349a6ab0c Actually fix the icons of #1564 but for real this time 2020-12-09 20:21:42 +01:00
TheFrenchGhosty 70eaf41acb Actually fix the icons of #1564 by using an icon that exist in ionicons v4 2020-12-09 20:14:06 +01:00
TheFrenchGhosty 912091981e Fix the icons of #1564 and remove a useless line 2020-12-09 20:04:59 +01:00
TheFrenchGhosty aca42ff6a5
Update the cryptocurrency addresses and replace the Liberapay link with a link to the documentation (#1564)
* Update the cryptocurrency address with newly created one

* Replace the icon used for the donation address and link

* Replace the word Monero with the word XMR

* Replace the Liberapay placeholder with a link to the documentation
2020-12-09 19:43:45 +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
saltycrys d42539949e Add YT embed link to watch page 2020-12-08 19:10:29 +01:00
Andrew Zhao 0cb442d40e do not proxy hls on supported browser 2020-12-08 00:53:48 -05:00
saltycrys 30c92ce1b7 Add embed link to watch page 2020-12-08 02:28:44 +01:00
TheFrenchGhosty 68552b6d65
Merge pull request #1544 from schwukas/fix-youtube-subscription-import
Fix youtube subscription import
2020-12-07 17:03:57 +00:00
Lukas 77c13e10ec Update link to instructions 2020-12-07 13:34:40 +01:00
Lukas 0f66ff50a4 Fix #1516 Document is empty 2020-12-07 13:10:00 +01:00
Lukas cb40a74aaf Add temporary link to subscription export instructions 2020-12-06 21:46:58 +01:00
TheFrenchGhosty fe73eccb90
Merge pull request #1479 from saltycrys/theme-flash
Apply dark theme immediately
2020-11-28 20:54:45 +00:00
TheFrenchGhosty 6ca948ac3c
Merge pull request #1477 from saltycrys/empty-preference-values
Fill empty preference values
2020-11-19 21:45:00 +00: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 72c4fd868a Fill empty preference values 2020-11-16 01:33:55 +01:00
Émilien Devos c9c6c1f769
Remove duplicate Referrer-Policy 2020-11-15 10:02:45 +00:00
Perflyst bb7d8735cb
Merge branch 'master' into patch-1 2020-11-12 17:06:38 +01:00
Perflyst 557b0d76ab
Merge pull request #919 from edumoreira1506/feature/add-buttons-top-page
Add Previous/Next page buttons at the top of the page
2020-11-12 17:00:23 +01:00
saltycrys d3e4739745 Improve storyboard display 2020-11-08 22:23:24 +01:00
Triplesalt ec4a22687f
Update get_about_info for polymer (iv-org/invidious#1423) (#1429)
Update get_about_info for polymer (iv-org/invidious#1423)
2020-10-23 01:40:07 +00:00
Matthew McGarvey 5937e0289e Fix feed menu overlap at ipad screen widths 2020-10-07 23:01:18 -05:00
Andre Borie a54cbe896d
Remove on-hover tooltip from player
Using the player on latest Safari, the tooltip appears and stays stuck for long even when switching to fullscreen which is annoying. You need to explicitly click anywhere to dismiss that stuck tooltip.

This doesn't seem to happen in Firefox so I am not sure whether this is a browser bug, but in any case I don't see any value in keeping this tooltip so maybe we can just remove it?
2020-09-15 18:50:17 +01:00
stranger195 13f58d602f
Replace omarroth with iv-org where applicable (#1353)
Fixes #1353
2020-08-25 16:07:16 +00:00
Omar Roth 1eca969cf6
Add support for polymer redesign 2020-06-15 18:18:04 -05:00
Omar Roth c1cbdae5ee
Make HOST_URL constant 2020-06-15 18:13:14 -05:00
Omar Roth 4d4b6a2fa0
Remove top page 2020-06-15 18:11:36 -05:00
Dmitry Sandalov 338dc3223c
Merge pull request #1182 from DmitrySandalov/master
Allow user to subscribe to playlist (#17)
2020-06-13 15:10:18 +03:00
mendel5 80941eacbd
More consistent HTML IDs for info section (#1156)
* More consistent IDs for info section

More consistent IDs for info section: watch-on-youtube, annotations and download

* Consistent IDs: channel-name

* Consistent IDs: published-date

The term "published" can also be found in the answer for the following YouTube API request: https://developers.google.com/youtube/v3/docs/videos/list
2020-05-26 02:57:10 -05:00
Dmitry Sandalov 5d8de5fde2
Allow user to subscribe to playlist (#17) 2020-05-17 14:28:00 +03:00
mendel5 9d23cf33fd
Consistent IDs for info section (#1133) 2020-04-30 15:01:29 -05:00
Omar Roth 408f3852ec
Hide playlist widget when user has no playlists 2020-04-15 16:30:02 -05:00
Omar Roth ca1185d0be
Fix warnings in latest version of Crystal 2020-04-09 12:18:09 -05:00
Omar Roth 3f97bebd69
Support adding video to playlist from watch page 2020-04-09 10:55:32 -05:00
Omar Roth 3b2e142542
Fix JSON serialization 2020-03-29 18:04:44 -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
Omar Roth f92027c44b
Escape 'sort_by' 2020-03-10 11:25:32 -04:00
Omar Roth 9dc4f8a1aa
Escape item titles in search page 2020-03-04 13:03:14 -05:00
Pedro Lucas Porcellis 239fb0db94
Remove duplicated Github logo on footer (#986)
* Remove duplicated Github logo on footer
2020-02-20 18:50:54 -05:00
Alexander Pushkov 1fc9506442
Add audio mode link to items 2020-01-21 15:36:56 +03:00
edumoreira1506 48cbe45a9d Add Previous/Next page buttons at the top of the page 2019-11-20 15:59:07 -03:00
sh4dowb 79da61782b
Fixed double quotes in meta description 2019-11-11 19:00:23 +03:00
Omar Roth 0f3c477ff3
Remove dependency on ImageMagick (replace with rsvg-convert) 2019-10-28 10:49:05 -04:00
Omar Roth 0cf187dee7
Add support for image captcha in Google login 2019-10-27 00:19:05 -04:00
Omar Roth c3e57f1fdd
Fix typo in footer 2019-10-20 23:02:16 -04:00
Omar Roth a9af484412
Merge pull request #839 from TheFrenchGhosty/crypto
Add protocol to the cryptocurrencies
2019-10-20 22:39:24 -04:00
Omar Roth 7524b5e349
Move feed_menu and default_home into user preferences 2019-10-20 20:43:33 -04:00
TheFrenchGhosty 3cbdaab81e Add protocol to the cryptocurrencies 2019-10-19 20:23:27 +02:00
Omar Roth be055d9dcb
Add support for custom playlists 2019-10-15 21:17:14 -04:00
Omar Roth 55f0a82249
Remove Patreon links 2019-10-12 10:07:18 -04:00
Omar Roth e390405d0c
Update privacy policy 2019-09-24 20:47:49 -04:00
leonklingele 1aefc5b540 Update to Crystal 0.31.0, resolve compiler deprecation warnings, update dependencies (#764)
* shard: update to crystal 0.31.0

Additionally, no longer use the Crystal "markdown" library which has
been removed from the Crystal stdlib in version 0.31.0.
See https://github.com/crystal-lang/crystal/pull/8115.

Also fix some deprecation warnings using the following commands:

    find . \( -type d -name .git -prune \) -o -type f -exec sed -i 's/URI\.escape/URI\.encode_www_form/g' "{}" \;
    find . \( -type d -name .git -prune \) -o -type f -exec sed -i 's/URI\.unescape/URI\.decode_www_form/g' "{}" \;
    sed -i 's/while \%pull\.kind \!\= \:end_object/until \%pull\.kind\.end_object\?/g' src/invidious/helpers/patch_mapping.cr
2019-09-24 13:31:33 -04:00
Omar Roth b1fc80b79a
Update sub_count extractor 2019-09-12 21:09:23 -04:00
Omar Roth 50d793e49b
Hide video count for auto-generated channels 2019-09-12 13:11:21 -04:00
Omar Roth 16056661dd
Update recommended videos extractor 2019-08-27 08:00:04 -05:00
Omar Roth 4c9975a7d9
Use accurate sub count when available 2019-08-21 18:35:54 -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
Omar Roth a19cdb5e72
Fix season playlists 2019-08-16 15:46:59 -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
Andrew 00346781bb
Fix annoying typo in Preferences view 2019-08-14 20:12:37 +00: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
Omar Roth 66b949bed1
Format history.ecr 2019-08-05 18:57:32 -05:00
Omar Roth c9a05187fb
Update icon for unlisted videos 2019-08-05 18:57:32 -05:00
Omar Roth 4f120e19fd
Fix overflow for channel description 2019-08-04 09:46:26 -05:00
Omar Roth f71d5c429d
Add description to channel pages 2019-07-31 19:29:16 -05:00
Omar Roth ff5d79e3ee
Update video extractor 2019-07-29 19:41:45 -05:00
Omar Roth 4ee3ec09df
Autofill search for playlists and communities page 2019-07-27 08:51:10 -05:00
Omar Roth 6215259565
Add support for Google login verification 2019-07-22 13:28:36 -05:00
Omar Roth e736626953
Fix continuation for last page of playlists 2019-07-20 11:38:20 -05:00
Omar Roth 94638fe42c
Update translations 2019-07-18 21:52:25 -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 2cc25b1e6e
Add administrator option to disable proxying 2019-07-08 12:15:18 -05:00
Omar Roth 1485ee8027
Fix channel thumbnail size in FireFox 2019-07-03 10:53:33 -05:00
Omar Roth 196ee1aa8b
Add '/api/v1/channels/comments' 2019-07-02 18:53:19 -05:00
Omar Roth 501b523680
Fit channel link to content 2019-07-01 14:26:27 -05:00
Omar Roth 48ad744ebf
Add support for default channel banners 2019-06-30 12:59:38 -05:00
Omar Roth 556d5b0ca5
Resize channel thumbnails 2019-06-30 12:39:51 -05:00
Omar Roth a58f5a925a
Add banner to "/playlists" page 2019-06-28 21:00:28 -05:00
Omar Roth 0d0d3edeae
Add thumbnail and banners to channel page 2019-06-28 20:48:24 -05:00
Omar Roth 17edfd6573
Shorten timeout for AJAX 2019-06-16 12:55:17 -05:00
Omar Roth 458e9d6cc7
Update license for sse.js 2019-06-16 09:46:09 -05:00
Omar Roth 485459b8b2
Add clickable title for embedded videos 2019-06-16 09:41:33 -05:00
Omar Roth fcf377d26b
Fix escaping for login page 2019-06-15 20:42:42 -05:00
Omar Roth 552f616305
Fix retry on timeout for AJAX requests 2019-06-15 10:09:32 -05:00
Omar Roth d1635cf24e
Set max preference size 2019-06-08 16:04:55 -05:00
Omar Roth b43e9ed7e7
Refactor 'description_html' 2019-06-08 15:08:27 -05:00
Omar Roth 12b2ab5da8
Add 'to_json' into respective structs 2019-06-08 13:31:41 -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 2febc268f7
Fix warnings in Crystal 0.29 2019-06-07 21:13:50 -05:00
Omar Roth 8c944815bc
Minor refactor 2019-06-07 21:13:50 -05:00
Omar Roth 576067c1e5
Fix preference for web notifications 2019-06-01 18:06:44 -05:00
Omar Roth 0338fd42e1
Add support for Web notifications 2019-06-01 16:09:17 -05:00
Omar Roth 69ab236f3f
Fix typo in '/watch' 2019-05-30 19:00:38 -05:00
Omar Roth 64464f23ae
Add 'views' to channel_videos 2019-05-30 18:59:13 -05:00
Omar Roth a7578aa709
Update videojs-vtt-thumbnails version 2019-05-27 20:55:34 -05:00
Omar Roth fc346b4efd
Add 'View playlist on YouTube' 2019-05-27 14:54:50 -05:00
Omar Roth f66fa1150e
Fix inconsistency in translation 2019-05-27 11:56:52 -05:00
Omar Roth 29e9e0f2cc
Provide empty response on 204 2019-05-27 08:35:38 -05:00
Omar Roth 7d2e1f63b5
Refactor watched_widget.js 2019-05-16 20:51:17 -05:00
Omar Roth d93df15eff
Update licenses 2019-05-10 15:33:23 -05:00
Omar Roth fd8af88493
Use separate asset version for cache busting 2019-05-09 22:58:34 -05:00
Omar Roth bfa488f77d
Add option to toggle theme without reload 2019-05-09 11:50:44 -05:00
Omar Roth 4616f889fd
Add simple form of cache busting 2019-05-08 08:58:10 -05:00
Omar Roth 59cbf95c4f
Update licenses 2019-05-06 11:27:11 -05:00
Omar Roth 058711d3a8
Refactor player.js 2019-05-06 11:23:14 -05:00
Omar Roth 2ddc61fa5c
Refactor embed.js 2019-05-06 10:37:22 -05:00
Omar Roth e04b7d0f01
Fix video previews for embeds 2019-05-06 10:28:20 -05:00
Omar Roth 2faa2ed1f4
Refactor watch.js 2019-05-06 09:48:33 -05:00
Omar Roth 0099a9822e
Refactor subscribe_widget 2019-05-05 08:38:55 -05:00
Omar Roth 757993064e
Fix view_count_text extractor for livestreams 2019-05-04 08:43:41 -05:00
Omar Roth 570715100b
Fix text size for premieres 2019-05-03 18:00:16 -05:00
Omar Roth ad8750b40d
Fix referer escaping 2019-05-03 12:15:21 -05:00
Omar Roth 6d92775ab5
Add video previews 2019-05-02 14:36:32 -05:00
Omar Roth 1a9360ca75
Minor formatting changes 2019-05-01 20:03:39 -05:00
Omar Roth 6fb44083ec
Update source and licenses 2019-05-01 07:40:18 -05:00
Omar Roth 56fe3ede5b Add annotation preferences 2019-04-30 23:39:04 -05:00
glmdgrielson e48a000784 Add annotation player
This addresses issue #110 from master. Yay for adding annotations back!
2019-04-30 21:19:13 -05:00
Omar Roth 6d1c150ff5
Fix typo 2019-04-30 21:18:35 -05:00
Omar Roth 21190a240f
Add support for adding banner to site header 2019-04-30 21:17:34 -05:00
Omar Roth c6c92184d9 Fix duplicate id on watch page 2019-04-29 09:34:49 -05:00
Omar Roth c4fbc65354 Provide bundled streams first in download widget 2019-04-28 18:51:10 -05:00
Omar Roth ef309bd8d0 Translate value for 'familyFriendly' 2019-04-28 14:56:06 -05:00
Omar Roth 03891b66b6 Show view count for related videos 2019-04-28 14:14:44 -05:00
Omar Roth f08d53b0c6 Add view count to livestreams in search results 2019-04-28 14:11:23 -05:00
Omar Roth 6859b85266 Add 'lang' to HTML tag 2019-04-28 10:05:15 -05:00
Omar Roth 075adb4f03 Add http-source-selector 2019-04-28 10:05:15 -05:00
Omar Roth 8c2958b86d Add 'local=true' to hlsUrl 2019-04-25 12:41:35 -05:00
Omar Roth 64aecba7a0 Add option to change passwords 2019-04-22 10:18:17 -05:00
Allan Nordhøy aa10a9d899 Language fixes (#366)
* Language fixes
2019-04-19 11:14:11 -05:00
Omar Roth bb5a1ad513 Add 'continue_autoplay' preference 2019-04-19 09:38:27 -05:00
Omar Roth eac0a52f10 Fix shiftKey for player hotkeys 2019-04-19 09:20:41 -05:00
Omar Roth 2a6c81a89d Add authentication API 2019-04-18 16:23:50 -05:00
Omar Roth ae7b5fac74 Fix handling for comments 2019-04-16 08:20:25 -05:00
Omar Roth 26168a9520 Refactor CSRF tokens (using format in #473) 2019-04-15 23:23:40 -05:00
Omar Roth 05513bcd1e Fix "placeholder=" text in locales 2019-04-14 19:17:56 -05:00
Omar Roth f5dd135ed8 Add 'view as playlist' option to trending page 2019-04-14 19:04:10 -05:00
Omar Roth ca515f2eae Use headset icon for audio mode 2019-04-14 18:24:25 -05:00
Omar Roth b51fd7fc13 Add view count to video items 2019-04-14 17:43:44 -05:00
Omar Roth efe86c37b2 Show subscribe text when not logged in 2019-04-14 17:10:32 -05:00
Omar Roth d20a4a8bfc Fix grid size for smaller devices 2019-04-14 17:04:52 -05:00
Omar Roth 9a7fea0447 Add playlist support to embedded videos 2019-04-13 14:26:32 -05:00
Omar Roth e8c5246645 Fix share button 2019-04-12 09:31:05 -05:00
Omar Roth 5de300fb35 Fix default background color for player 2019-04-11 17:03:37 -05:00
Omar Roth 5e141e869d Add subtitles to download widget 2019-04-11 12:08:43 -05:00