Commit Graph

1943 Commits (6e1b62aedfa302409e0f991576660068b0015898)

Author SHA1 Message Date
syeopite 2451497b31
Typo 3 years ago
syeopite 06a1d2ac41
Rename fetch_videojs* to fetch_player* 3 years ago
syeopite 262131f68e
Add script to resolve and fetch VideoJS files 3 years ago
syeopite 5054510d15
Prevent VR from being initialized in listen mode (#2396) 3 years ago
Samantaz Fox 947fe4fbb3
HTML escape video mimetype
Video mimetype may contain code information between double quotes.
If not properly escaped, it breaks the browser's parser. E.g:
```
type="video/mp4; codecs=" avc1.64001f,="" mp4a.40.2""=""
```

Thank Robin for catching this!
3 years ago
syeopite 50c8afb525
Handle equirectangular projections for VR (#2379) 3 years ago
syeopite a539de4f97
Bump dependencies (#2378)
* Upgrade to Kemal v1.1.0

* Bump postgres driver
3 years ago
TheFrenchGhosty 8d5a867271
Merge pull request #2380 from syeopite/fix-invidious-showing-yt-redirect-links
Fix invidious showing yt redirect links
3 years ago
syeopite 387bddb51b
Improve detection and handling of yt redirect links 3 years ago
Emilien Devos 41ba19b615 fix comment replies 3 years ago
syeopite a28945273d
Propagate replacing yout.be links to /watch to RSS 3 years ago
syeopite fd6f03655e
Fix typo causing links to be youtube.com/redirect 3 years ago
Émilien Devos 8b62c05fe2
remove 3gp only from the player (#2376)
+ video quality precedence on default player when js is not enabled
3 years ago
syeopite a1001ada47
Properly transform youtu.be links to be /watch routes in comments and descriptions (#2365) 3 years ago
TheFrenchGhosty 8e3ff79f22 Remove the mention of 'Omar Roth' from the footer 3 years ago
syeopite 4fcd0964cd
Extract API routes (#2271)
* Extract API routes from invidious.cr
* Remove deprecated APIs
  - insights
  - top feed
3 years ago
syeopite 5005212bec
Extract feed routes (#2269)
* Extract feed routes from invidious.cr
* Removes the deprecated route for /feed/top
* Deprecate /view_all_playlist & use /feed/playlists
* Move feed views into their own directory

* Add haltf method to halt current route context
* Change status_code + return blocks to use haltf

* Set appropriate response headers for RSS routes
3 years ago
Émilien Devos a279d6f433
Fix livestream parsing URLs (#2356) 3 years ago
syeopite fceb8093f1
Use `athena-negotiation` to detect language through Accept-Language header (#2324)
Detect language through Accept-Language header
3 years ago
syeopite d984a898d4
Remove usage of haltf in /api/v1/channels/:ucid/comments 3 years ago
syeopite 52688106e4
Fix /api/v1/search/suggestions route link 3 years ago
syeopite 66b45a8fe2
Bountiful changes
- Use haltf in more locations
 - Fix wrong URL params
 - Rename API modules
 - Remove API routing file and move everything to general iv routing
   file
3 years ago
Émilien Devos b5d2eb5c70
fetch with innertube api when video is unavailable (#2329)
+ rename some client type to better names
+ fix thirdParty hack
3 years ago
syeopite 25362f16a0
Readd paid attribute for videos (#2330) 3 years ago
syeopite 39b34eece8
Extract API routes from invidious.cr (3/3)
- Auth (excluding notifications*) APIs
- Mixes

*Notifications currently require the "connection_channel" channel
for talking with the notifications job. Unfortunately, we cannot
access that within the route modules yet.
3 years ago
syeopite b3426fdc94
Restructure API routes to use more namespaces 3 years ago
syeopite 6aa65593ef
Extract API routes from invidious.cr (2/?)
- Video playback endpoints
- Search feed api
- Video info api
3 years ago
syeopite 66becbf46f
Restructure API route organisation 3 years ago
syeopite cbf3d75087
Extract API routes from invidious.cr (1/?) 3 years ago
syeopite 0b0036813f
Remove deprecated APIs
- insights
- top feed
3 years ago
É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
3 years ago
Émilien Devos 12b46bbd41
switch to innertube API for about channels (#2255) 3 years ago
syeopite cea38de4ad
Check for existance of "adaptiveFormats" in videos
Combined from commits:
- Check for existance of "adaptiveFormats" in videos
- Remove usage of ternary conditional
3 years ago
Emilien Devos 6745ca7775 fix comments using dig 3 years ago
Émilien Devos 88c5e3b6fa
Use the new youtube api for comments (#2217)
* use the new youtube api for comments
* remove PG_DB & action parameter + allow force region
* support new comments data with onResponseReceivedEndpoints
3 years ago
syeopite 7afa027b95
Switch routing logic to use modules (#2298)
* Switch routing logic to use modules
* Add more macros for adding routes of different HTTP methods
3 years ago
TheFrenchGhosty 9b74cf3225
Typo 3 years ago
syeopite 1321c90920
Extract channel routes (#2227)
* Extract primary channel routes from invidious.cr

Also removes timedtext_video stub since all it does is redirect to the
homepage. However, Invidious's 404 handler already does this.

--
As the template for the channel about page doesn't exist yet, the
behavior for the /channel/:ucid/about endpoint has been changed to be
the same as what's currently present on Invidious

(cherry picked from commit 8fad19d805)

* Manually extract brand_redirect from 1b569bbc99

This commit manually extracts the brand_redirect function from the
commit mentioned.

However, the redirect to the  `.../about` endpoint is removed due to the
fact that it doesn't exist yet.

This commit is also mainly just a bridge for the next few cherry picks from
\#2215

* Update brand_redirect to use youtubei resolve_url

(cherry picked from commit 53335fe7cf)

* Add additional channel endpoints to brand_redirect

(cherry picked from commit 8fc6f3add6)

* Add separate handler for /profile endpoint

* Add /channel/:ucid/home route

* Document all channel brand_urls
3 years ago
Samantaz Fox 4b46313e19
Fix crystal overrides (#2295)
* Move Crystal stdlib classes overrides to a separate file
* Document known crystal overrides
* Update crystal overrides for HTTP::Client socket
* Update shard.yml to restrict crystal versions
* Fix compilation error in Crystal 1.1.x (See
   https://github.com/crystal-lang/crystal/issues/10965
   for more details about this issue).
3 years ago
syeopite e9add69e26
Fix #resolve_url by adding ClientConfig argument
The private `_post_json` method of the YoutubeAPI requires a ClientConfig
as the third parameter. This was passed in all Youtube API methods except the
`#resolve_url` method.
3 years ago
Samantaz Fox 5b020e81ca
Youtube api improvements (#2277)
* Put youtube API functions under the YoutubeAPI namespace

* Implement the following endpoints:
  - `next`
  - `player`
  - `resolve_url`

* Allow a ClientConfig to be passed to YoutubeAPI endpoint handlers.

* Add constants for many new clients

* Fix documentation of YoutubeAPI.browse(): Comments and search
  result aren't returned by the browse() endpoint but by the next()
  and search() endpoints, respectively.

* Accept gzip compressed data, to help save on bandwidth

* Add debug/trace logging

* Other minor fixes
3 years ago
Samantaz Fox 84594b0e1e
Remove workaround for decompression of proxied files (#2286)
Was used by `proxy_file` before crystal 0.35.0.
Implemented in: f7dbf2bdd4
orphaned since: d30a972a90
3 years ago
syeopite 578bbcd181
Fix raw parameter for videos in listen mode (#2270) 3 years ago
Samantaz Fox bc937a6434
Add Korean (ko.json) to loaded locales
Required because of c83113d49b.
3 years ago
syeopite 095c894548
Merge pull request #2201 from pinchese/patch-1
futureproof comment avatars
3 years ago
Samantaz Fox 56ebef4352
Multiple front-end fixes (#2247)
Fixes:
* Sanitize user-provided content in HTML (Fixes #2193)
* Fix encoding of search query in prev/next pages (Fixes #2229)
* Fix some issues introduced with #2196:
   - Fix alignment of all <h3> elements (Move the inline style from the parent to the <h3> element)
   - Add missing comma on 'dir' HTML attribute (Typo introduced by PR #2196)

Code cleaning:
* Remove unnecessary 'each_sclice' + 'each' double loop in ECR files
* Clean the player's <source> list generation code (in player.ecr)
3 years ago
syeopite 3e5c353298
Merge pull request #2205 from syeopite/fix-age-restricted-videos
Partial (and temporary) fix for age restricted videos
3 years ago
Émilien Devos 0d57a887ea
Mute unbuffered_flush IOError exception (#2235)
Related to #1416, it doesn't really fix the real error, but instead mutes the exception message.

Like explained in #1416, this "exception Error" while flushing the client data doesn't harm the client-server connection. However, this exception message continuously spams the logs and makes debugging and error finding really difficult.
3 years ago
syeopite ae61662f61
Debloat channels.cr into multiple files (#2225)
Cherry picked from ui overhaul branch with a few modifications:
  - channel folder is renamed to channels
  - parsing for channel home and featured channels are removed due to
    lack of infrastructure from other commits

(cherry picked from commit 44d18b8e14)
3 years ago
Samantaz Fox c0e8feb66e
Add new and missing locales to i18n.cr
New locales: lt, vi
Missing: bn_BD, cs, da, eu, hu-HU, si, sk, sr, sr_Cyrl
3 years ago