Commit Graph

398 Commits

Author SHA1 Message Date
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
Omar Roth
20c4d213d9 Use config.domain in place of hardcoded value 2019-01-19 09:10:52 -06:00
Omar Roth
0832fa9bdb Filter paid videos from RSS and channel list 2019-01-02 20:09:00 -06:00
Omar Roth
d06c5306be Update i18n 2018-12-20 17:41:42 -06:00
Omar Roth
7596baf03b Fix translation with non-existent locales 2018-12-20 16:59:46 -06:00
Omar Roth
a160c645c9 Add support for translations 2018-12-20 15:32:09 -06:00
Omar Roth
7d47b5d4bd Use named params for SearchChannel 2018-12-15 13:02:53 -06:00
Omar Roth
7fd4c76a59 Try to pull UCID instead of brand name in search results 2018-11-28 10:20:52 -06:00
Omar Roth
2be43c17ab Sample proxies to avoid overloading single proxy 2018-11-20 11:18:48 -06:00
Omar Roth
94c92b68a2 Add flat list of proxies for geo-bypass 2018-11-19 10:51:30 -06:00
Omar Roth
16964ca6ce Add 'region' parameter for bypassing region locks 2018-11-17 17:33:30 -06:00
Omar Roth
d185ba84bf Remember nonce to prevent replay attacks 2018-11-17 13:18:12 -06:00
Omar Roth
bf867c3fcf Add cookie sharing with subdomains 2018-11-15 16:41:43 -06:00
Omar Roth
1465cefa17 Move HMAC tokens into users.cr 2018-11-11 09:44:16 -06:00
Omar Roth
8e6bee75e7 Add CSRF prevention for /signout 2018-11-08 17:42:25 -06:00
Omar Roth
1ff8579575 Check user_id as part of validating CSRF tokens 2018-11-08 00:29:20 -06:00
Omar Roth
b9c29bf537 Add option for user to delete their account 2018-11-08 00:12:14 -06:00
Omar Roth
f988123820 Revert "Add Origin header checks"
This reverts commit 2be240767c.
2018-11-07 23:13:51 -06:00
Omar Roth
2be240767c Add Origin header checks 2018-11-07 23:05:50 -06:00
Omar Roth
4f856dd898 Add support for Crystal 0.27.0 2018-11-04 09:37:12 -06:00
Omar Roth
4875aa1d7e Add partial support for video duration in thumbnails 2018-10-20 20:37:55 -05:00
Omar Roth
5c87cf1547 Update subscribe buttons 2018-10-19 11:14:26 -05:00
Omar Roth
1cfa1f6559 Add 'paid' and 'premium' flags to API 2018-10-16 11:15:14 -05:00
Omar Roth
bcc8ba73bf Fix update_feeds job 2018-10-09 17:24:29 -05:00
Omar Roth
35e63fa3f5 Use materialized views for subscription feeds 2018-10-09 08:40:29 -05:00
Omar Roth
3830604e42 Try to speed up find_working_proxies 2018-10-03 10:38:07 -05:00
Omar Roth
f83e9e6eb9 Add config option for geo-bypass 2018-10-03 10:36:30 -05:00
Omar Roth
20130db556 Add mixes 2018-09-29 10:59:11 -05:00
Omar Roth
aa819a189e Use alternate source for proxies 2018-09-25 21:07:18 -05:00
Omar Roth
3e3de1890a Overhaul geo-bypass 2018-09-25 17:56:59 -05:00
Omar Roth
1922f6c69a Add more regions to geo-bypass 2018-09-23 19:29:47 -05:00
Omar Roth
5bdd8327d4 Add better support for movies in search and watch page 2018-09-23 12:13:08 -05:00
Omar Roth
1ab04638e3 Add 'videoCount' to playlists in search 2018-09-22 11:14:57 -05:00
Omar Roth
f80f4f2521 Add '/api/v1/channels/search' 2018-09-22 10:49:42 -05:00
Omar Roth
abb15b82e6 Don't discard search results with no metadata 2018-09-20 10:24:27 -05:00
Omar Roth
62380933b2 Add support for playlists and channels in search 2018-09-20 09:36:09 -05:00
Omar Roth
bb604c8925 Add movies to search results 2018-09-19 15:24:19 -05:00
Omar Roth
35bee987f6 Proxy profile pictures 2018-09-17 18:39:28 -05:00
Omar Roth
83ba4e2a4c Fix truncated thumbnails 2018-09-17 14:48:02 -05:00
Omar Roth
1eae76fc15 Add fix for empty descriptions 2018-09-06 16:50:12 -05:00
Omar Roth
4f91854bd3 Fix typo 2018-09-05 21:10:32 -05:00
Omar Roth
29a21860ae Strip leading slashes from referers 2018-09-05 21:07:19 -05:00
Omar Roth
96234e509f Add X-Frame-Options, X-XSS-Protection, and X-Content-Type-Options 2018-09-05 21:06:30 -05:00
Omar Roth
25c3ee034e Minor refactor 2018-09-04 08:52:30 -05:00
Omar Roth
76d3abb5f9 Make view extractor more robust 2018-08-20 19:25:12 -05:00
Omar Roth
567b9f31f3 Add fix for livestreams in search results 2018-08-17 16:08:07 -05:00
Omar Roth
4760b3c6e7
Merge pull request #116 from omarroth/add-playlists
Add playlist page and endpoint
2018-08-17 11:01:36 -05:00
Omar Roth
3ba2a7d921 Fix referers 2018-08-17 10:19:20 -05:00
Omar Roth
bb0b60e575 Add playlist page and endpoint 2018-08-16 14:26:16 -05:00
Omar Roth
bce01cba32 Add fix for videos without metadata 2018-08-16 09:05:48 -05:00
Omar Roth
ec399f5f7b Properly filter movies, playlists, channels from search results 2018-08-16 08:47:51 -05:00
Omar Roth
b72f3c2274 Rename 'layout' to 'template' 2018-08-15 20:31:47 -05:00
Omar Roth
8adb4650a0 Add support for multiple sessions 2018-08-15 12:40:42 -05:00
Omar Roth
c5bd5e6c6d Fix produce_playlist_url 2018-08-14 17:00:35 -05:00
Omar Roth
f26e9313ff Add ability to decrypt port numbers for proxy list 2018-08-14 13:22:39 -05:00
Omar Roth
3833366756 Change options to provide more proxies 2018-08-14 09:40:52 -05:00
Omar Roth
fada57a307 Add geo-bypass for video info 2018-08-13 09:17:28 -05:00
Omar Roth
7116421fa4 Use http-streaming for livestreams 2018-08-11 14:29:51 -05:00
Omar Roth
ce0e4babad Pull 'player' out into seperate component 2018-08-11 10:52:13 -05:00
Omar Roth
15c26d022b Pull 'extract_videos' out into seperate function 2018-08-10 09:44:19 -05:00
Omar Roth
9a78b55c53 Pull description into seperate function 2018-08-10 08:44:23 -05:00
Omar Roth
09d4d46fcd Clean up channel feed 2018-08-10 08:38:31 -05:00
Omar Roth
c09b41a8f8 Don't redirect to current page 2018-08-08 20:26:02 -05:00
Omar Roth
6d8caaee65 Add option to pull all videos 2018-08-08 20:12:17 -05:00
Omar Roth
3ebe9139b7 Provide response on video error 2018-08-08 10:20:07 -05:00
Omar Roth
c1bb75e616 Add CORS headers to local URLs 2018-08-07 13:18:38 -05:00
Omar Roth
373c5378b2 Add '/videoplayback' redirect 2018-08-07 11:39:56 -05:00
Omar Roth
2c4a3b19e2 Add support for 'seconds' in decode_date 2018-08-07 08:10:24 -05:00
Omar Roth
3c359df22e Fix routing for '/videoplayback'' 2018-08-06 22:42:11 -05:00
Omar Roth
5a6b36ecce Add extra handling for year format 2018-08-05 18:35:52 -05:00
Omar Roth
a29458e32f Allow 'host' header to be optional 2018-08-05 14:37:32 -05:00
Omar Roth
b9315bc534 Major cleanup 2018-08-04 23:14:57 -05:00
Omar Roth
90d661e4a7 Split helpers.cr into multiple files 2018-08-04 15:30:44 -05:00