Commit Graph

66 Commits

Author SHA1 Message Date
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
2021-08-03 02:58:27 +02:00
Samantaz Fox
344ccf3b03
Use '/youtubei/v1/browse' endpoint for playlists 2021-05-24 13:19:28 +02:00
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
2021-05-24 13:19:28 +02:00
Samantaz Fox
93198438b8
Fix for issue #1989
Fixes #1989
2021-04-07 15:13:41 +02:00
Samantaz Fox
aaefa38602 Make the linter happy 2021-03-21 16:05:50 +01:00
Samantaz Fox
9bdfb0a32b Playlist: Support edge case where 'content' in JSON may be erroneously plural 2021-03-21 15:47:44 +01:00
Samantaz Fox
980f5f1299 Playlist: Fix video continuation (100+ videos playlists) 2021-03-21 15:47:03 +01:00
Samantaz Fox
89be1975ea Playlist: Fix continuation token generation 2021-03-21 15:43:49 +01:00
Samantaz Fox
fec82df451 Fix fetching of large playlist 2021-03-21 00:15:39 +01:00
Samantaz Fox
3de39698dd Make the build tests happy: remove blank lines 2021-03-11 03:46:17 +00:00
Samantaz Fox
b86476410f playlists: Fix description being simple text (issue #1767) 2021-03-11 00:44:35 +00:00
saltycrys
36e9fb9d68 Fix watch_videos endpoint
Playlists created by `watch_videos` do not have an author which caused a crash
previously.
2021-01-04 05:35:59 +01:00
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.
2020-12-07 22:28:27 +01:00
saltycrys
3dac33ffba
Add backtraces to errors (#1498)
Error handling has been reworked to always go through the new `error_template`,
`error_json` and `error_atom` macros.
They all accept a status code followed by a string message or an exception
object. `error_json` accepts a hash with additional fields as third argument.

If the second argument is an exception a backtrace will be printed, if it is a
string only the string is printed. Since up till now only the exception message
was printed a new `InfoException` class was added for situations where no
backtrace is intended but a string cannot be used.

`error_template` with a string message automatically localizes the message.
Missing error translations have been collected in https://github.com/iv-org/invidious/issues/1497
`error_json` with a string message does not localize the message. This is the
same as previous behavior. If translations are desired for `error_json` they
can be added easily but those error messages have not been collected yet.

Uncaught exceptions previously only printed a generic message ("Looks like
you've found a bug in Invidious. [...]"). They still print that message
but now also include a backtrace.
2020-11-30 10:59:21 +01:00
Gauthier POGAM--LE MONTAGNER
1595eaeb74 Fix #1382 : Playlists missing first video
The index was set to index - 1, causing the first video to be shifted in fetch_playlist_videos
(because of its index being -1 lower than it should) and thus not displayed on playlist page.
2020-09-25 14:26:07 +02:00
Omar Roth
452d1e8307
Fix warnings with latest version of Crystal 2020-07-26 10:59:31 -04:00
Omar Roth
1e4022680a
Fix playlists with one video 2020-07-26 10:59:31 -04:00
Omar Roth
8c65b8c16f
Update playlists to support polymer redesign 2020-06-24 22:19:36 -04:00
Omar Roth
c1cbdae5ee
Make HOST_URL constant 2020-06-15 18:13:14 -05:00
Dmitry Sandalov
5d8de5fde2
Allow user to subscribe to playlist (#17) 2020-05-17 14:28:00 +03:00
Omar Roth
2ebfaf76f2
Refactor continuation token handling 2019-10-27 13:50:42 -04: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
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
059f50dad4
Add 'playlistThumbnail' to playlist objects 2019-08-21 19:08:11 -05:00
Omar Roth
f18d8229c0
Refactor continuation protocol buffers 2019-07-20 20:18:08 -05:00
Omar Roth
b43e9ed7e7
Refactor 'description_html' 2019-06-08 15:08:27 -05:00
Omar Roth
12b2ab5da8
Add 'to_json' into respective structs 2019-06-08 13:31:41 -05:00
Omar Roth
2febc268f7
Fix warnings in Crystal 0.29 2019-06-07 21:13:50 -05:00
Omar Roth
8c944815bc
Minor refactor 2019-06-07 21:13:50 -05:00
Omar Roth
1a9360ca75
Minor formatting changes 2019-05-01 20:03:39 -05:00
Omar Roth
22b9bbe702
Add support for anonymous playlists 2019-05-01 08:03:58 -05:00
Allan Nordhøy
aa10a9d899 Language fixes (#366)
* Language fixes
2019-04-19 11:14:11 -05:00
Omar Roth
80a567bf1e Fix video count in playlist extractor 2019-04-12 16:37:35 -05:00
Omar Roth
bd4f5ebcdf Add option to configure default user preferences 2019-04-03 11:38:41 -05:00
Omar Roth
1b78001201 Use struct for allocations 2019-03-29 16:30:02 -05:00
Omar Roth
a3b767bb13 Add live now indicator to playlists 2019-03-24 09:10:14 -05:00
Omar Roth
07ef48a07a Add length_seconds to playlist on watch page 2019-03-03 10:55:49 -06:00
Omar Roth
27663b10a2 Add minor API fixes 2019-02-15 17:28:54 -06:00
Omar Roth
7a9ef0d664 Add produce_channel_playlists_url 2019-02-09 10:15:14 -06:00
Omar Roth
276662a147 Use IO::Memory for creating continuation tokens 2019-02-04 15:17:10 -06:00
Omar Roth
4ae57cb475 Improve playlist description extractor 2019-01-04 22:48:00 -06:00
Omar Roth
f3c9566687 Fix param ordering for fetch_playlist_videos 2018-12-24 17:47:23 -06:00
Omar Roth
a160c645c9 Add support for translations 2018-12-20 15:32:09 -06:00
Omar Roth
7d47b5d4bd Use named params for SearchChannel 2018-12-15 13:02:53 -06:00
Omar Roth
e8c9641548 Update info extractor 2018-11-10 10:50:09 -06:00
Omar Roth
4e33d3a0b9 Fix index out of bounds for playlist ucid 2018-11-05 09:00:39 -06:00
Omar Roth
4f856dd898 Add support for Crystal 0.27.0 2018-11-04 09:37:12 -06:00
Omar Roth
c87aa8671c Add fix for continuation on playlists smaller than 100 videos 2018-10-10 19:47:51 -05:00
Omar Roth
88430a6fc0 Add playlist playback support 2018-10-07 21:11:33 -05:00