Commit Graph

279 Commits

Author SHA1 Message Date
Samantaz Fox
1ec15dc073
Propagate related videos changes to API function 2022-02-03 01:44:11 +01:00
Samantaz Fox
f124e8cf93
Fix parsing of related videos 2022-02-03 01:37:30 +01:00
Samantaz Fox
d7ebd763f5
video parsing: add secondary_results root element 2022-02-03 01:37:30 +01:00
Samantaz Fox
99091e919c
video parsing: raise if major root element is missing 2022-02-03 01:37:30 +01:00
Samantaz Fox
6f4665588f
search.cr: use do/end rather than inline {} block 2022-01-28 15:54:38 +01:00
Samantaz Fox
63e1165936
videos.cr: use '.dig?()' where possible 2022-01-28 02:22:48 +01:00
Samantaz Fox
12b818a83c
Fix more 'Lint/ShadowingOuterLocalVar' warnings reported by ameba 2022-01-28 02:19:53 +01:00
Samantaz Fox
3bb7fbb2f1
Merge pull request #2719 from SamantazFox/batch-minor-fixes
Multiple minor fixes
2022-01-05 17:20:57 +01:00
Samantaz Fox
6c8a5a1e7f
Fix leading spaces being collapsed in descriptions
Fixes #1954
2022-01-05 03:32:54 +01:00
Samantaz Fox
d74873fed1
Clean useless database arguments (4/5) 2022-01-04 17:15:43 +01:00
Samantaz Fox
998edba6f0
Move DB queries related to 'videos' in a separate module 2022-01-04 17:13:51 +01:00
bbielsa
b90bceb2dc Fix formatting of preferences.cr and videos.cr 2021-12-15 19:38:58 +01:00
bbielsa
5abe7fe123 Rename 'remember_position' to 'save_player_pos' for clarity 2021-12-15 19:37:55 +01:00
bbielsa
a6a0bbf398 Add remember_position field to the Preferences and VideoPreferences structs, and add a checkbox in the preferences page to toggle it 2021-12-15 19:37:55 +01:00
Samantaz Fox
ee91effb7a
Merge pull request #2576 from SamantazFox/fix-locales-handling
Fix locales handling
2021-12-12 22:26:22 +01:00
Samantaz Fox
f236a6872b
Merge pull request #2659 from SamantazFox/fix-likes-dislikes
Fix likes/dislikes
2021-12-06 03:52:38 +01:00
Samantaz Fox
4aa96ecab9
Use 'dig()' in 'find()' statements 2021-12-01 17:32:10 +01:00
Samantaz Fox
4436359d07
Use dig to get category contents
Co-authored-by: Matthew McGarvey <matthewmcgarvey14@gmail.com>
2021-11-28 23:44:37 +01:00
Samantaz Fox
91f8395222
Typo: missing '?' when looking for key in dislikes_button
Co-authored-by: Matthew McGarvey <matthewmcgarvey14@gmail.com>
2021-11-28 23:37:27 +01:00
Samantaz Fox
ceb1feb350
likes/dislikes: better fallback management
'.to_i64?' instead of '.to_i64' returns nil rather than raising
an exception when it's done on an empty string.

In some rare cases, rating can be equal to 5. In this case, the
value of player_response[videoDetails][averageRating] is an
Int and not a Float.
2021-11-25 23:16:50 +01:00
Samantaz Fox
80a513baa5
Use new techniques to get (dis)likes back 2021-11-24 01:22:09 +01:00
Samantaz Fox
319587e2f1
extract_video_info: make sure that the Android player response is valid 2021-11-21 17:34:17 +01:00
Samantaz Fox
139786b9ef
i18n: pass only the ISO code string to 'translate()'
Don't use the whole Hash everywhere.
Also fall back nicely to english string if no translation exists.
2021-11-21 01:50:11 +01:00
Samantaz Fox
33780f1995
Also fix 'to_json' in struct Video 2021-10-29 16:26:35 +02:00
syeopite
e91421253e
Fix Style/VerboseBlock issues 2021-10-25 01:12:26 -07:00
syeopite
35d15c7c2b
Fix Style/VariableNames issues 2021-10-25 01:12:26 -07:00
syeopite
be1a43a337
Manually extract category refactor from 1b569bbc99207cae7c20aa285f42477ae361dd30
Also fixes some errors caused by cherry-picking
2021-09-24 21:07:07 -07:00
syeopite
50c8afb525
Handle equirectangular projections for VR (#2379) 2021-09-10 07:42:39 +00:00
Émilien Devos
b5d2eb5c70
fetch with innertube api when video is unavailable (#2329)
+ rename some client type to better names
+ fix thirdParty hack
2021-08-16 10:41:16 -07:00
syeopite
25362f16a0
Readd paid attribute for videos (#2330) 2021-08-15 10:38:30 +02:00
Émilien Devos
c06a20e085
Switch to innertube API for videos (#2220)
Commit history:
- Switch to innertube API for videos
- fix hardcoded strings + fix bypass geo-restriction
2021-08-13 20:29:43 +00:00
Émilien Devos
12b46bbd41
switch to innertube API for about channels (#2255) 2021-08-12 16:00:26 -07:00
syeopite
cea38de4ad
Check for existance of "adaptiveFormats" in videos
Combined from commits:
- Check for existance of "adaptiveFormats" in videos
- Remove usage of ternary conditional
2021-08-12 19:26:50 +00:00
syeopite
39110ad21c
Use struct for caption object 2021-07-11 16:17:22 -07:00
syeopite
57bb8c610a
Use embed stream pull as fallback for gated videos 2021-07-02 00:25:00 -07:00
syeopite
54b19a04bb
Fix caption parsing on age restricted videos 2021-06-27 08:35:28 -07:00
syeopite
ca4df29670
Wrap comment 2021-06-25 14:14:41 -07:00
syeopite
7da0b2fd7f
Switch from URI::Params.new to URI::Params.encode 2021-06-25 12:14:21 -07:00
syeopite
aa55e67389
Fix extraction of age restricted videos 2021-06-25 07:51:51 -07:00
syeopite
5ba9a1f87d
Fix lint 2021-05-23 09:22:37 -07:00
syeopite
6e6f4d5a37
Allow configurable support of interactive 360 vid 2021-05-23 09:22:37 -07:00
syeopite
df0cd30236
Add support for VR videos through videojs-vr 2021-05-23 09:22:29 -07:00
TheFrenchGhosty
6f899d998f
Merge pull request #1968 from syeopite/iss677
Add ability to expand/collapse description.
2021-05-13 10:26:38 +02:00
TheFrenchGhosty
73da8463ca
Merge pull request #1953 from syeopite/fix1673
Update regex expressions to handle unexpected '};'
2021-05-13 10:24:44 +02:00
sh4dowb
533d0a1fd4
Added "Read More" button for video descriptions 2021-05-10 00:24:11 -07:00
Samantaz Fox
87c25f83a4 Fix API giving ytimg instead of instance URLs for thumbnails 2021-04-01 02:36:35 +02:00
syeopite
608313c1d1
Update regex expressions to handle unexpected '};' 2021-03-29 17:37:12 -07:00
mark9064
9ae18b0b3b
Fix engagement
Engagement was calculated as 0-1 but displayed as a percentage
2021-02-28 11:59:46 +00:00
TheFrenchGhosty
705e4fca06
Merge pull request #1797 from B0pol/published_utc
Use UTC for published date
2021-02-25 17:57:02 +01:00
Andrew Zhao
295e5c9731 show how long ago stream started 2021-02-24 23:08:04 -05:00
bopol
237100da18 Use UTC for published date 2021-02-21 12:35:21 +01:00
vhuynh3000
3a2bd4e928 add config to decrypt on demand instead of polling 2021-01-03 20:50:52 +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
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.
2020-12-06 04:11:41 +01:00
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.
2020-12-03 18:10:41 +01:00
saltycrys
0f08cc5aa9 Remove backtrace on YouTube error
YouTube returning an error is not a bug in Invidious, so it should not print
a backtrace.
2020-11-30 12:57:25 +01:00
Théo Gaillard
1ba17a0e14
feat: centralize ytInitialData parsing 2020-11-26 13:43:53 +01:00
Ben Heller
22d9d16a7a
Update parsing of ytInitialData (#1427)
Update parsing of ytInitialData
2020-10-22 10:02:15 +00:00
Omar Roth
452d1e8307
Fix warnings with latest version of Crystal 2020-07-26 10:59:31 -04:00
Omar Roth
8ed1c77e47
Skip DASH streams segmented by URL 2020-07-04 14:17:46 -04:00
Omar Roth
1f435522b4
Fix cast from nil in short_description 2020-06-17 19:22:28 -04:00
Omar Roth
38c7dda00f
Fix genreUrl 2020-06-16 17:51:49 -05: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
75450dcdbc
Update signature param 2020-05-08 08:59:09 -05:00
Omar Roth
ca1185d0be
Fix warnings in latest version of Crystal 2020-04-09 12:18:09 -05:00
Omar Roth
7b88d0efe3
Minor refactor 2020-01-08 20:27:21 -05:00
Omar Roth
0e1d6aa85c
Update error messages for video extractor 2019-11-05 19:39:11 -05:00
Omar Roth
6930570fa2
Add HTTPClient pool 2019-10-25 12:58:16 -04:00
Omar Roth
be055d9dcb
Add support for custom playlists 2019-10-15 21:17:14 -04:00
Omar Roth
2d59fdd178
Fix default value for empty description 2019-10-04 17:04:43 -04:00
Omar Roth
68be24ffc6
Refactor process_video_params 2019-10-04 12:23:28 -04:00
Omar Roth
9dcc87c705
Refactor storyboard generation 2019-10-04 10:26:02 -04:00
Omar Roth
4361ea9686
Update DB calls for 0.31.0 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
cfb68e3bff
Add additional handling for unplayable videos 2019-09-21 20:06:08 -04:00
Omar Roth
b1fc80b79a
Update sub_count extractor 2019-09-12 21:09:23 -04:00
Omar Roth
7002a316fd
Filter movies from recommended videos 2019-09-12 13:06:10 -04:00
Omar Roth
68cf24d100
Add support for channel redirects 2019-09-08 12:08:59 -04:00
Omar Roth
86491da253
Fix map for recommended videos 2019-09-07 21:56:33 -04:00
Omar Roth
90249cdafa
Fix extractor for short_view_count_text 2019-09-07 20:09:08 -04:00
Omar Roth
70f435e909
Fix nillable for recommendedVideos 2019-08-31 16:24:13 -04:00
Omar Roth
512d82071e
Fix invalid viewCountText in related videos 2019-08-31 15:58:38 -04:00
Omar Roth
3896230199
Fix type cast for viewCount 2019-08-31 01:11:45 -04:00
Omar Roth
01e42c8d6f
Flatten viewCountText 2019-08-27 08:52:22 -05:00
Omar Roth
16056661dd
Update recommended videos extractor 2019-08-27 08:00:04 -05:00
Omar Roth
e768e1e277
Fix allowed_regions for globally blocked videos 2019-08-19 10:16:11 -05:00
Omar Roth
900d8790b3
Refactor geo-bypass 2019-08-14 18:09:07 -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
cc956583fb
Fix detection of unavailable videos 2019-08-05 18:57:32 -05:00
Omar Roth
7a33831d14
Fix detection of premium content 2019-08-04 20:57:34 -05:00
Omar Roth
dce5816b18
Fix image url extractor 2019-07-31 19:16:09 -05:00
Omar Roth
f643175156
Fix typo in video extractor 2019-07-30 10:12:41 -05:00
Omar Roth
0321dda1d7
Fix handling for video content warnings 2019-07-29 20:39:12 -05:00
Omar Roth
ff5d79e3ee
Update video extractor 2019-07-29 19:41:45 -05:00
Omar Roth
af592ea8c1
Fix extraction for ytInitialData 2019-07-11 07:27:54 -05:00
Omar Roth
3c226892c6
Add fix for empty title tag when fetching videos 2019-07-10 10:44:44 -05:00
Omar Roth
2cc25b1e6e
Add administrator option to disable proxying 2019-07-08 12:15:18 -05:00
Omar Roth
fd43b16213
Add av01 formats to itag list 2019-07-05 13:43:44 -05:00
Omar Roth
b22393092b
Fix protocol for video author thumbnails 2019-07-03 13:10:18 -05:00