Commit Graph

99 Commits

Author SHA1 Message Date
Émilien Devos
c201ea53ba Add 404 status code on all possible endpoints 2022-05-27 14:06:38 +00:00
Dimitris Apostolou
7e4690e43c
Fix typos 2022-02-07 14:57:14 +02:00
Samantaz Fox
971b6ec96f
Fix 'Lint/UselessAssign' warnings reported by ameba 2022-01-28 02:19:53 +01:00
Samantaz Fox
12b818a83c
Fix more 'Lint/ShadowingOuterLocalVar' warnings reported by ameba 2022-01-28 02:19:53 +01:00
Samantaz Fox
fa99c9aa85
Use '.dig?()' in playlist parsing 2022-01-28 02:19:53 +01:00
Samantaz Fox
5e3c9cf290
Remove useless arguments from playlist-related functions 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
444b1c99d0
Show unavailable videos in playlists 2022-01-05 03:32:54 +01:00
Samantaz Fox
3b1a286290
Use dig?() for playlist title 2022-01-05 03:32:54 +01:00
Samantaz Fox
6c8a5a1e7f
Fix leading spaces being collapsed in descriptions
Fixes #1954
2022-01-05 03:32:54 +01:00
Samantaz Fox
40ed4a0506
Clean useless database arguments (3/5) 2022-01-04 17:15:43 +01:00
Samantaz Fox
85cf27119c
Move DB queries related to playlists in a separate module (3/3) 2022-01-04 17:15:43 +01:00
Samantaz Fox
46d08237c6
Move DB queries related to playlists in a separate module (2/3) 2022-01-04 17:13:52 +01:00
Samantaz Fox
3deafe9f8d
Move DB queries related to playlists in a separate module (1/3) 2022-01-04 17:13:51 +01:00
Samantaz Fox
6cf0ff6b49
Remove useless auto_generated param from PlaylistVideo#to_xml
given the variables available in this function's context, 'author' and 'ucid'
provide the same data 'self.author' and 'self.ucid', respectively.

Given that fact, the variable `auto_generated` has no impact on the logic of
this function, and hence can be safely removed. this greatly simplifies the
code and makes it perfectly compatible with crystal's calling convention for
'#to_xml' methods.
2021-10-29 16:26:42 +02:00
Samantaz Fox
86f75758a7
Fix 'to_json' in struct PlaylistVideo 2021-10-29 16:26:42 +02:00
syeopite
17e481c107
Reduce block verbosity further 2021-10-25 01:14:14 -07:00
syeopite
20cb751ff6
Fix Lint/UnusedArgument issues 2021-10-25 01:12:26 -07:00
syeopite
585e4617e8
Lazy load (some) images 2021-10-14 08:18:44 -07:00
diogo
a1d6411f1f
propagate video_id field on getting playlists 2021-10-11 23:51:07 +02:00
diogo
c4c8a10507
rename from continuation to video_id on get_playlist_videos 2021-10-11 23:49:08 +02:00
diogo
ee94ccdeb0
update to new YoutubeAPI 2021-10-11 23:49:08 +02:00
diogo
e3df9f9ead
use dig for getting the video index 2021-10-11 23:49:08 +02:00
diogo
62dc629337
linting 2021-10-11 23:49:08 +02:00
diogo
dccdf38ce7
increase the max videos in a playlist 2021-10-11 23:49:07 +02:00
diogo
84124b837d
use v1/next instead of searching for the continuation index 2021-10-11 23:49:07 +02:00
diogo
6176da3cbb
linting 2021-10-11 23:46:23 +02:00
diogo
24bc3e2704
no need to normalize the offset 2021-10-11 23:45:22 +02:00
diogo
0a9e19646a
pass the api/v1/playlists with videos before the offset 2021-10-11 23:43:41 +02:00
diogo
65e45c4079
linting 2021-10-11 23:30:49 +02:00
diogo
440105976f
fix cases when high offset video from playlist has no offset in url 2021-10-11 23:30:49 +02:00
diogo
7eba7fbcc7
add index to playlist item 2021-10-11 23:30:49 +02:00
diogo
d9bfb3d305
playlist starts at the offset 2021-10-11 23:30:49 +02:00
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