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>
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>
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>
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>
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>
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>
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>
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>