Commit graph

2938 commits

Author SHA1 Message Date
ChunkyProgrammer
8338a73e7b add user_agent if empty or crystal 2023-11-17 08:01:56 -05:00
ChunkyProgrammer
86ee761788 Fix logic for setting user agent 2023-11-15 00:51:43 -05:00
karelrooted
c251c66748 fix youtube api vtt format subtitle
for fmt=vtt to work the fmt parameter in the original caption api url need to be replaced
2023-11-14 13:16:08 +08:00
syeopite
ed8b84ed15
Replace more * in macro with #splat 2023-11-08 00:49:37 -08:00
syeopite
8ce91166d6
Remove instance of the * operator in macro expr 2023-11-08 00:42:46 -08:00
syeopite
8525758583
Use #splat method for macro expressions 2023-11-08 00:37:18 -08:00
syeopite
ab4c0a1d3c
Fetch channel info from home tab instead of about 2023-11-07 23:53:14 -08:00
syeopite
c31908a011
Update params protobuf for channel about tab 2023-11-07 22:19:56 -08:00
syeopite
438467f69a
Add playback success rate to /api/v1/stats (#4085)
* Add stats-based /videoplayback blockage status

* Count when YouTube returns wrong video as failure

* Cast playback stats hash type prior to return

* Bump stats refresh timer to 10 minutes
2023-11-04 13:52:30 +00:00
Émilien (perso)
db3c57d49f
force resolve for everything (#4225) 2023-11-02 22:35:50 +00:00
src-tinkerer
b0df3774db Add sort options to streams 2023-11-01 21:56:25 +03:30
Brahim Hadriche
3881038a32 format 2023-10-26 17:51:38 -04:00
Brahim Hadriche
7e267da5be Make head request to resolve short urls 2023-10-26 17:48:58 -04:00
Brahim Hadriche
d7901c1e0d type fix 2023-10-26 17:35:52 -04:00
Brahim Hadriche
85a5bbd696 Add playlist and start time to the resolve url 2023-10-26 17:24:53 -04:00
Samantaz Fox
07de1e236f
Videos: Append '&mpd_version=5' to DASH manifest URL
This makes Youtube return a MPD manifest with templates rather than
lengthy <SegmentList>. The returned  manifest is about 44 times smaller.
2023-10-22 17:56:04 +02:00
Samantaz Fox
2414e7db41
User: Add support for importing Youtube watch history (#4171) 2023-10-21 18:33:05 +02:00
Samantaz Fox
1a33012cad
CSS: Remove inline styling of the download widget (#4162) 2023-10-21 18:32:40 +02:00
Samantaz Fox
cf7c49deb0
Captions: Use 'fmt=vtt' instead of 'format=vtt' (#4152) 2023-10-21 18:32:28 +02:00
Samantaz Fox
d543a68a84
API: Add "authorVerified" to the video endpoint (#4150) 2023-10-21 18:32:01 +02:00
Samantaz Fox
2a65b5f52e
Frontend: Add video timestamp on external links (#4101) 2023-10-21 18:31:42 +02:00
Samantaz Fox
88cc62d45e
User: Fix importing FreeTube subscriptions with multiple profiles (#4011) 2023-10-21 18:31:18 +02:00
Ulysses Zhan
3b219a4c7f remove a debug statement 2023-10-20 13:45:16 -07:00
Émilien (perso)
0e4d3d89fc
update params for fetching stream data (#4156)
* update params for fetching stream data

* Remove link about special parameter
2023-10-20 08:48:56 +02:00
jt404
d7ea5609b2 move styles for download widget to default.css file 2023-10-17 01:00:14 +02:00
ChunkyProgrammer
0bd415158f Fix importing FreeTube subscriptions with multiple profiles
Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
2023-10-16 00:32:24 -04:00
Ulysses Zhan
b9cbdce976 add: importing watch history from YouTube 2023-10-14 15:49:33 -07:00
jt404
8125ddca06 Replace inline styling for download widget with css file 2023-10-12 03:22:34 +02:00
RadoslavL
8e45e05fba
Get "author_verified" using the instance method instead of using the info hash.
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2023-10-09 09:20:35 +03:00
Samantaz Fox
0aebac5f3e
Captions: Use 'fmt=vtt' instead of 'format=vtt' 2023-10-08 12:40:49 +02:00
Samantaz Fox
60fae015d8
Add support for community post page/comments (#4010) 2023-10-07 19:58:54 +02:00
Samantaz Fox
ce0e21400e
Search: Parse channel handle (#3994) 2023-10-07 19:56:07 +02:00
Samantaz Fox
1caaf63c8a
Refactor WebVTT building logic into WebVTT::Builder (#4070) 2023-10-07 19:53:29 +02:00
Samantaz Fox
eddb54adb1
Routing: Add support for new routes (#4099) 2023-10-07 19:52:48 +02:00
RadoslavL
7dc9b3f088 Fixed formatting 2023-10-07 20:29:48 +03:00
Samantaz Fox
f26c995344
i18next: Revert some changes, as es/pt/pt-PT aren't mixed up (yet) 2023-10-07 19:12:17 +02:00
RadoslavL
ed2a44149e Added authorVerified to the video API v1 route 2023-10-07 17:55:42 +03:00
Samantaz Fox
32310b7c9f
i18Next: Add exceptions for mixed v3/v4 plural forms 2023-10-06 08:19:27 +02:00
ChunkyProgrammer
f77e4378fe Add support for viewing comments without js
Improve stylings
2023-09-28 18:09:45 -04:00
ChunkyProgrammer
4f25069f55 remove unused variable
simplify resolve url

remove trailing spaces

Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
2023-09-27 17:36:06 -04:00
syeopite
be2feba17c
Lint 2023-09-23 09:57:26 -04:00
syeopite
a999438ae4
Consistency: rename #add_timestamp_component
Removes the add_ prefix for consistency with the other methods in
WebVTT::Builder
2023-09-23 09:41:43 -04:00
syeopite
e9d59a6dfd
Update src/invidious/helpers/webvtt.cr
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2023-09-23 09:41:43 -04:00
syeopite
4e97d8ad09
Update documentation for WebVTT.build 2023-09-23 09:41:43 -04:00
syeopite
d371eb50f2
WebVTT::Builder: rename #line to #cue 2023-09-23 09:41:41 -04:00
syeopite
0cb7d0b441
Refactor Invidious's VTT logic to use WebVtt.build 2023-09-23 09:40:04 -04:00
syeopite
54fa59cbb0
Add method to construct WebVTT files
Similar to JSON.Build
2023-09-23 09:20:20 -04:00
ChunkyProgrammer
8781520b8a Search: Parse channel handle and hide video count when channel handle exists
Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
2023-09-18 20:12:07 -04:00
ChunkyProgrammer
bb04bcc42c Apply suggestions from code review
add videoId to resolve_url function

Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
2023-09-18 20:10:41 -04:00
ChunkyProgrammer
f55b96a53b Always craft Community Post params 2023-09-18 20:10:41 -04:00
ChunkyProgrammer
734f1b7764 Simplify resolveUrl api call
Co-Authored-By: Samantaz Fox <coding@samantaz.fr>
2023-09-18 20:10:41 -04:00
ChunkyProgrammer
e3c365f3d6 Add support for post page 2023-09-18 20:10:41 -04:00
Samantaz Fox
bb14f79496
Playlists: Use subtitle when author is missing (#4025) 2023-09-18 23:34:30 +02:00
Samantaz Fox
842e9fade5
Captions: Add ability to use Innertube's transcripts API (#4001) 2023-09-18 23:31:56 +02:00
Samantaz Fox
ebee973b24
Routes: Redirect unknown channel tabs to channel home page 2023-09-16 00:54:14 +02:00
Samantaz Fox
58f4a012b7
Frontend: Add timestamp on switch invidious instance links 2023-09-14 22:28:07 +02:00
Samantaz Fox
2456b62936
Frontend: Add timestamp on invidious embed links 2023-09-14 22:27:36 +02:00
Samantaz Fox
792a999386
Frontend: Add timestamp on youtube+embed links 2023-09-14 22:26:36 +02:00
Samantaz Fox
2425c47882
Routing: Add support for the '/live/<id>' route 2023-09-13 23:41:31 +02:00
Samantaz Fox
49b9316b9f
Routing: Handle current and future routes more nicely 2023-09-13 23:40:20 +02:00
ChunkyProgrammer
afb04c3bda HTMLl.Escape the playlist subtitle 2023-09-11 22:35:58 -04:00
ChunkyProgrammer
d7696574f4 Playlist: Use subtitle when author is missing 2023-09-11 22:35:57 -04:00
Samantaz Fox
ac0c0609bb
Add workaround for storyboards on local instances (#4040) 2023-08-26 12:15:04 +02:00
Samantaz Fox
7e84d07c27
Playlist import no refresh (#3973) 2023-08-26 12:12:42 +02:00
Samantaz Fox
a8295b452e
Search: Add hashtag result (#3989) 2023-08-26 12:11:38 +02:00
syeopite
3615bb0e62
Update src/invidious/videos/caption.cr
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2023-08-24 16:21:05 -07:00
syeopite
7d435f082b
Update src/invidious/videos/transcript.cr
Co-authored-by: Samantaz Fox <coding@samantaz.fr>
2023-08-24 23:20:20 +00:00
syeopite
1f7592e599
Refactor structure of caption.cr
Rename CaptionsMetadata to Metadata
Nest Metadata under Captions
Unnest LANGUAGES constant from Metadata to main Captions module
2023-08-24 16:00:02 -07:00
syeopite
2b36d3b419
Update errors.cr 2023-08-10 18:45:10 +00:00
syeopite
6b17bb5250
Regression from #4037 | Fix storyboards
PR #4037 introduced a workaround around YouTube's new integrity checks
on streaming URLs. However, the usage of this workaround prevents
storyboard data from being returned by InnerTube.

This commit fixes that by only using the workaround when calling try_fetch_streaming_data
2023-08-08 15:28:01 -07:00
syeopite
a81c0f329c
Add workaround for storyboards on priv. instances
An upstream problem with videojs-vtt-thumbnails means that URLs gets
joined incorrectly on any instance where `domain`, `external_port` and
`https_only` aren't set.

This commit adds some logic with the 404 handler to mitigate this
problem. This is however only a workaround.

See:
https://github.com/iv-org/invidious/issues/3117
https://github.com/chrisboustead/videojs-vtt-thumbnails/issues/31
2023-08-08 15:13:23 -07:00
syeopite
2f6b2688bb
Use workaround for fetching streaming URLs
YouTube appears to be A/B testing some new integrity checks. Adding the
parameter "CgIQBg" to InnerTube player requests appears to workaround
the problem

See https://github.com/TeamNewPipe/NewPipeExtractor/pull/1084
2023-08-06 12:22:22 -07:00
syeopite
c5fe96e936
Remove lsquic from codebase 2023-07-26 07:19:12 -07:00
syeopite
3509752b79
Rename transcript() to get_transcript() in YT API 2023-07-23 16:52:47 -07:00
syeopite
e4942b188f
Integrate transcript captions into captions API 2023-07-23 14:40:09 -07:00
syeopite
caac7e2166
Add method to convert transcripts response to vtt 2023-07-23 14:40:08 -07:00
syeopite
4b3ac1a757
Add method to parse transcript JSON into structs 2023-07-23 14:40:08 -07:00
syeopite
8e18d445a7
Add method to generate params for transcripts api 2023-07-23 14:40:08 -07:00
syeopite
7e5935a9da
Rename Caption struct to CaptionMetadata
The Caption object does not actually store any text lines for the
subtitles. Instead it stores the metadata needed to display and fetch
the actual captions from the YT timedtext API.

Therefore it may be wiser to rename the struct to be more reflective of
its current usage as well as the future usage once the current caption
retrival system is replaced via InnerTube's transcript API
2023-07-23 14:40:08 -07:00
syeopite
2e67b90540
Add method to query /youtubei/v1/get_transcript 2023-07-23 14:40:02 -07:00
Samantaz Fox
d956b1826e
Community: Parse quiz attachments (#3978) 2023-07-20 08:16:10 +02:00
Samantaz Fox
c1a69e4a4a
Channels: Use innertube to fetch the community tab 2023-07-18 00:29:25 +02:00
Samantaz Fox
f38d1f33b1
HTML: Add UI element for 'SearchHashtag' in item.ecr 2023-07-18 00:01:16 +02:00
Samantaz Fox
839e90aeff
Extractors: Add module for 'hashtagTileRenderer' 2023-07-18 00:01:13 +02:00
Samantaz Fox
69e2eaccc0
RSS Feeds: Fix Nil assertion failed (#3958) 2023-07-16 18:13:55 +02:00
Samantaz Fox
ff6166edf7
Playlists: Fix pagination of Invidious playlists (#3861) 2023-07-16 18:02:27 +02:00
Samantaz Fox
c8ade5194b
UI: Nicer buttons (#3763) 2023-07-16 17:36:35 +02:00
ChunkyProgrammer
70145cba31 Community: Parse Quiz attachments 2023-07-15 06:41:03 -07:00
Samantaz Fox
05cc503391
Fix lint 2023-07-15 12:57:26 +00:00
ChunkyProgrammer
f2fa3da9d2 Add support for releases and podcasts tabs 2023-07-14 16:15:20 -07:00
Brahim Hadriche
0110f865c3
Playlist import no refresh 2023-07-08 16:51:19 -04:00
Samantaz Fox
9b75f79fb5
HTML/CSS: Add thumbnail placeholder in thin mode
This change is required to make the overlay buttons functional
(add to and delete from playlist, mark as watched, etc.)
2023-07-08 21:33:59 +02:00
Samantaz Fox
c17404890c
HTML: Use the new pagination component for history/subscriptions 2023-07-08 20:48:37 +02:00
Samantaz Fox
06b2bab795
HTML: Fix thumbnails of related videos (watch page) 2023-07-08 20:48:37 +02:00
Samantaz Fox
411208bbd2
HTML: Reorder buttons on the channel and watch pages 2023-07-08 20:48:36 +02:00
Samantaz Fox
42fa6ad2a3
HTML/CSS: Fix buttons' responsiveness 2023-07-08 20:48:36 +02:00
Samantaz Fox
8718f20688
HTML: Fix thin mode/thumbnail on other items 2023-07-08 20:48:36 +02:00
Samantaz Fox
43dcab225c
HTML: merge MixVideo with other types in item.ecr 2023-07-08 20:48:36 +02:00
Samantaz Fox
080c7446c6
HTML: Use new buttons for playlists (save/delete/add videos/etc...) 2023-07-08 20:48:32 +02:00
Samantaz Fox
b6bbfb9b20
HTML: Use new buttons for thumbnail overlays
In addition, this commit also heavily changes the structure of the
generic "video card" item. Main benefits:
  * Improved accessibility for keyboard users
  * Many styling glitches were fixed
  * PlaylistVideos now use the same items as the rest
  * Elements all have distinct CSS classes
  * Design can be expanded to add more icons
2023-07-06 00:58:32 +02:00
Samantaz Fox
7bd6d0ac49
HTML: Use the new pagination component for channel pages 2023-07-06 00:58:30 +02:00
Samantaz Fox
efaf7cb09c
HTML: Use the new pagination component for search results 2023-07-06 00:57:40 +02:00
Samantaz Fox
c4ef3bed95
HTML: Use the new pagination component for playlists 2023-07-06 00:23:22 +02:00
Samantaz Fox
57c7b922f7
HTML: Make a dedicated ECR component for items + pagination 2023-07-06 00:23:22 +02:00
Samantaz Fox
c088749744
HTML: Add code to generate page nav buttons 2023-07-06 00:23:22 +02:00
Samantaz Fox
462609d90d
Utils: Create a function to append parameters to a base URL 2023-07-06 00:23:22 +02:00
Samantaz Fox
0ba22ef391
I18n: Add a function to determine if a given locale is RTL 2023-07-06 00:23:22 +02:00
Omer Naveed
a38edd7330
Fix Nil assertion failed in RSS feeds 2023-07-01 18:35:01 -05:00
Samantaz Fox
d7568ac45a
Remove old warning code about unconfigured 'hmac_key' 2023-07-01 21:53:56 +02:00
Samantaz Fox
ba43365acb
Config: Stop if 'hmac_key' is the default value 2023-07-01 19:38:50 +02:00
Samantaz Fox
1647092b3c
Config: Make 'hmac_key' mandatory 2023-07-01 19:29:24 +02:00
Samantaz Fox
16b8b6034f
Channels: Use new ctoken value for "sort by oldest" 2023-06-21 21:41:53 +02:00
Ikko Eltociear Ashimine
495ccdc221
Fix typo in jobs.cr
follwing -> following
2023-06-13 19:16:07 +09:00
Samantaz Fox
e6f5fcbc4b
User: Strip empty new lines before parsing CSV (#3895) 2023-06-12 21:09:39 +02:00
Samantaz Fox
df6b51f9c6
Comments: Fix display of youtube links (#3911) 2023-06-12 21:04:57 +02:00
lamemakes
7a569d81ca Updated comment link returns 2023-06-12 09:40:26 -04:00
Émilien (perso)
875b8ea0c2
Merge pull request #3903 from unixfox/temporary-message-video-not-available 2023-06-11 21:05:49 +02:00
Emilien Devos
8e4833d21a temp explanation about video not available issue 2023-06-11 16:54:30 +02:00
Samantaz Fox
b06c87ff8d
User: Remove broken Google login (various comments) 2023-06-11 16:34:59 +02:00
Samantaz Fox
69f23d95b8
User: Remove broken Google login (various functions) 2023-06-11 16:34:59 +02:00
Samantaz Fox
3444117818
User: Remove broken Google login (various constants) 2023-06-11 16:34:59 +02:00
Samantaz Fox
39ff94362e
User: Remove broken Google login (feeds route) 2023-06-11 16:34:59 +02:00
Samantaz Fox
11ab6ffb32
User: Remove broken Google login (notifications route) 2023-06-11 16:34:59 +02:00
Samantaz Fox
9dd4195dd0
User: Remove broken Google login (subscribe route) 2023-06-11 16:34:59 +02:00
Samantaz Fox
fcbd5106c3
User: Remove broken Google login (password change route) 2023-06-11 16:34:59 +02:00
Samantaz Fox
836898754e
User: Remove broken Google login (before_all route) 2023-06-11 16:34:59 +02:00
Samantaz Fox
d3b04ac68c
User: Remove broken Google login (dedicated captcha route) 2023-06-11 16:34:59 +02:00
Samantaz Fox
b2b61ab0a9
User: Remove broken Google login (login route) 2023-06-11 16:34:59 +02:00
Samantaz Fox
62bd895562
User: Remove broken Google login (HTML form) 2023-06-11 16:34:59 +02:00
Samantaz Fox
46ea22f75c
Watch: Load watch page data for premieres (#3866) 2023-06-11 16:05:32 +02:00
Samantaz Fox
1b942f4f0a
User: Strip empty new lines before parsing CSV 2023-06-10 20:58:21 +02:00
Samantaz Fox
e7bed765fe
Chore: Bump various constants (#3843) 2023-06-09 21:19:20 +02:00
Samantaz Fox
7556cb69f2
YT API: Bump WEB/MWEB client versions 2023-06-09 21:05:48 +02:00
Samantaz Fox
b5e30d66d4
YT API: Bump Android app version 2023-06-09 21:05:48 +02:00
Samantaz Fox
d9521c82cf
YT API: Bump iOS app version 2023-06-09 21:05:48 +02:00
Samantaz Fox
505a1566d1
Misc: Update User-Agent string 2023-06-09 21:05:45 +02:00
Chunky programmer
233bd3f593 Watch: Load watch page data for premieres 2023-06-07 11:32:20 -04:00
Chunky programmer
d164776024 Playlists: Fix paging for Invidious playlists 2023-06-06 16:27:26 -04:00
Emilien Devos
372192eabc warn about hmac key deadline 2023-06-04 17:30:23 +02:00
Samantaz Fox
bbf16279bb
Search: Allow browser suggestions (#3724) 2023-06-01 22:41:04 +02:00
Samantaz Fox
16ac3be85b
Playlists: Fix duplicated videos across pages (#3807) 2023-05-31 22:30:52 +02:00
Samantaz Fox
21f0b90354
Utils: Add support for short "x ago" forms (#3825) 2023-05-31 22:28:47 +02:00
Samantaz Fox
928ea75dbc
Search: Parse playlists when searching a channel (#3804) 2023-05-31 22:27:53 +02:00
Samantaz Fox
898066407d
Utils: Update 'decode_date' to take into account short "x ago" forms 2023-05-29 12:41:53 +02:00
Samantaz Fox
f0c8477905
Comments: Move content-related functions to their own file 2023-05-25 22:53:53 +02:00
Samantaz Fox
4379a3d873
Comments: Move ctoken functions to youtube.cr 2023-05-25 22:53:53 +02:00
Samantaz Fox
df85265453
Comments: Move link utility functions to own file + module 2023-05-25 22:53:53 +02:00
Samantaz Fox
de78848039
Comments: Move 'template_reddit' function to own file + module 2023-05-25 22:53:53 +02:00
Samantaz Fox
e10f6b6626
Comments: Move 'template_youtube' function to own file + module 2023-05-25 22:53:53 +02:00
Samantaz Fox
634e913da9
Comments: Move 'fetch_reddit' function to own file + module 2023-05-25 22:53:53 +02:00