Commit Graph

1983 Commits (e3054ccdd2a4ecdd071ddae5e264fb1b64e9be6a)

Author SHA1 Message Date
syeopite 445ff856fe
Allow user preferences to effect extend_desc 4 years ago
Samantaz Fox b7fe212a18
Fix youtube API function's documentation 4 years ago
Samantaz Fox cbabf0ae7e
Craft the "context" data in a dedicated function
As the amount of API endpoint function grow, this will
prevent ugly code copy/pasta
4 years ago
Samantaz Fox 344ccf3b03
Use '/youtubei/v1/browse' endpoint for playlists 4 years ago
Samantaz Fox 26a7e1b049
Use '/youtubei/v1/search' endpoint for search queries 4 years ago
Samantaz Fox 43bd331e48
Multiple youtube_api.cr helper fixes
Add documentation
Bump web client version string
Add charset=UTF-8 to the 'content-type' header
Parse JSON and return it as a Hash
Handle API error messages
4 years ago
syeopite f529948d81
Change videojs-vr to the unminified version 4 years ago
syeopite 5ba9a1f87d
Fix lint 4 years ago
syeopite a0fb75efcb
Add licence for videojs-vr 4 years ago
syeopite 6e6f4d5a37
Allow configurable support of interactive 360 vid 4 years ago
syeopite df0cd30236
Add support for VR videos through videojs-vr 4 years ago
Emilien Devos 960bd2a6be fix likes parsing 4 years ago
TheFrenchGhosty 75e5b49c3a
Merge pull request #2008 from syeopite/mobile-ui
Improve player controls for mobile devices
4 years ago
TheFrenchGhosty 3cf08dc451
Merge pull request #2052 from Myzel394/patch-1
Add autofocus attribute to search input
4 years ago
TheFrenchGhosty 6f899d998f
Merge pull request #1968 from syeopite/iss677
Add ability to expand/collapse description.
4 years ago
TheFrenchGhosty 73da8463ca
Merge pull request #1953 from syeopite/fix1673
Update regex expressions to handle unexpected '};'
4 years ago
syeopite e6fba5d802
Fix locale discrepancy for extend desc feature 4 years ago
syeopite 50ba3c5d5c
Remove unused class attr on label 4 years ago
syeopite 65663fb857
Update code to reflect 'read more' btn name change 4 years ago
syeopite 8df2f38d34
Change wording of 'read more/less' & add to locale 4 years ago
syeopite c5fae84263
Add functionality to read more button 4 years ago
sh4dowb 533d0a1fd4
Added "Read More" button for video descriptions 4 years ago
syeopite 06b27d932d
Move player styling to separate file 4 years ago
syeopite ac1ac2cfed
Add mobile-ui js to licenses 4 years ago
syeopite 53cdb04be7
Improve mobile ux with videojs-mobile-ui 4 years ago
Myzel394 c106de02e9
Added autofocus attribute to search input
Since the main action of this form is to search something, the input should automatically be focused.
4 years ago
Samantaz Fox cac5f20a28 Move locales definition to i18n.cr 4 years ago
TheFrenchGhosty beea32661a
Merge pull request #1975 from tenpura-shrimp/disablequic
add option to disable quic
4 years ago
TheFrenchGhosty b9e57d0283
Merge pull request #1977 from syeopite/add996
Change empty home page to search engine like layout
4 years ago
syeopite 5c0458a887
Move navbar search bar render check to templated 4 years ago
syeopite 65942cd46c
Rename empty.ecr to search_homepage.ecr 4 years ago
Andrew Zhao 9a8f1a0b0a add option to disable quic 4 years ago
syeopite 45d687c4e1
Preserve url params in video aliases 4 years ago
namazso f2cc16009f
Fix statistics misreporting register allow state 4 years ago
Perflyst b7eba3bc17
Merge pull request #1961 from SamantazFox/fix-thumbnails-url
Fix API giving ytimg instead of instance URLs for thumbnails
4 years ago
Perflyst 661d715446
Merge pull request #1942 from syeopite/1736
Add multiple video route aliases.
4 years ago
TheFrenchGhosty 18b4b141d9
Merge pull request #1990 from SamantazFox/patch-1
Fix for issue #1989
4 years ago
TheFrenchGhosty cd1e478b95
Merge pull request #1976 from syeopite/fixfooter
Fix footer position to bottom of page
4 years ago
syeopite 5f466eed79
Rename default_home option 'none' to 'Search' 4 years ago
Samantaz Fox 93198438b8
Fix for issue #1989
Fixes #1989
4 years ago
syeopite d9528f5cc3
Change positioning of footer to use flexbox 4 years ago
syeopite 877bb5c821
Add aliases for watch route 4 years ago
TheFrenchGhosty ae353cef2e
Merge pull request #1974 from syeopite/fix1562
Fix channel info extract for video game channels
4 years ago
syeopite 909606826d
Change footer div into footer element 4 years ago
syeopite ea16c01fa2
Fix mobile responsive design for footer 4 years ago
syeopite a8649f286c
Handle nil type for default_homepage 4 years ago
syeopite 94f285695e
Add missing closing div element 4 years ago
syeopite 428747ab69
Allow default_home config to be empty value 4 years ago
syeopite 049e8e07ef
Fix footer position to bottom of page 4 years ago
syeopite 716a845e92
Fix missing navbar search bar 4 years ago
syeopite 555108c7fd
Add styling to search bar on empty home page 4 years ago
syeopite e1af3d9bf3
Add html of search bar to empty home page 4 years ago
syeopite e864c7541c
Hide header search bar when default_home is empty 4 years ago
syeopite b4a6cbbd09
Merge info extract functions back to one 4 years ago
syeopite fe4eef5855
Fix channel info extract for 'video game' channels 4 years ago
TheFrenchGhosty c0997f951c
Merge pull request #1929 from Svallinn/channel_playlist_fix
Fix channels' playlists fetching
4 years ago
syeopite 20b961c1c8
Preserve original cookies 4 years ago
TheFrenchGhosty c4c2e01213
Merge pull request #1922 from Svallinn/search_api_fixes
Fix channels' search API
4 years ago
Samantaz Fox 62e46b7a36 Fix missing last page in playlists 4 years ago
TheFrenchGhosty 052c5c67b8
Merge pull request #1960 from syeopite/fix1959
Add new YT consent cookie to every request
4 years ago
TheFrenchGhosty b794c5cfcf
Set the request cookie to "YES+" 4 years ago
TheFrenchGhosty be8a4013a7
Merge pull request #1945 from syeopite/trending-api-fix
Fix Trending API
4 years ago
Samantaz Fox 87c25f83a4 Fix API giving ytimg instead of instance URLs for thumbnails 4 years ago
syeopite e08bea5f51
Fix lint 4 years ago
syeopite 739f610507
Add new YT consent cookie to every request 4 years ago
syeopite 608313c1d1
Update regex expressions to handle unexpected '};' 4 years ago
syeopite 8b75590d3e
Remove news trending section from ui 4 years ago
syeopite a7624d4724
Fix trending API 4 years ago
Svallinn acfa9e8a55
Parse responses to JSON instead of using regex 4 years ago
Svallinn 8823753b46
Remove commented line 4 years ago
Svallinn c5ccefe6f7
Parse response to JSON instead of using regex 4 years ago
syeopite 148071a744
Add 'www' to URL on watch on youtube button 4 years ago
syeopite 56fab9d178
Add watch on youtube button on each video item 4 years ago
syeopite f422a77014
Add translation to Audio Mode icon on vid result 4 years ago
Svallinn e248e7ebaf
Remove unused function and related test 4 years ago
Svallinn aa4c623a06
Add deprecation note 4 years ago
Svallinn cbdba66ef3
Use the youtubei API over the legacy one 4 years ago
Svallinn e49aaa0216
Fix channel search API 4 years ago
Andrew Zhao 61d49a1215 remove comments extract cursor 4 years ago
TheFrenchGhosty c481ca924b
Merge pull request #1911 from SamantazFox/fix-long-playlists
Fix long playlists (100+ videos)
4 years ago
Samantaz Fox 23e5b6ba72 Remove extra 'next page' button at then end of a playlist 4 years ago
Samantaz Fox 3e88b72316 Remove useless parameter 'youtubei_browse' in get_channel_videos_response() 4 years ago
Samantaz Fox aaefa38602 Make the linter happy 4 years ago
Samantaz Fox a61735e29a Print detailed error message when playlist can't be retrieved 4 years ago
Samantaz Fox 9bdfb0a32b Playlist: Support edge case where 'content' in JSON may be erroneously plural 4 years ago
Samantaz Fox 94ecd29e35 Make use of youtube API helper in src/invidious/channels.cr 4 years ago
Samantaz Fox 980f5f1299 Playlist: Fix video continuation (100+ videos playlists) 4 years ago
Samantaz Fox f99d62a2bc Create youtube API wrapper fo /youtubei/v1/browse 4 years ago
Samantaz Fox 89be1975ea Playlist: Fix continuation token generation 4 years ago
Samantaz Fox fec82df451 Fix fetching of large playlist 4 years ago
Andrew Zhao 89fd35e02d fix comment replies 4 years ago
TheFrenchGhosty 3286328de4
Merge pull request #1837 from syeopite/master
Enhance search filter UI for JS disabled users
4 years ago
syeopite 977c34c0d7
Remove unused script element in search.ecr 4 years ago
Svallinn fa050fb8a8
Fix: functional hl / dark_mode / thin_mode params 4 years ago
syeopite 48a3c3a0c1
Add hover state to filter UI 4 years ago
syeopite b56ebd13b6
Fix indent in search.ecr for filters 4 years ago
Samantaz Fox 3de39698dd Make the build tests happy: remove blank lines 4 years ago
Samantaz Fox b86476410f playlists: Fix description being simple text (issue #1767) 4 years ago
Samantaz Fox 57ea45ff51 content_to_comment_html: Fix /watch links + make newline replace universal 4 years ago
TheFrenchGhosty ec30f7c5d4
Merge pull request #1849 from saltycrys/channels
WIP channels fix
4 years ago
TheFrenchGhosty 3cc9114f81
Merge pull request #1829 from SimonPhoenix96/xml-json-yt-sub-import
integrate legacy yt xml subscription import with new json sub import
4 years ago
TheFrenchGhosty 790167e914
Merge pull request #1832 from mark9064/patch-1
Fix engagement
4 years ago
saltycrys 378c0d049e WIP channels fix 4 years ago
Perflyst fc8c555519
Merge pull request #1729 from Rjevski/12factor-database-url-restored
Support "Database URL" in addition to existing DB-related parameters
4 years ago
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
4 years ago
mark9064 9ae18b0b3b
Fix engagement
Engagement was calculated as 0-1 but displayed as a percentage
4 years ago
simonphoenix96 84487b2e52 format invidious.cr using crystal cli 4 years ago
Simon Phoenix 9689376de6
fixed line indent typo 4 years ago
simonphoenix96 a2f79a163f integrate legacy yt xml subscription import with new json sub import 4 years ago
Andrew Zhao 2600695927 fix search
Put search page in the super secret proto field
4 years ago
TheFrenchGhosty 705e4fca06
Merge pull request #1797 from B0pol/published_utc
Use UTC for published date
4 years ago
TheFrenchGhosty a4ba4cf6ce
Merge pull request #1795 from B0pol/comments
Fix comment replies count
4 years ago
TheFrenchGhosty 0b2109576a
Merge pull request #1804 from tenpura-shrimp/captionpreload
do not preload captions
4 years ago
Andrew Zhao 295e5c9731 show how long ago stream started 4 years ago
Andrew Zhao 9b79e35d52 do not preload captions 4 years ago
bopol 237100da18 Use UTC for published date 4 years ago
bopol 1e33c0c288 Fix comment replies count 4 years ago
TheFrenchGhosty c451aab150
Enable the Hebrew translation since it's now translated at more than 80% 4 years ago
TheFrenchGhosty 48bff9a5d2
Enable the Indonesian translation since it's now translated at more than 80% 4 years ago
saltycrys 2bf445e165 Fix playlists with `Various Artists` author 4 years ago
Andrew Zhao 148f3002ec use large thumbnail for channels in search 4 years ago
Perflyst ec82c1f957
Merge pull request #1730 from notpushkin/patch-1
Add link[rel="alternate"] pointing to YouTube version
4 years ago
saltycrys 5f03a583d1 Update code for Crystal 0.36.0
Rename `HTTPClient@socket` to `HTTPClient@io`, see
https://github.com/crystal-lang/crystal/pull/9543.

Rename `URI#full_path` to `URI#request_target`, see
https://github.com/crystal-lang/crystal/pull/10099.
4 years ago
saltycrys 991a04dc2a Adjust routes
Simple routes have been moved into a single `Misc` file.

Embed routes have been moved into a single `Embed` file.

The preferences route has been renamed to be more consistent with other parts
of the codebase.
4 years ago
Perflyst 82da5cfd01
Merge pull request #1712 from tenpura-shrimp/bumpvideojs
Bump videojs and fix webworker
4 years ago
saltycrys 909285ea46
Merge pull request #1732 from saltycrys/unrequire-logger
Unrequire `logger`
4 years ago
saltycrys a0bc0641c7 Unrequire `logger`
Crystal's `Logger` was required but never used in Invidious. Crystal 0.36.0
removed `Logger` in favor of `Log`.
4 years ago
Alexander Pushkov e7ada61881
Add link[rel="alternate"] pointing to YouTube version 4 years ago
Andre Borie 79e99908de Allow providing 12-Factor-style Database URL in config 4 years ago
TheFrenchGhosty bd893cb24c Enable the Finish translation since it's now translated at more than 80% 4 years ago
saltycrys c9a316ad35
Merge pull request #1702 from saltycrys/config
Config improvements
4 years ago
Andrew Zhao 4a0b10984a Bump videojs and fix webworker 4 years ago
Andrew Zhao d0dbbd1cb1 remove https from channel thumbnail in search 4 years ago
saltycrys 70e14f92a4 Only start refresh jobs when necessary
If `channel_threads` or `feed_threads` is set to zero the corresponding job is
now not started.
4 years ago
saltycrys b45f371911 Make config a constant
Instead of passing around `config` there is now the global `CONFIG`.
4 years ago
saltycrys f1a7ee997b Add config environment variables
The config file can now be specified with `INVIDIOUS_CONFIG_FILE`.
A YAML formatted string can still be passed with `INVIDIOUS_CONFIG`, replacing
the config file.

Additionally all options can now be specified as environment variables.
The syntax for variable names is `INVIDIOUS_` followed by the option name in
upper case. The values are parsed as YAML.

These new env vars only update the provided main configuration, but it is
possible to point the config file at the example config and then use env vars
for all config options:
```
INVIDIOUS_CONFIG_FILE=./config/config.example.yml \
INVIDIOUS_CHANNEL_THREADS=10 \
./invidious
```
4 years ago
TheFrenchGhosty 799f97e847 Make invidious use all the translation files 4 years ago
Andrew Zhao 15ba3325d9 add ui for searching 4 years ago
Andrew Zhao b7fe1db89a save host when using dash manifest 4 years ago
saltycrys c28b1f6fb9
Merge pull request #1654 from saltycrys/fix-downloads
Fix downloads
4 years ago
saltycrys c81ca187f8 Fix downloads
The `itag` is now converted to a number, matching the `itag` of
`Video.adaptive_fmts` and `Video.fmt_stream`.
4 years ago
TheFrenchGhosty ba148d749f
Merge pull request #1647 from hackerncoder/removeOmarrothMentions
Remove omarroth mentions
4 years ago
HackerNCoder 606dd11b4f
Remove admin_email. Use repos url for captcha ID and reddit header. Add note about not updating changelog 4 years ago
saltycrys b0b8ba7000 Respect `use_pubsub_feeds` config
Setting `use_pubsub_feeds: false` now properly disables it.
4 years ago
HackerNCoder 4d512d908d
Remove some mentions of omarroth 4 years ago
saltycrys df9e7f284c Adjust log verbosity
The default log level has been changed from `debug` to `info`.
The `debug` log level is now more verbose. `debug` now gives a general overview
of what is happening (where implemented) while `trace` gives all available
details.
4 years ago
saltycrys 6365ee7487 Make logger a constant
Instead of passing around `logger` there is now the global `LOGGER`.
4 years ago
saltycrys 7a8620a570 Add CLI arguments to config file
The log level can now be set with `log_level` (accepts ints and strings).
The log file can now be set with `output` (also accepts `STDOUT`).
4 years ago
Perflyst 2c24bf3222
Merge pull request #1389 from vhuynh3000/decrypt_on_demand
add config to decrypt on demand instead of polling
4 years ago
saltycrys 36e9fb9d68 Fix `watch_videos` endpoint
Playlists created by `watch_videos` do not have an author which caused a crash
previously.
4 years ago
saltycrys 8b56a038b7 Set content type for HTML error helpers
This fixes `Unexpected char '<' at 1:1` errors caused by content type mismatch.
4 years ago
vhuynh3000 3a2bd4e928 add config to decrypt on demand instead of polling 4 years ago
Perflyst 28dac81a90
Merge pull request #999 from notpushkin/patch-1
Add audio mode link to items
4 years ago
Perflyst c89632d2a8
Merge pull request #1608 from saltycrys/add-subscription-traces
Add Subscription Traces
4 years ago
TheFrenchGhosty 82c8f3b556
Merge pull request #1600 from jksladjflkjsadflkjsadf/closeclients
Close http clients after use
4 years ago
bopol 608b9e66f4 fix channel/ID/community endpoint
fixes https://github.com/iv-org/invidious/issues/1611
4 years ago
saltycrys dfd5e30015 Fix Video Mode Button
The query params that get edited for `embed_params` are now deep copied instead
of shallow copied, preventing the originals from being changed.
4 years ago
Perflyst b19524d56a
Merge pull request #1609 from saltycrys/add-popular-enabled-option
Add `popular-enabled` option
4 years ago
Andrew Zhao e0d25ff887 Close http clients after using
The crystal http client maintains a keepalive connection to the other
server which stays alive for some time. This should be closed if the
client instance is not used again to avoid hogging resources
4 years ago
saltycrys 198dfffaeb Add `popular-enabled` option
This is similar to the removed `top-enabled` option but for the Popular feed.
The instance needs to be restarted if the feed was enabled.

Editing admin options on the preferences page is also fixed.

The handling of the feed pages now only happens in a single place.

Instead of redirecting:
  - The Top feed now displays a message that it was removed from Invidious.
  - The Popular feed now displays a message that it was disabled if it was.
4 years ago
saltycrys c4ef055248 Add RefreshChannelsJob traces
Traces can be enabled with `-l trace`.

The problem with subscriptions is that sometimes requests to YouTube never
finish. As soon as that happens `channel-threads` times subscriptions stop
being refreshed. This is most likely a problem with the lsquick bindings.
4 years ago
saltycrys 420ceffbb0 Rename threads to fibers
The config and command line options haven't been changed.
4 years ago
Perflyst eeeecf9763
Merge pull request #1572 from saltycrys/add-dash-quality-preference
Add DASH quality preference
4 years ago
Perflyst 8df591e8d4
Merge pull request #1595 from saltycrys/improve-storyboards
Improve storyboards
4 years ago
saltycrys 75c6844b66 Improve storyboards
Instead of limiting the width of storyboards through CSS it is now done in the
VTT directly.
4 years ago
saltycrys b39f01dcdf Improve logging
Everything that gets logged now has a log level associated with it.

The log level can be set with the new `-l` or `--log-level` arguments.

The defaul log level is `debug` for now. There aren't many things that get
logged but if the logs get spammed in the future it can be set down to `info`.
4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
Matthew McGarvey fb06482916 Extract out User Preferences endpoints 4 years ago
Amanda Graven 848add1b1b
Set channel thumbnail as icon for feeds (#1106) 4 years ago
TheFrenchGhosty 2349a6ab0c Actually fix the icons of #1564 but for real this time 4 years ago
TheFrenchGhosty 70eaf41acb Actually fix the icons of #1564 by using an icon that exist in ionicons v4 4 years ago
TheFrenchGhosty 912091981e Fix the icons of #1564 and remove a useless line 4 years ago
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
4 years ago
Matthew McGarvey 2dacdf0210 Extract login/signout routes from global file 4 years ago
TheFrenchGhosty 5e8856e65b
Merge pull request #1551 from saltycrys/add-embed-link
Add embed link to watch page
4 years ago
saltycrys d42539949e Add YT embed link to watch page 4 years ago
TheFrenchGhosty 28ca5b2b57
Merge pull request #1552 from azhao-squareup/master
do not proxy hls livestrem on supported browser
4 years ago
Andrew Zhao 0cb442d40e do not proxy hls on supported browser 4 years ago
saltycrys 30c92ce1b7 Add embed link to watch page 4 years ago
saltycrys e55a09241e Fix Invidious playlist continuation
Playing a video in a Invidious playlist now correctly redirects to the next
video. The problem was that the offset was updated in the wrong place.
4 years ago
TheFrenchGhosty 68552b6d65
Merge pull request #1544 from schwukas/fix-youtube-subscription-import
Fix youtube subscription import
4 years ago
Lukas 77c13e10ec Update link to instructions 4 years ago
Lukas 0f66ff50a4 Fix #1516 Document is empty 4 years ago
Lukas 62e8c09183 Fix YouTube subscription import parser 4 years ago
Lukas cb40a74aaf Add temporary link to subscription export instructions 4 years ago
saltycrys 4184fb3ae7
Increase YouTube request timeout (#1540)
Increase YouTube request timeout
4 years ago
TheFrenchGhosty 20d2d141e4
Merge pull request #1539 from saltycrys/fix-comments
Fix comments
4 years ago
saltycrys 2de206cb81 Fix comments
The YouTube headers are now always added for requests to YouTube.
Previously they were only added for requests going through QUIC.

The session token is now JSON decoded to unescape escaped Unicode characters.

The comment continuation protobuf has been updated and the request now goes
through the YouTube `pbj` JSON API.
4 years ago
Sonic-Y3k 03d0b296e1
Fix invidious version for docker image
As Alpine-Linux per default uses the busybox date command, the -f option is not available and the build will fail.
4 years ago
TheFrenchGhosty 527f408f6a
Merge pull request #1529 from saltycrys/fix-version
Fix invidious version for old git versions
4 years ago
saltycrys adccca366e Fix invidious version for old git versions
The `%cs` format was only added to git in version 2.25 while `%ci` has been
around forever.
4 years ago
TheFrenchGhosty 76cad41382
Merge pull request #1525 from saltycrys/fix-video-descriptions
Fix `extract_polymer_config`
4 years ago
saltycrys cc684ff0b1 Fix redirect channels
Redirect channels may use JS to redirect now, instead of only a response header
as it used to be. This fix reads the channel to redirect to from `ytInitialData`.
4 years ago
saltycrys 7823c07f1a Fix `extract_polymer_config`
The `ytInitialPlayerResponse` regex can now handle `var` and `window`
assignments.

The video streams can now be extracted from `player_response` and
`initial_data`.

This fixes the descriptions on videos and videos themselves. Videos are
technically broken right now, but work becasue of a fallback that goes through
embeds.
4 years ago
Matthew McGarvey d7377015a2 Extracting search endpoints 4 years ago
saltycrys b409cdece5 Improve error message 2
Electric Boogaloo

The long backtrace has been moved into a `<details>` HTML element, as suggested
by @B0pol. To make the error still visible it has been added to the top under
`Title:`. This also encourages informative issue titles.
4 years ago
saltycrys 2478e67d16 Switch to date based versioning scheme
Since no new tags are created for releases the version has been frozen for some
time, with only the commit hash changing.

Versions based on the latest commit date make it much easier to identify them.
4 years ago
Théo Gaillard df3f9a2ae8
fix: channel info parsing 4 years ago