Omar Roth
a117d87f33
Skip validation checks for videoplayback, ggpht
2020-03-04 13:06:17 -05:00
leonklingele
0d536d11e3
Verify token signature in constant time, Run cheap checks first in token validation process ( #1032 )
...
* Verify token signature in constant time
To prevent timing side channel attacks
* Run cheap checks first in token validation process
Expensive checks such as the nonce lookup on the database or the
signature check can be run after cheap/fast checks.
2020-03-02 10:04:36 -06:00
Omar Roth
43da06a354
Remove temp fix for crystal/crystal-lang#7383
2020-02-20 18:30:46 -05:00
Leon Klingele
bc9dc3bf1e
Update code formatting for Crystal 0.33.0
...
Crystal 0.33.0 introduced some changes to to the code formatter.
Run "crystal tool format" so CI doesn't fail anymore.
2020-02-15 19:52:28 +01:00
Omar Roth
a2c5211b20
Check /browse_ajax for channel blocks
2020-02-01 11:23:12 -05:00
Omar Roth
648cc0f006
Refactor signature extraction
2020-01-24 17:02:28 -05:00
Omar Roth
823603650f
Add support for /sorry/index CAPTCHA
2019-12-03 19:14:11 -05:00
Omar Roth
a017574f74
Add support for force_resolve to QUIC client
2019-11-28 08:19:28 -06:00
Omar Roth
0e3a48ff76
Update QUICPool
2019-11-24 13:41:47 -05:00
Omar Roth
d46b26e3bc
Use QUIC for connections to YouTube
2019-11-18 17:28:32 -05:00
Omar Roth
71bc9eea28
Add support for Anti-Captcha
2019-11-09 14:22:39 -05:00
Omar Roth
142d974641
Use force_resolve for search suggestions
2019-11-07 12:25:34 -05:00
Omar Roth
bcdb8cd770
Fix default fo dark_mode
2019-11-04 17:08:13 -05:00
Omar Roth
833a60f29c
Update pubsub to use client pool
2019-11-01 07:34:36 -04:00
Omar Roth
13e7cca1a4
Bump read timeout
2019-10-28 12:34:50 -04:00
Omar Roth
03e24cccd0
Add support for configurable administrator email
2019-10-27 14:18:07 -04:00
Omar Roth
0cf187dee7
Add support for image captcha in Google login
2019-10-27 00:19:05 -04:00
Omar Roth
bdeb325bad
Fix monkeypatch for HTTP::Client
2019-10-26 11:51:23 -04:00
Omar Roth
a1225b6d0d
Sanitize input to decode_length_seconds
2019-10-26 10:17:25 -04:00
Omar Roth
202de1436d
Fix broken connections in pool
2019-10-25 23:06:08 -04:00
Omar Roth
7f8746fcd4
Remove invalid connections from pool
2019-10-25 22:40:53 -04:00
Omar Roth
e05a25d701
Vary user-agent
2019-10-25 18:02:33 -04:00
Omar Roth
6930570fa2
Add HTTPClient pool
2019-10-25 12:58:16 -04:00
Omar Roth
7524b5e349
Move feed_menu and default_home into user preferences
2019-10-20 20:43:33 -04:00
Omar Roth
2a4b252a9d
Only force resolve for www.youtube.com
2019-10-18 12:41:03 -04:00
Omar Roth
be055d9dcb
Add support for custom playlists
2019-10-15 21:17:14 -04:00
Omar Roth
7aada3f328
Avoid override for X-Client headers
2019-10-10 23:45:46 -04:00
Omar Roth
dad885c051
Add YouTube-Client headers to HTTP requests
2019-10-10 22:03:39 -04:00
Omar Roth
da07f99d3d
Bump supported Crystal version
2019-09-30 15:36:54 -04:00
Omar Roth
f69f0b97f5
Add fix for index out of bounds during high load
2019-09-24 13:38:50 -04:00
Omar Roth
4361ea9686
Update DB calls for 0.31.0
2019-09-24 13:38:50 -04:00
Omar Roth
8c2ddb0255
Add config options for host binding and port
2019-09-24 13:38:50 -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
34c43b8349
Add support for abbreviated sub count in search
2019-09-12 13:06:27 -04:00
Omar Roth
7c75111c41
Refactor error handling for API endpoints
2019-09-05 14:12:14 -04:00
Omar Roth
7b53b6bfef
Shrink continuation cursor for YouTube comments
2019-09-04 15:47:27 -04:00
Omar Roth
26107bd6c3
Minor refactor
2019-08-27 08:08:26 -05:00
Omar Roth
059f50dad4
Add 'playlistThumbnail' to playlist objects
2019-08-21 19:08:11 -05:00
Omar Roth
9f9cc1ffb5
Refactor search extractor
2019-08-21 18:23:20 -05:00
Omar Roth
2b94975345
Fix playlist_thumbnail extractor
2019-08-16 20:06:21 -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
Leon Klingele
2a9a348164
Format Crystal files
...
Crystal 0.30.1 apparently introduced some breaking changes to their
code formatter which made CI fail.
The code was automatically formatted by running
crystal tool format
2019-08-14 23:31:07 +02:00
Omar Roth
b63f469110
Fix typo in ConfigPreferences
2019-08-09 14:09:24 -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
Omar Roth
f18d8229c0
Refactor continuation protocol buffers
2019-07-20 20:18:08 -05:00
Omar Roth
1b74a04efd
Add 'force_resolve' to fix issues with rate limiting
2019-07-18 18:51:10 -05:00
Omar Roth
1a7b341745
Update Google login
2019-07-12 12:04:39 -05:00
Omar Roth
af592ea8c1
Fix extraction for ytInitialData
2019-07-11 07:27:54 -05:00
Omar Roth
2cc25b1e6e
Add administrator option to disable proxying
2019-07-08 12:15:18 -05:00
Omar Roth
5fd3ed782f
Add fix for #600
2019-07-08 10:00:08 -05:00
Omar Roth
c34a24b633
Attempt to optimize query for subscription feed
2019-07-07 14:00:42 -05:00
Omar Roth
e5fa5df7be
Chunk video files to bypass throttling
2019-07-04 23:29:28 -05:00
Omar Roth
f7dbf2bdd4
Add 'pipe' for proxying assets
2019-07-04 23:29:28 -05:00
Omar Roth
041debcd93
Revert "Chunk videoplayback response to avoid throttling"
...
This reverts commit 818cd2454d
.
2019-07-01 10:45:09 -05:00
Omar Roth
e30d70b6d4
Refactor proxy_list into global
2019-06-28 21:17:56 -05:00
Omar Roth
dd0be7c522
Revert "Push potential fix for #578 "
...
This reverts commit ebfd7d2153
.
2019-06-28 11:05:08 -05:00
Omar Roth
ebfd7d2153
Push potential fix for #578
2019-06-26 14:44:06 -05:00
Omar Roth
818cd2454d
Chunk videoplayback response to avoid throttling
2019-06-26 14:43:33 -05:00
Omar Roth
b31d1c06f5
Fix typo in StaticFileHandler
2019-06-23 15:41:44 -05:00
Omar Roth
6cd884555c
Patch StaticFileHandler to serve files from memory
2019-06-23 12:54:46 -05:00
Omar Roth
3be1c9261f
Fix sleep in pull_top_videos
2019-06-15 19:18:36 -05:00
Omar Roth
fa6bf21cd1
Update Google login
2019-06-09 13:48:31 -05:00
Omar Roth
b43e9ed7e7
Refactor 'description_html'
2019-06-08 15:08:27 -05:00
Omar Roth
801dffd571
Fix RSS content-type
2019-06-07 21:39:32 -05:00
Omar Roth
2febc268f7
Fix warnings in Crystal 0.29
2019-06-07 21:13:50 -05:00
Omar Roth
58995bb3a2
Add support for log levels
2019-06-07 21:13:50 -05:00
Omar Roth
8c944815bc
Minor refactor
2019-06-07 21:13:50 -05:00
Omar Roth
317d8703ca
Optimize query for pulling popular videos
2019-06-06 21:33:30 -05:00
Omar Roth
352e409a6e
Fix toggle_theme when visiting preferences with JS disabled
2019-06-04 20:13:58 -05:00
Omar Roth
d6ec441c8e
Add buffer for notification channels
2019-06-03 13:36:49 -05:00
Omar Roth
d892ba6aa5
Refactor connection channel for delivering notifications
2019-06-03 13:12:06 -05:00
Omar Roth
108648b427
Optimize query for creating subscription feeds
2019-06-02 11:48:18 -05:00
Omar Roth
71bf8b6b4d
Refactor connect_listen for notifications
2019-06-02 07:41:53 -05:00
Omar Roth
18d66ddded
Add 'needs_update' column for scheduling feed refresh
2019-06-01 10:19:18 -05:00
Omar Roth
da48bbf312
Add support for partial POST to '/api/v1/auth/preferences'
2019-05-30 19:00:38 -05:00
Omar Roth
ad09e734da
Refactor refresh_feeds
2019-05-27 14:48:57 -05:00
Omar Roth
c07ad0941c
Fix typo in refresh_feeds
2019-05-27 12:51:18 -05:00
Omar Roth
3ac766530d
Add proper queuing for feed events
2019-05-27 12:23:15 -05:00
Omar Roth
51c5f28443
Add config option for updating feeds on event
2019-05-26 12:06:01 -05:00
Omar Roth
b016a60a75
Add triggers for updating feeds
2019-05-26 11:28:54 -05:00
Omar Roth
208bb2d72f
Catch connection reset when proxying files
2019-05-26 09:41:12 -05:00
Omar Roth
267bf289c4
Exclude /api/v1/auth/notifications from middleware
2019-05-21 10:08:49 -05:00
Omar Roth
b3e083d866
Add POST /api/v1/auth/subscriptions
2019-05-21 09:01:17 -05:00
Omar Roth
a675c64c2d
Refactor DBConfig
2019-05-21 09:00:35 -05:00
Omar Roth
06bf0c2622
Copy proxy_file in chunks
2019-05-20 12:06:44 -05:00
Omar Roth
3ac8de0a64
Fix proxy_file when response body is empty
2019-05-19 07:13:13 -05:00
Omar Roth
ab4df7e078
Fix response for proxied assets
2019-05-18 19:15:47 -05:00
Omar Roth
97ef2191fd
Add 'hsts' as config option
2019-05-14 08:21:01 -05:00
Omar Roth
bdfe170c3b
Fix length seconds for videos with longer duration
2019-05-11 10:59:47 -05:00
Omar Roth
53fbb257b9
Update fix for HTTP Client
2019-05-05 19:03:56 -05:00
Omar Roth
65a32d6e20
Update fix for crystal-lang/crystal#7383
2019-05-05 17:47:45 -05:00
Omar Roth
bba80bc80f
Fix content-type for HEAD '.jpg'
2019-05-03 08:23:11 -05:00
Omar Roth
56fe3ede5b
Add annotation preferences
2019-04-30 23:39:04 -05:00
Omar Roth
21190a240f
Add support for adding banner to site header
2019-04-30 21:17:34 -05:00
Omar Roth
ef309bd8d0
Translate value for 'familyFriendly'
2019-04-28 14:56:06 -05:00
Omar Roth
6cdb6ec711
Add support for plurlization to locales
2019-04-28 14:50:17 -05:00
Omar Roth
f15b7cebac
Try to prevent timeout in /data_control
2019-04-24 20:18:35 -05:00
Omar Roth
fb7068d415
Add '/api/v1/notifications'
2019-04-20 09:33:45 -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
2a6c81a89d
Add authentication API
2019-04-18 16:23:50 -05:00
Omar Roth
b6fff53b21
Refactor HTTP::Client calls into make_client
2019-04-17 09:06:31 -05:00
Omar Roth
3bcb98e644
Add config option to cache annotations from IA
2019-04-15 11:13:09 -05:00
Omar Roth
b51fd7fc13
Add view count to video items
2019-04-14 17:43:44 -05:00
Omar Roth
80a567bf1e
Fix video count in playlist extractor
2019-04-12 16:37:35 -05:00
Omar Roth
ce2a3361eb
Fix missing author name for channel_videos
2019-04-12 16:29:23 -05:00
Omar Roth
4e6a931de3
Make check_tables config option
2019-04-11 12:13:25 -05:00
Omar Roth
e1c78fcbd3
Update view names to avoid collisions
2019-04-10 19:56:38 -05:00
Omar Roth
28d5bedcc7
Speed up table creation
2019-04-10 17:16:18 -05:00
Omar Roth
373b890e1d
Log command before execution
2019-04-10 17:09:36 -05:00
Omar Roth
5dc45c35e6
Automatically migrate database
2019-04-10 16:23:37 -05:00
Omar Roth
305d636217
Add multithreading to pubsub job
2019-04-04 07:49:53 -05:00
Omar Roth
31312747e9
Fix from_yaml in ConfigPreferences
2019-04-03 19:04:33 -05:00
Omar Roth
f6615a490d
Allow disabling download widget for specific videos (in compliance with DMCA)
2019-04-03 14:54:38 -05:00
Omar Roth
bd4f5ebcdf
Add option to configure default user preferences
2019-04-03 11:38:41 -05:00
Omar Roth
1fd7ff5655
Add scheme to author thumbnail
2019-04-02 08:51:28 -05:00
afrmtbl
a7723e6ded
Implement "fields" parameter from the YouTube Data API ( #429 )
...
* Implement fields handling
2019-03-30 20:18:34 -05:00
Omar Roth
1b78001201
Use struct for allocations
2019-03-29 16:30:02 -05:00
Omar Roth
388e58bf1e
Update handling for preferences
2019-03-28 13:43:40 -05:00
Omar Roth
591a6b330a
Remove 'crawl_threads', fix sleep in fibers
2019-03-25 09:23:42 -05:00
Omar Roth
847ee61bf4
Fix typo in APIHandler
2019-03-24 09:01:18 -05:00
Omar Roth
0c6cede287
Format files and trim trailing whitespace
2019-03-23 14:05:13 -05:00
Omar Roth
57c05354c2
Move 'pretty=1' into middleware
2019-03-23 10:24:30 -05:00
Omar Roth
fd26f9f34e
Add support for premieres to search and feed
2019-03-22 14:54:35 -05:00
Omar Roth
2ebc773863
Add mixes to genre channels
2019-03-17 18:31:11 -05:00
Omar Roth
99aa214859
Add 'thumbnail_id' to playlists
2019-03-17 12:21:47 -05:00
Omar Roth
e86eb16d91
Add temporary fix for crystal-lang/crystal#7383
2019-03-11 16:17:40 -05:00
Omar Roth
bc1e62ce51
Add 'external_port'
2019-03-08 11:37:52 -06:00
Omar Roth
1435516a9c
Add port number to host URL
2019-03-05 12:56:59 -06:00
Omar Roth
aa63c3f70e
Update formatting and default feed menu
2019-03-04 10:46:58 -06:00
Omar Roth
64cfd2296c
Add support for subscribing to channels via PubSubHubbub
2019-03-03 19:18:23 -06:00
Omar Roth
17cf0772fb
Set domain to be nil by default
2019-03-03 12:02:15 -06:00
Omar Roth
66605196ad
Remove "detect_language" from dependencies
2019-03-03 11:51:28 -06:00
Omar Roth
4be82c5ca6
Add /api/v1/stats
2019-03-01 19:25:16 -06:00
Omar Roth
a39b1583da
Add administrator preferences
2019-03-01 16:06:45 -06:00
Omar Roth
9a1f4de323
Convert intervals to integers
2019-02-20 09:37:33 -06:00
Omar Roth
83493237a5
Add support for translating time intervals
2019-02-20 08:49:54 -06:00
Omar Roth
27663b10a2
Add minor API fixes
2019-02-15 17:28:54 -06:00
Omar Roth
7a9ef0d664
Add produce_channel_playlists_url
2019-02-09 10:15:14 -06:00
Omar Roth
29af5fc4a6
Prune proxy list
2019-02-06 21:29:31 -06:00
Omar Roth
276662a147
Use IO::Memory for creating continuation tokens
2019-02-04 15:17:10 -06:00
Omar Roth
d0a690c303
Add CORS to API endpoints
2019-02-02 22:48:47 -06:00
Omar Roth
7a6a0f364c
Run 'crystal tool format'
2019-01-23 14:37:04 -06:00
Omar Roth
e1540390a8
Fix typo in config documentation
2019-01-23 14:30:45 -06:00
Omar Roth
71ba071160
Add documentation to config
2019-01-23 14:28:31 -06:00
Omar Roth
af449161ff
Add -o option for redirecting output
2019-01-23 14:15:19 -06:00
Omar Roth
5cb57fb176
Move 'domain' into config.yml
2019-01-20 22:19:14 -06:00