Commit Graph

1015 Commits (9991c4507d4bce70fb2e9996de00a29133a61d03)

Author SHA1 Message Date
Omar Roth 0b363ff471 Chop leading slash from local URLs
Omar Roth a3a826e52c Add redirect for local DASH urls
Omar Roth ce506d3928 Add 'hls' to video endpoint
Omar Roth cccf28aaf7 Add option to toggle light and dark to navbar
Omar Roth 47a284e378 Partially fix generation of DASH manifests
Omar Roth 373c5378b2 Add '/videoplayback' redirect
Omar Roth a5fb1d38e0 Fix non-existent 'content_html' on empty comment section
Omar Roth 187fa11c4a
Merge pull request from omarroth/fix-captions
Fix duration for auto-generated captions
Omar Roth 1da69d095c Allow comment author info to be blank
Omar Roth 9a02b5278a Fix duration for auto-generated captions
Omar Roth 25fc79974c Add support for empty continuation parameter
Omar Roth 3c359df22e Fix routing for '/videoplayback''
Omar Roth feed6bc47c Fix typo
Omar Roth 32036e7914 Strip '+' from '/watch' and '/embed'
Omar Roth d2d5de55c1 Fix infinite redirect for 'subscription_ajax'
Omar Roth 4c3e865ea2 Fix infinite redirect for '/preferences'
Omar Roth 4f3d8a8ef6 Don't strip params from invalid video ids
Omar Roth 6c71227766 Add JSON mapping for captions
Omar Roth ca7c376874 Add preferred captions
Omar Roth 923f9a716b Add fix for channel job
Omar Roth ca2320f17f Change 'videoThumbnails' to an array everywhere
Omar Roth 5a6b36ecce Add extra handling for year format
Omar Roth 0f778cbd9d Make 'videoThumbnails' an array instead of an object
Omar Roth a29458e32f Allow 'host' header to be optional
Omar Roth d51b23bc16 Update channel feed
Omar Roth e47b95ff42 Add fix for parsing videos with 1 view
Omar Roth 8c22c226c0 Add 'raw=1' to '/watch' page
Omar Roth 61f9e8667c Always redirect to referer for '/subscription_ajax'
Omar Roth b3d5d41496 Update '/api/v1/trending' to match documentation
Omar Roth 626aed2d07 Update API to match documented schema
Omar Roth b9315bc534 Major cleanup
Omar Roth 5d4198c700 Acknowledge precedence for listen operator
Omar Roth 3b01bc6735 Add support for 'listen=1'
Omar Roth 738e1a5415 Fix issue with video having zero views
Omar Roth e7cad23bb9 Try to redirect invalid video IDs
Omar Roth 3ada6a9234 Add filters to '/api/v1/search' endpoint
Omar Roth 90d661e4a7 Split helpers.cr into multiple files
Omar Roth 9ed72a8dad Fix signature decryption for videos that don't have 'adaptive_fmts'
Omar Roth d7ed7b90be Fix Reddit comments and add links to author channels/profiles
Omar Roth b3cad0355b Add fix for vdieo thumbnails where video is not HD
Omar Roth 272e798f5c Use maxresdefault for thumbnail
Omar Roth f249192ebb Add redirect for '/channels/:ucid/videos'
Omar Roth a12690cbfd Add captions to embedded videos
Omar Roth 42405a34f1 Add proper redirect links and add support for timestamps
Omar Roth ea8aaf3145 Add support for user name in place of :ucid
Omar Roth fcb4f4cddb Add '/api/v1/search'
Omar Roth 1967c5b403 Miscellaneous bug fixes
Omar Roth 51903462ef
Merge pull request from omarroth/notifications-only
Add option to view only notifications
Omar Roth b5bbf1b9f2 Add share button
Omar Roth e1391f4ac7 Use videojs-markers for start end end times
Omar Roth b1b2713546 Add option to view only notifications
Omar Roth 9b8a884ff8 Disable Kemal header
Omar Roth 381b644dab
Merge pull request from omarroth/data-control
Add options to import and export user data
Omar Roth 0cf8f859ec Provide user with error message on '/watch' page
Omar Roth b535a9d413 Add options to import and export user data
Omar Roth 24c79a3554 Remove migration breaks for watch history
Omar Roth 2e69774b1f Fix video ID redirect
Omar Roth 01e5bec246
Merge pull request from omarroth/add-livestreams
Add livestream support [EXPERIMENTAL]
Omar Roth 50222fb1bc
Merge pull request from omarroth/add-watch-history
Add watch history
Omar Roth 9a0996515f Add fix for comments that don't have valid continuation
Omar Roth d201733756 Add fix for empty 'page' param
Omar Roth b14a8c3f3d Throw 500 on '/watch' page error
Omar Roth 714fd3dae3 Add 'results' route redirect
Omar Roth a09b12a774 Add fix for nonexistent channels
Omar Roth 503c47c8bf Fix 500 on channel page when video list is empty
Omar Roth 2b911aabc4 Fix comments endpoint for videos that have no comments
Omar Roth 6aeb508f29 Fix for /comments/ where there is only one comment
Omar Roth 4cc2cf46aa Add fix for subtitles without duration
Omar Roth 8fbc066df1 Try to split longer lines
Omar Roth 10d82d2d95 Add livestream support
Omar Roth c07016b45c Fix template_comments and comments with formatting
Omar Roth 964a9e2abd Fix update_function job
Omar Roth b5c92c1a2f Add watch history
Omar Roth 0d23f25a8c Add option to redirect homepage to subscription feed
Omar Roth 09d78c9d3a Add fix for videos that don't have description
Omar Roth 573e909785 Add 'lengthSeconds' to /channels/:ucid/videos
Omar Roth 7060c67328
Merge pull request from omarroth/add-channel-rss
Add channel RSS
Omar Roth 6c03992369
Merge pull request from omarroth/add-comments
Add YouTube comments
Omar Roth ab4b533183 Add shortened video redirect
Omar Roth 1eb7066c74 Add YouTube comments
Omar Roth ac5dbadfc1 Add channel RSS
Omar Roth 829ffdd466 Add '/api/v1/channels' and '/api/v1/channels/:ucid/videos'
Omar Roth 9355c60f6e Refactor 'decode_date'
Omar Roth e767651836 Fix thumbnail URL on recommended videos
Omar Roth ff563d075a Add '/api/v1/top'
Omar Roth 8eb5d153b5 Add '/api/v1/trending'
Omar Roth f98d30d36f
Merge pull request from omarroth/change-default-account
Change default account type to Invidious accounts
Omar Roth 20ddd3c025
Merge pull request from omarroth/thin-mode
Add thin mode
Omar Roth cc047bb5e5 Update channel when fetched by thread
Omar Roth f7a5ce2652 Don't try to update all channel videos
Omar Roth 0f46c18f99 Add 'genre', 'allowedRegions', 'isFamilyFriendly' to videos
Omar Roth 1202e1f2bf Move API endpoints under '/api/v1/' prefix
Omar Roth 8764b298ad Add thin mode
Omar Roth e578b2b8f7 Change default account type to Invidious accounts
Omar Roth 686e17f489 Add fix to switch to supported authentication schemes
Omar Roth 0fba601e91 Fix crash in video crawler
Omar Roth 55167724b1 Add fix for unsupported authentication protocols
Omar Roth 115a815528 Add `/videos/:id'
Omar Roth 0bb1da6bfd Escape quotes in metadata description
Omar Roth bb20ec110e Add metadata fix for videos with empty description
Omar Roth 69e70124b4 Update metadata
Omar Roth 8b14a60a32 Fix user update for subscription feed
Omar Roth 67de4192f0 Provide captions if no label is provided
Omar Roth dcf4330b35 Add 'commentCount' to '/comments/:id'
Omar Roth f4160f937c Add fix for videos that don't have captions
Omar Roth 0b0e56504a Properly clear notifications when viewing feed
Omar Roth 09cd7bcc66 Catch errors in 'fetch_video' fibers
Omar Roth 3beac53c89 Add captions
Omar Roth 87d520bb02 Add option to set HMAC key
Omar Roth e49dadbb65 Add option to redirect to HTTPS links even if ssl isn't enabled
Omar Roth 30929a9574 Add '/comments/:id'
Omar Roth 44effdd3a6
Merge pull request from omarroth/add-feed
Add Atom feed
Omar Roth 56e35def8a Add 'autoplay' and 'loop' query params to watch page
Omar Roth c7a46cd3d5 Split Reddit comments into separate request
Omar Roth e4ba09549a Change sign in messages to protect user privacy
Omar Roth e180cf70f8 Fix sort options for Atom feed
Omar Roth 6135006b26 Add Atom feed
Omar Roth ac8fb9d8c8 Add 'raw' and 'quality' options to embedded videos
Omar Roth d29ea79a5d Add separate user accounts
Omar Roth 61e3c39ecd Add 'secure' for cookies when SSL enabled
Omar Roth 18f8a4ae1a Add latest_only and sort options for subscription feed
Omar Roth 0bb07e55f5 Add ability to automatically extract video signature funtion
Omar Roth 7119395045 Refresh account for subscription feed and manager
Omar Roth a6292d956d Add option to change max_results
Omar Roth cae8e1b883
Merge pull request from omarroth/add-preferences
Add user preferences
Omar Roth 70085db5d2 Bump size for referer URL
Omar Roth e87c6186e7
Merge pull request from omarroth/embed-options
Add 'autoplay', 'controls', 'loop' to embedded player options
Omar Roth 7494e864b4 Add handling for invalid login
Omar Roth 58b5e97fc4 Add speed and fix <select> options
Omar Roth 96c520b02b Add user preferences
Omar Roth f68b27da7c Organize routes
Omar Roth 23711a127c Add 'autoplay', 'controls', 'loop' to embedded player options
Omar Roth f189cd7c48 Speed up /videoplayback streaming
Omar Roth 73247d75ca Add fix for mimetype in /videoplayback
Omar Roth 9cb96de426 Add CORS header for /videoplayback redirect
Omar Roth aa389399bc Add fix for videoplayback requests with trailing slash
Omar Roth f05afaf342 Add dash support for videos that already have manifest
Omar Roth 38af1b4c1b Add /embed/:id
Omar Roth 72690f587e Clarify request types
Omar Roth 4671bcf71a Add support for Google Authenticator codes
Omar Roth eb1df96e1b Remove patch and update file structure
Omar Roth a789114f43 Fix login
Omar Roth 99c02722db Remove all cookies on sign out
Omar Roth 431fa642bf Add /subscription_manager
Omar Roth 1ada71e5ba Move user state into before_all
Omar Roth a01bdf6c16 Add /user endpoint
Omar Roth f5ea832721 Upgrade to Crystal 0.25 and update signature
Omar Roth 650b8a50fc Add subscribe button to channel page
Omar Roth e9e6bbd710 Update options for videoplayback preflight
Omar Roth e0dd56f4ff Fix dash endpoint
Omar Roth 36ba69be1f Add channel page
Omar Roth e865a801aa Spin parts into components
Omar Roth b8d4951a48 Add support for "t" param in watch page
Omar Roth 471f5345e2 Remove local links for video playback
Omar Roth 61cd135780 Use local links for video playback
Omar Roth f79825fc80 General cleanup
Omar Roth c6539c803a Fix typo
Omar Roth fdcfe0bb14 Seperate new videos in subscription feed
Omar Roth 75f8fcd40b Add support for AAhBBmCCsDDms in video start and end params
Omar Roth dce9ef3e8b Add clearer message for login failure
Omar Roth 6d3e88aeb5 Unify formatting
Omar Roth 58410e09f7 Clarify crawl option
Omar Roth ae68213dc7 Add TFA
Omar Roth 1ea7290892 Add video refresh
Omar Roth 6a7d19163e General cleanup
Omar Roth d753e52680 Add Fiber.yield to jobs
Omar Roth 92f78ff541 Remove client pool
Omar Roth 19f5729e18 Add support for incorrect password on /login
Omar Roth 742fa6a705 Add negative offset for subscription feed
Omar Roth 84aef70803 Set referer if referer is /login
Omar Roth fd609ee7e5 Allow range in videoplayback headers
Omar Roth 4cfddcfb42 Add allow headers for preflight requests
Omar Roth 86627d8303 Add options for videoplayback
Omar Roth 11e871ba83 Add CORS header for videoplayback
Omar Roth 9898b2900f Change status_code to that of response for videoplayback
Omar Roth 6c5cbca575 Add support for fvip in videoplayback
Omar Roth 830d6fae8e Add support for using local links in manifest
Omar Roth bc068721ab Add filtered handler for videoplayback
Omar Roth f08199e7cf Add /videoplayback endpoint
Omar Roth 4bf0e538e4 Add dark theme
Omar Roth 6bbbfcb919 Combine enable_subscriptions and disable_notifications
Omar Roth 0c5b92a6cb Add error handling for channel refresh
Omar Roth 2a4b643539 Add label to fmt_stream
Omar Roth 316ca2ab34 Add gzip for views
Omar Roth b3e84e27f8 Allow channel_threads to be configured and increase pool_size
Omar Roth e8349ae46b Don't sort ad_slots
Omar Roth 22800efbc4 Clean up decrypt_signature for watch page
Omar Roth 3b13cf46c5 Add referer redirect
Omar Roth 44ebf0ed8e Add detection for ad tags and category
Omar Roth 69dd52bac3 Use generic url for thumbnails
Omar Roth 841308929d Add &start and &end to watch page
Omar Roth ff91ec820c Remove notifications once viewed
Omar Roth e2b5b7793a Use fill_links once instead of per comment
Omar Roth 815aeeb29c Fix subscriptions on watch page
Omar Roth 10c1cfa4b5 Use optional query for watch page
Omar Roth e2c50d4d1f Use get_user for watch page
Omar Roth 8d66493c01 Remove string interpolation from SQL queries
Omar Roth a54f59ad74 Minor refactor
Omar Roth 29545a7a6f Remove nonfunctional element on login page
Omar Roth 57102c54c7 Add notifications
Omar Roth 7757eca92c Add subscribe and unsubscribe button
Omar Roth 2c5d75dcce Add enable and disable notifications (bell dinging feature)
Omar Roth 6c4cfbe39d Add users table
Omar Roth 239a6c892c Use seperate table for videos pulled from RSS
Omar Roth e89f15a65c Use alternate thumbnail url for search page
Omar Roth f047f87100 Use alternative url for watch page thumbnails
Omar Roth 799e172609 Clean up comments
Omar Roth edfe1eefe8 Add channel refresh
Omar Roth 15f4d95ab4 Add fix for testing authentication
Omar Roth 253ea8113b Minor fix for filters and search
Omar Roth 076eaa7635 Add subscriptions
Omar Roth 2490833b6b Add logout
Omar Roth 48da2ced46 Add error handling for top videos
Omar Roth 02f1cd1a8b Remove error message
Omar Roth 39df8ab200 Add rescue for video ranking
Omar Roth 2be57276a2 Add refresh for top videos
Omar Roth 46f8032fb9 Fix dash manifest
Omar Roth 7704b76f45 Fix HTTP redirect
Omar Roth 97b93d548b Disable language filtering when there is no key
Omar Roth 997449ab4b Add language detection for top videos
Omar Roth 6581f96b70 Add fix for HTTP::Cookies
Omar Roth d8372aa83e Add login page
Omar Roth e8013c6d5c Use try instead of ternary
Omar Roth c8a798e13c Add fix for streams
Omar Roth f33cbb8b92 Add sources for iOS
Omar Roth e37e9a0b8e Add qualityselector
Omar Roth 1a6c28735c Fix DASH manifest to be more similar to YT's
Omar Roth 8fb97a4511 Add suppor for dash manifest
Omar Roth 6795c183af Remove logging for Reddit comments
Omar Roth d664d6b371 Only use HSTS if SSL is enabled
Omar Roth 31d1315c60 Fix HSTS header
Omar Roth 6d7ae6f638 Only add HTTP query if it exists
Omar Roth cf07b66c12 Use 301 for HTTP redirect
Omar Roth 84fc87229c Add full path redirect
Omar Roth 2596410b97 Add HTTP redirect
Omar Roth eb1d1e30d1 Add config file
Omar Roth e22d6d8549 Add max-age for static assets
Omar Roth caf82ccb8f Add error message for reddit comments
Omar Roth fd1bd35b42 Remove macro
Omar Roth 4ae88cd286 Add mapping macro and move templated into helpers.cr
Omar Roth b388181cd4 Use different source for fallback thumbnail
Omar Roth 24fc14ac7a Add player title and thumbnail
Omar Roth ebe51c91d7 Add local alternatives for video links
Omar Roth b14b26f7c2 Make rank_videos less greedy
Omar Roth 72826c4d96 Fix regression for youtube pool
Omar Roth 971b471d72 Fix param conflict
Omar Roth df228c82de Fix param conflict
Omar Roth be6ced202c Fix CLI options
Omar Roth 2144c388a5 Fix user-agent string
Omar Roth 814cdc9971 Major fixes, add options for YT, add User-Agent for Reddit
Omar Roth f0b33b2975 Clean up Video class
Omar Roth 1bf492ce78 Clarify wait option
Omar Roth cf9931e2a1 Add support for redirect in URL description
Omar Roth fc2e10a54f Fix client reuse
Omar Roth 323d27a5f6 Add wait time option and add handling for reddit_pool
Omar Roth 24cea8f3e7 Add reddit comments
Omar Roth dff93f67f9 Add author for item
Omar Roth 3a95d21808 Minor fixes
Omar Roth 7828cd9767 Remove html from DB
Omar Roth 13ef4440d0 Replace signature function with generic catchall
Omar Roth 225625a0fb Add redirect for missing params
Omar Roth 8956623347 Add fix to top_videos for empty database
Omar Roth 5b47be2b4d Run 'crystal tool format'
Omar Roth 4d1fa61bf0 Only add signature if stream has decrypted signature
Omar Roth 1d301a5055 Add support for different signature functions
Omar Roth 42df0df5a0 Clean up argument creation
Omar Roth 6adbcd050c Clarify listen param and update icon
Omar Roth da97dfad8e Fix arg parsing
Omar Roth dc45fbfad6 Use error template for 404 and 500
Omar Roth ecb1999795 Ensure clients are recycled properly
Omar Roth 5159ec0f6e Pull rank_videos into seperate thread
Omar Roth d4c88f2844 Fix watch for videos that don't have fmt_stream
Omar Roth 6167ce30b0 Disable logging for connection pool
Omar Roth 76c008d319 Make sure extra options don't override Kemal defaults
Omar Roth c8d2d12282 Add default number of threads
Omar Roth 990bca5af5 Refactor client creation
Omar Roth 0e704056a1 Make sure client gets returned to pool
Omar Roth d1a2b193aa Change client timeout and make sure there is always a client available
Omar Roth a9cea62d5b Add home page
Omar Roth a9ef931856 Fix error handling
Omar Roth d79c1ff3e9 Fix video indexing
Omar Roth 1facca5408 Replace unnecessary constant
Omar Roth 03aeb27b40 Add ability to specify number of threads
Omar Roth 1e2139d78c Add ability to decrypt signature for vflxuxnEY/en_US/base.js
Omar Roth d7d905447f Change license
Omar Roth 236fdb85ff Move functions into helpers.cr
Omar Roth cf49306ffb Fix index out of bounds error
Omar Roth 5c1bd5fae6 Run 'crystal tool format'
Omar Roth 02b6990240 Get videos from search
Omar Roth daba77d665 Merge changes
Omar Roth a236d7a4e8 Fix several bugs in connection pool
Omar Roth 01d16ec6af Move helpers into seperate file
Omar Roth 6418d87a63 Add fix for videos that don't have specific keys
Omar Roth 19309f5ef6 Fix client refresh
Omar Roth f77dcb7f9b Randomly refresh HTTP clients
Omar Roth 61e3b47210 Add id 'pool' for connetion pool
Omar Roth c36b22a16d Refresh connection pool
Omar Roth f09f971af7 Fix audio-only for video.js
Omar Roth 9f63fcaa1e Fix up search
Omar Roth b21365248d Add speed control
Omar Roth 38cff5a752 Freshen up for the big dance
Omar Roth 60c618942f Add wait for empty connection pool
Omar Roth dfdeb02c7f Try using connection pool for getting videos
Omar Roth d65106d8b1 Speed up get_video
Omar Roth 060c4da96d Add related videos and clean up video class
Omar Roth d1eb81b653 Add audio-only
Omar Roth 87601d1400 Run 'crystal tool format'
Omar Roth 7fc7a47849 Remove unused info
Omar Roth a0d34367bc Adds description, video class, wilson score...
Omar Roth f7f5f91316 Adds description, video class, wilson score...
Omar Roth 86a8e181bf Add search
Omar Roth 764fdf42ef Add fix for args order and rename videos table
Omar Roth 740caf8fd9 Update shard.yml and fix postgres queries
Omar Roth 8d6de7deba Add primitive postgres support
Omar Roth 383ed8b209 Rename project