Commit Graph

851 Commits

Author SHA1 Message Date
Jesús
ff8531cb84 [licenses]: fix URL license Expat 2021-05-22 17:55:24 -05:00
Jesús
b3abec81e1 Add plyr as main player
Also plyr supports switch quality
2021-05-22 17:05:39 -05:00
James Taylor
e44647f106 Fix comment like extraction due to Youtube changes
Variable name changed from likeCount to voteCount

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-05-17 22:08:09 -05:00
James Taylor
b01a16d45b Fix vids added to playlist from watch page not having author url
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-05-17 22:07:10 -05:00
James Taylor
f0cd170767 Fix videos added to playlist from channel page not having author
Information from additional_info was being overrided with None.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-05-17 22:02:03 -05:00
Jesús
37f7a4c1cf [.drone.yml]: inprove syntax 2021-05-09 20:54:08 -05:00
Jesús
462c0ef323 Add drone CI/CD support 2021-05-08 14:50:23 -05:00
Jesús
b5a12e108d [README.md]: update 2021-05-06 15:33:02 -05:00
James Taylor
0ee448c186 Channel about: Add http:// to links without it
So that the link is not interpretted as a relative link

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-05-06 15:21:36 -05:00
Jesús
7feea3f839 Add subscriptions export
plus design by heckyel
2021-05-06 15:18:19 -05:00
James Taylor
f9d1bfe05f Add instructions for importing subscriptions to README
Closes #63

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-05-06 14:35:27 -05:00
James Taylor
53b274e35f Save uploader id in local playlists
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-05-06 14:31:19 -05:00
James Taylor
0ee1aabc74 Add local playlist export option
Temporary workaround for #61

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-05-06 14:24:00 -05:00
Jesús
ccb3392e1d Fix gevent dependencie version 2021-04-13 22:50:15 -05:00
James Taylor
d88a69d811 Add tooltip to video speed box to improve discoverability
See #60

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-04-13 21:08:08 -05:00
James Taylor
585d724564 Add hidden setting to allow foreign post requests
See #55

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-15 22:25:08 -05:00
James Taylor
e549b5f67c Channel: Allow going to next pages of playlists page
Uses previous and next buttons. Now can view more than just
first page of playlists page

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-15 22:22:15 -05:00
James Taylor
b2c1066734 proto_debug: improve recursive_pb function
1) Fix bug where it would decode as base64 but not indicate
that in the structure
2) Use a list of patterns of youtube object ids so it will not
base64 decode those
3) Detect the base64 type. If not possible, outputs base64?
4) Remove unnecessary try-except clause
5) Remove unused filt parameter

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-15 22:17:06 -05:00
James Taylor
4013b81cb6 Fix regression: playlists not showing up besides videos
Forgot to change & to ? in previous commit changing to embed page

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-15 22:05:17 -05:00
James Taylor
1170403953 Fix channel search
Update the search from the browse_ajax api to the new one
Fixes #57

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-15 22:04:09 -05:00
James Taylor
1532a48ef4 Fix regression: Channels not sorting by oldest/popular
get_channel_first_page was mistakenly used when the sorting
or view is different. Must use channel_tab which generates
the necessary ctokens.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-03 10:40:55 -05:00
James Taylor
2df4238924 Use new channel api endpoint now that browse_ajax is disabled
Fixes channel pages > 1

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-03 10:40:02 -05:00
James Taylor
c45f60d3f5 util.py: Encode data using utf-8, not ascii
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-03 10:36:32 -05:00
James Taylor
60a6ddc5ef util.py: Fix data not being passed in requests
Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-03 10:34:54 -05:00
James Taylor
f7ed8159cd Channel: use general pbj=1 endpoint to get first page of videos
YouTube disabled the browse_ajax endpoint. Quick fix for first
channel page. In general, this will be more robust against api
endpoint changes. As YouTube continues to change api endpoints,
at least the subscriptions and first page will no longer break.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-03-03 10:33:45 -05:00
Jesús
2d9aca4b8b General theme: fix footer center 2021-02-27 10:36:00 -05:00
Jesús
65300003cd Fix data comments 00ef1c8627 2021-02-26 13:16:01 -05:00
Jesús
4a5b336deb minor fix 2021-02-26 12:15:02 -05:00
James Taylor
1ec02199ea Update max_replies when there's a continuation for the replies
Because of the new ctoken methodology for getting comment replies,
the more comments button automatically works inside the comment
reply thread when there are more replies than the limit (250).

This commit also updates the max_replies for that ctoken so the
next 250 replies will be retrieved for the more comments ctoken.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-02-26 12:11:32 -05:00
James Taylor
3a73953e6c proto_debug.py: Use new implementations from proto
And change base64u to base64p to match (u too easily confused
with "unpadded")

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-02-26 12:05:58 -05:00
James Taylor
889dabb112 proto.py: Fix base64 encoding in make_protobuf
First issue: Cannot check for presence of list in dictionary
because it is not hashable.
Second issue: Wrong function name was being used (make_proto
instead of _make_protobuf)

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-02-26 11:50:03 -05:00
James Taylor
d604a007a9 Debugging response saving: save page even if it's an HTTP error
This will help debug new types of exit node blockage or other
errors.

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-02-26 11:48:38 -05:00
James Taylor
07f14343c4 Use mobile embed page to bypass captcha blockage
The aggressive IP-blocking doesn't apply to embed pages

Fixes #47

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-02-26 11:40:38 -05:00
James Taylor
00ef1c8627 Fix comment replies
Comment reply protobuf now requires the channel id of the uploader
of the video. Otherwise the endpoint returns 500.

Instead of making the protobuf ourselves and passing this data
around through query parameters, just use the ctoken provided to us
but modify the max_replies field from 10 to 250.

Fixes #53

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-02-26 11:39:23 -05:00
Jesús
f26c9be85e Fix URL 2021-02-25 14:27:46 -05:00
Jesús
875e1ef986 Change URL repo 2021-02-25 13:08:25 -05:00
Jesús
0c3fddd16d Add badge status CI/CD 2021-02-24 22:50:19 -05:00
Jesús
ec4f7d29e4 Add test dependencies in requirement.txt file 2021-02-24 22:44:03 -05:00
Jesús
e3a009a6bd Revert "Add .build.yml file"
This reverts commit 5b611b515a.
2021-02-24 22:42:09 -05:00
Jesús
ae6bce5edc Add test dependencies in requirement.txt file 2021-02-24 22:40:54 -05:00
Jesús
5b611b515a Add .build.yml file 2021-02-24 22:35:43 -05:00
Jesús
945acf3e60 Add tests/__init__.py file 2021-02-24 22:30:59 -05:00
James Taylor
31fe1dac55 Fix signature decryption due to new base.js minifier rules
YouTube now includes e.g. {"fe": ...} instead of just {fe: ...}
in the javascript object entries in the object holding the
operation definitions.

Fixes #2

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-02-23 17:17:06 -05:00
James Taylor
4a8ba594d1 TorMgr: Change new identity cooldown to 7 seconds instead of 6
Because sometimes a new identity was not being respected

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-02-13 17:36:52 -05:00
James Taylor
1cc0ffcb20 yt_data_ext: support richGrid&richItem sometimes used on search
Some searches have these renderers instead of the usual ones

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-02-13 17:29:05 -05:00
Jesús
dd5876e0c6 fix missing whitespace 2021-01-31 20:13:46 -05:00
Jesús
a47dd66bd0 General theme: reorganize thumbnail background variable 2021-01-26 22:23:59 -05:00
James Taylor
52ca49628f fetch_url: 429: get new identity regardless of page content
New 429 captcha page doesn't have IP. This new page appears to
match the 429 code plus the json of {"redirect": ...} which would
be occasionally received when the pbj json endpoint was used in
the past.

Closes #22

Signed-off-by: Jesús <heckyel@hyperbola.info>
2021-01-13 18:07:00 -05:00
Jesús
8cc721b4ec General theme: improve colors 2021-01-11 21:14:07 -05:00
Jesús
58eea1e0f2 Light theme: improve colors 2021-01-11 19:43:41 -05:00