]> git.gir.st - subscriptionfeed.git/log
subscriptionfeed.git
2 years agofurther enhance age-gate bypass
girst [Fri, 30 Jul 2021 08:45:01 +0000 (10:45 +0200)]
further enhance age-gate bypass

only non-embeddable, age-gated videos can't be played now. we try the
embedded version first, since this works on all videos that don't have
embedding disabled by the uploader. only on those, we fetch the /watch
version. if it still doesn't work, we look at the error message to
determine if this was an age-gate or another error.

further values for clientScreen (extracted from player/base.js):
EMBED,WATCH,CHANNEL,LIVE_MONITOR,WATCH_FULL_SCREEN,ADUNIT,UNKNOWN

2 years agobetter, near-complete age-gate bypass
girst [Fri, 30 Jul 2021 08:06:26 +0000 (10:06 +0200)]
better, near-complete age-gate bypass

https://github.com/yt-dlp/yt-dlp/pull/575#issuecomment-888837000

2 years agouse ANDROID instead of TVHTML5 for 2nd order fallback
girst [Thu, 22 Jul 2021 08:57:03 +0000 (10:57 +0200)]
use ANDROID instead of TVHTML5 for 2nd order fallback

still flaky, but at least not a 100% failure rate. as per this comment:
https://github.com/yt-dlp/yt-dlp/issues/319#issuecomment-884610537

2 years agoimplement horizontalListRenderer container and stub out gridChannelRenderer
girst [Fri, 16 Jul 2021 18:51:19 +0000 (20:51 +0200)]
implement horizontalListRenderer container and stub out gridChannelRenderer

2 years agoimplement gridShowRenderer playlist type
girst [Fri, 16 Jul 2021 18:50:42 +0000 (20:50 +0200)]
implement gridShowRenderer playlist type

2 years agoreintroduce TVHTML5 get_video_info
girst [Sat, 3 Jul 2021 08:16:11 +0000 (10:16 +0200)]
reintroduce TVHTML5 get_video_info

some age-gates can't be bypassed by the new api

2 years agofix str-in-None exception, some comments
girst [Sat, 3 Jul 2021 07:54:41 +0000 (09:54 +0200)]
fix str-in-None exception, some comments

2 years agomove to new api again, use new api for age-gate bypass
girst [Thu, 17 Jun 2021 13:06:03 +0000 (15:06 +0200)]
move to new api again, use new api for age-gate bypass

get_video_info?html5=1 is now also being shut down, so we do really need
to move to the new innertube api. :/

2 years agoRevert "Revert "remove useless for loop, implement age-gate bypass""
girst [Thu, 17 Jun 2021 12:22:10 +0000 (14:22 +0200)]
Revert "Revert "remove useless for loop, implement age-gate bypass""

This reverts commit 80ff9d8a9335559ff59ec1bc0f86733bf583ec00.

2 years agoRevert "Revert "fix missing metadata""
girst [Thu, 17 Jun 2021 12:22:08 +0000 (14:22 +0200)]
Revert "Revert "fix missing metadata""

This reverts commit 2115aa02e37b1d966ee33a618bee2b64b884c111.

2 years agoRevert "Revert "replace /get_video_info call""
girst [Thu, 17 Jun 2021 12:22:02 +0000 (14:22 +0200)]
Revert "Revert "replace /get_video_info call""

This reverts commit fa9b2bd0a1b5d34595d3cd0724615f31c7ef0897.

2 years agoRevert "simpler fix for failing get_video_info"
girst [Thu, 17 Jun 2021 12:20:25 +0000 (14:20 +0200)]
Revert "simpler fix for failing get_video_info"

This reverts commit aaac9569d599056f02befe7b4cbc9bf9763b6920.

2 years agos/freenode/libera.chat/g
girst [Mon, 14 Jun 2021 10:57:12 +0000 (12:57 +0200)]
s/freenode/libera.chat/g

2 years agowork around youtube not returning player_response
girst [Mon, 14 Jun 2021 08:10:40 +0000 (10:10 +0200)]
work around youtube not returning player_response

also fixes an exception that occurred when returning 'exhausted' error

2 years agofix rating when absent
girst [Thu, 3 Jun 2021 18:37:13 +0000 (20:37 +0200)]
fix rating when absent

displayed as -25%up / 125%down -- oops :D

2 years agohigh(er) quality 'video unavailable' error page
girst [Sat, 29 May 2021 13:52:45 +0000 (15:52 +0200)]
high(er) quality 'video unavailable' error page

2 years agouse apostrophe as thousands seperator
girst [Sat, 29 May 2021 13:06:54 +0000 (15:06 +0200)]
use apostrophe as thousands seperator

periods and commas could be interpreted as decimals, thin space was too
easily overlooked (if displayed at all). the swiss version seems to be
an acceptable compromise.

2 years agoreplace star rating with thumbs up/down percentage
girst [Sat, 29 May 2021 13:01:52 +0000 (15:01 +0200)]
replace star rating with thumbs up/down percentage

also replace 'blacklisted in' with the shorter 'blocked in' for
aesthetic reasons.

2 years agocache POST requests, explicity not cache some POSTs
girst [Thu, 20 May 2021 15:30:09 +0000 (17:30 +0200)]
cache POST requests, explicity not cache some POSTs

2 years agosimpler fix for failing get_video_info
girst [Thu, 20 May 2021 15:24:21 +0000 (17:24 +0200)]
simpler fix for failing get_video_info

youtube-dl issue that suggested that fix:
https://github.com/ytdl-org/youtube-dl/issues/29086

in the long term, we should probably move to the innertube api, but for
now this feels safer.

youtube-dlp innertube patch:
https://github.com/yt-dlp/yt-dlp/pull/328

2 years agoRevert "replace /get_video_info call"
girst [Thu, 20 May 2021 15:23:31 +0000 (17:23 +0200)]
Revert "replace /get_video_info call"

This reverts commit c19bf7d000590f032275cb744c86f57dddb48dba.

2 years agoRevert "fix missing metadata"
girst [Thu, 20 May 2021 15:23:29 +0000 (17:23 +0200)]
Revert "fix missing metadata"

This reverts commit 890fc200e8b3834f21ddfce18ae458bae5333537.

2 years agoRevert "remove useless for loop, implement age-gate bypass"
girst [Thu, 20 May 2021 15:23:20 +0000 (17:23 +0200)]
Revert "remove useless for loop, implement age-gate bypass"

This reverts commit 5ca7bc097abf30de5f5872cc51e58974a4b2a56a.

2 years agoremove useless for loop, implement age-gate bypass
girst [Thu, 20 May 2021 15:21:27 +0000 (17:21 +0200)]
remove useless for loop, implement age-gate bypass

2 years agofix missing metadata
girst [Thu, 20 May 2021 15:07:32 +0000 (17:07 +0200)]
fix missing metadata

web_embedded_player doesn't return metadata, so viewing watch.j2 failed.

2 years agoreplace /get_video_info call
girst [Thu, 20 May 2021 14:18:29 +0000 (16:18 +0200)]
replace /get_video_info call

this has sporadically returned errors for the last few days, and now
does it all the time. youtube.com/watch and /embed have moved to this
endpoint, with the same key as is used elsewhere in the innertube api.

this probably is the beginning of the end of the seperate /browse
endpoint, as innertube is now required in core.

2 years agoadd ellipsis to truncated video titles
girst [Sat, 1 May 2021 15:46:16 +0000 (17:46 +0200)]
add ellipsis to truncated video titles

all browsers have this implemented with the -webkit- prefix, even
firefox.

3 years agonaively add length badge to reddit videos if available
girst [Sat, 27 Mar 2021 20:34:15 +0000 (21:34 +0100)]
naively add length badge to reddit videos if available

e.g. /r/mealtimevideos suffixes video titles with '[mm:ss]'. this patch
makes no attempt at validating or cleaning up the returned string.

matching is so lax, it sometimes matches production year e.g. '(2021)'.

note that the string is also not escaped; but no unsafe chars (<&'")
are matched in the regex. I'm sure it'll bite me somewhere in the
future.

3 years agodon't load livestreams through proxy for osx(?) devices
girst [Sat, 20 Mar 2021 20:26:58 +0000 (21:26 +0100)]
don't load livestreams through proxy for osx(?) devices

some browsers reporting as osx will request the hls_manifest way too
often, causing strain on the server. however, it just so happens that
osx supports native hls playback, so we can just have them talk to
google's servers directly.

this commit also introduces EXT-X-ENDLIST to */hls_variant/*, so it
only gets requested once.

3 years ago[DATABASE CHANGE: Migration below] make login tokens revocable
girst [Thu, 18 Mar 2021 21:49:11 +0000 (22:49 +0100)]
[DATABASE CHANGE: Migration below] make login tokens revocable

Note that without the migration, nothing except magic-token-login will
break.

Migration:
    INSERT INTO user_tokens SELECT id, token FROM users;

3 years agofix cipher extraction
girst [Sat, 13 Mar 2021 21:33:45 +0000 (22:33 +0100)]
fix cipher extraction

was probably broken for a while :|

new element to extract looks like this:
<script src="/s/player/d29f3109/player_ias.vflset/en_US/base.js" nonce="Cw+Vevjw67B1RSjJHbh/fw">

3 years agoexclude /static files from anticsrf
girst [Sat, 13 Mar 2021 10:43:45 +0000 (11:43 +0100)]
exclude /static files from anticsrf

3 years agoadd info flash when (un)pinning/(un)subscribing/etc. with undo
girst [Wed, 10 Mar 2021 15:07:03 +0000 (16:07 +0100)]
add info flash when (un)pinning/(un)subscribing/etc. with undo

makes it ovious what happened and allows undoing fat-fingered actions.

3 years agofix port80 auto-restart
girst [Wed, 10 Mar 2021 14:23:15 +0000 (15:23 +0100)]
fix port80 auto-restart

3 years agodisplay innertube error to user
girst [Tue, 9 Mar 2021 21:35:21 +0000 (22:35 +0100)]
display innertube error to user

example: /channel/UCpExuV8qJMfCaSQNL1YG6bQ/

refactored prepare_channel while i was at it to use |G().

3 years agoremove hls test route
girst [Tue, 9 Mar 2021 19:52:23 +0000 (20:52 +0100)]
remove hls test route

3 years agoadd a in-tree copy of hls.js, update licensing section in readme
girst [Tue, 9 Mar 2021 19:39:00 +0000 (20:39 +0100)]
add a in-tree copy of hls.js, update licensing section in readme

3 years agoremove implemented TODOs
girst [Tue, 9 Mar 2021 19:30:35 +0000 (20:30 +0100)]
remove implemented TODOs

re. hls/cors in browser: https://bugzil.la/1263150#c5

3 years agoenable hls proxying, simplify /api/hls_* munging, format code
girst [Tue, 9 Mar 2021 18:43:05 +0000 (19:43 +0100)]
enable hls proxying, simplify /api/hls_* munging, format code

3 years agoworking HLS proxy (for livestreams)
girst [Sun, 3 Jan 2021 14:47:37 +0000 (15:47 +0100)]
working HLS proxy (for livestreams)

3 years agofix flask_logger()
girst [Tue, 9 Mar 2021 15:13:29 +0000 (16:13 +0100)]
fix flask_logger()

3 years agoadd note about api key
girst [Tue, 9 Mar 2021 15:11:35 +0000 (16:11 +0100)]
add note about api key

3 years agotakes some shortcuts with captcha busting
girst [Fri, 5 Mar 2021 20:32:50 +0000 (21:32 +0100)]
takes some shortcuts with captcha busting

3 years agointegrate anticaptcha into common and clean it up a bit
girst [Fri, 5 Mar 2021 19:08:13 +0000 (20:08 +0100)]
integrate anticaptcha into common and clean it up a bit

doesn't make sense as a seperate blueprint; can be disabled in the
config.

3 years ago[WARNING: CONFIG CHANGE] reorganize webhooks config
girst [Fri, 5 Mar 2021 18:20:15 +0000 (19:20 +0100)]
[WARNING: CONFIG CHANGE] reorganize webhooks config

3 years agoworking prototype for anticaptcha
girst [Fri, 5 Mar 2021 17:39:26 +0000 (18:39 +0100)]
working prototype for anticaptcha

needs heavy cleanup!

3 years agomove anticsrf out of __init__, provide decorator for opting out
girst [Fri, 5 Mar 2021 15:47:56 +0000 (16:47 +0100)]
move anticsrf out of __init__, provide decorator for opting out

this also fixes running the webhooks blueprint on the same flask
instance as the frontend, which couldn't have worked before this. oops!

3 years agoswitch browse endpoint from browse_ajax to youtubei/v1/browse
girst [Wed, 3 Mar 2021 19:46:10 +0000 (20:46 +0100)]
switch browse endpoint from browse_ajax to youtubei/v1/browse

apparently, https://youtubei.googleapis.com/youtubei/v1/browse is the same endpoint.
see also:
https://github.com/TeamNewPipe/NewPipeExtractor/issues/566
https://github.com/iv-org/invidious/issues/1838
https://github.com/ytdl-org/youtube-dl/issues/28289

3 years agoallow trailing slash on /r/<subreddit>
girst [Thu, 21 Jan 2021 07:11:57 +0000 (08:11 +0100)]
allow trailing slash on /r/<subreddit>

3 years agosupport /embed/videoseries
girst [Wed, 13 Jan 2021 12:03:07 +0000 (13:03 +0100)]
support /embed/videoseries

3 years agoRestructure readme
girst [Sun, 3 Jan 2021 17:20:25 +0000 (18:20 +0100)]
Restructure readme

3 years agofix subreddit manager's button styling
girst [Sun, 3 Jan 2021 16:35:26 +0000 (17:35 +0100)]
fix subreddit manager's button styling

3 years agoremove obsolete invidious plugin
girst [Sun, 3 Jan 2021 16:28:02 +0000 (17:28 +0100)]
remove obsolete invidious plugin

3 years agoclean up playlist error handling
girst [Sun, 3 Jan 2021 16:13:31 +0000 (17:13 +0100)]
clean up playlist error handling

support fallback for mix playlists (RD<video_id>, e.g. RDFiThjLcB1Qk)

3 years agosupport /embed/videoseries urls
girst [Sun, 3 Jan 2021 14:50:15 +0000 (15:50 +0100)]
support /embed/videoseries urls

/embed/videoseries?list=PLZHQObOWTQDNPOjrT6KVlfJuKtYTftqH6&autoplay=0

3 years agoupdate channel sort ui
girst [Sat, 12 Dec 2020 19:44:10 +0000 (20:44 +0100)]
update channel sort ui

remove obsolete entries, can't sort search, reword.

3 years agofix channel playlists tab
girst [Sat, 12 Dec 2020 19:32:50 +0000 (20:32 +0100)]
fix channel playlists tab

now uses v3 formatted protobuf.

3 years agoadd youtube-nocookie link
girst [Wed, 9 Dec 2020 17:58:19 +0000 (18:58 +0100)]
add youtube-nocookie link

useful for livestreams, which i'm still procrastinating implementing

3 years agoexpose feature and extra filters
girst [Sun, 6 Dec 2020 18:14:17 +0000 (19:14 +0100)]
expose feature and extra filters

3 years agoadd comment explaning 0:00 length subscription videos
girst [Sun, 6 Dec 2020 17:56:54 +0000 (18:56 +0100)]
add comment explaning 0:00 length subscription videos

3 years agofix canonicalisation of legacy usernames
girst [Sun, 6 Dec 2020 17:46:19 +0000 (18:46 +0100)]
fix canonicalisation of legacy usernames

3 years agoadd browse/ override for /<something> endpoint
girst [Mon, 30 Nov 2020 16:19:54 +0000 (17:19 +0100)]
add browse/ override for /<something> endpoint

doing this as an override, so the /youtube module doesn't gain a
dependency on this endpoint.

3 years agofollowup-fix for playlists in feed
girst [Mon, 30 Nov 2020 15:42:24 +0000 (16:42 +0100)]
followup-fix for playlists in feed

this caused videos that are in any playlist to only be displayed if the
user subscribed via playlists. fixed.

3 years agoshow playlist subscriptions in /feed/subscriptions
girst [Mon, 30 Nov 2020 15:39:08 +0000 (16:39 +0100)]
show playlist subscriptions in /feed/subscriptions

"slight" oversight. :/

3 years agoslightly better /<something> error message
girst [Sun, 29 Nov 2020 02:28:21 +0000 (03:28 +0100)]
slightly better /<something> error message

3 years agofix channel search
girst [Sun, 29 Nov 2020 02:24:13 +0000 (03:24 +0100)]
fix channel search

3 years agomake sure header+<video> fit above the fold
girst [Tue, 17 Nov 2020 13:50:47 +0000 (14:50 +0100)]
make sure header+<video> fit above the fold

3 years agodocument python version requirements
girst [Sat, 31 Oct 2020 12:24:03 +0000 (13:24 +0100)]
document python version requirements

3 years agoclean up broken-youtube-response handling
girst [Mon, 26 Oct 2020 22:04:48 +0000 (23:04 +0100)]
clean up broken-youtube-response handling

3 years agolink to sponsor.ajay.app; simplify js
girst [Mon, 26 Oct 2020 21:53:27 +0000 (22:53 +0100)]
link to sponsor.ajay.app; simplify js

now shows 0 segments when sponsorblock hasn't found the video id

3 years agofix search pagination
girst [Mon, 26 Oct 2020 21:49:19 +0000 (22:49 +0100)]
fix search pagination

old ?q= stopped displaying pages >= 2
protobuf field9 reversed by youtube-local

3 years agopolish some stuff
girst [Sat, 24 Oct 2020 14:14:42 +0000 (16:14 +0200)]
polish some stuff

3 years agofix /<something> 500 errors
girst [Thu, 22 Oct 2020 18:01:53 +0000 (20:01 +0200)]
fix /<something> 500 errors

m(

3 years agofurther improve <something> detector
girst [Tue, 20 Oct 2020 17:20:33 +0000 (19:20 +0200)]
further improve <something> detector

3 years agobetter /<something> algorithm
girst [Sat, 17 Oct 2020 23:13:41 +0000 (01:13 +0200)]
better /<something> algorithm

note: using strict_slashes=False instread of two route decorators to
avoid useless redirect.

3 years agoimplement a tiny port80-to-443 redirector
girst [Sat, 10 Oct 2020 15:59:54 +0000 (17:59 +0200)]
implement a tiny port80-to-443 redirector

3 years agofix reddit feed if 0 subscriptions
girst [Fri, 9 Oct 2020 13:09:47 +0000 (15:09 +0200)]
fix reddit feed if 0 subscriptions

3 years agoexclude search filters from new details style
girst [Thu, 8 Oct 2020 14:34:35 +0000 (16:34 +0200)]
exclude search filters from new details style

3 years agobetter <details> css
girst [Thu, 8 Oct 2020 14:22:11 +0000 (16:22 +0200)]
better <details> css

3 years agoupdate TODOs
girst [Sun, 4 Oct 2020 14:07:16 +0000 (16:07 +0200)]
update TODOs

3 years agoimplement pagination of channel/ucid/playlists (VERY HACKY)
girst [Sun, 4 Oct 2020 13:35:17 +0000 (15:35 +0200)]
implement pagination of channel/ucid/playlists (VERY HACKY)

i'm less ashamed of this code as i should be.

3 years agofix JSONDecodeError on search for real this time
girst [Sun, 4 Oct 2020 13:30:57 +0000 (15:30 +0200)]
fix JSONDecodeError on search for real this time

example of a broken response: https://paste.ubuntu.com/p/NbpSMWKQcX/

3 years agoprevent iter_content from raising ChunkedEncodingError when yt aborts connection
girst [Fri, 2 Oct 2020 09:52:39 +0000 (11:52 +0200)]
prevent iter_content from raising ChunkedEncodingError when yt aborts connection

3 years agoadd &t= to redirect-to-watch
girst [Mon, 28 Sep 2020 22:13:32 +0000 (00:13 +0200)]
add &t= to redirect-to-watch

3 years agosupport "?t=1h2m3s" and "?t=123s" style start-offsets
girst [Fri, 25 Sep 2020 14:41:08 +0000 (16:41 +0200)]
support "?t=1h2m3s" and "?t=123s" style start-offsets

documentation on media fragments:
https://www.w3.org/TR/2012/REC-media-frags-20120925/

3 years agoremove more button from xmlfeeds
girst [Thu, 24 Sep 2020 18:11:09 +0000 (20:11 +0200)]
remove more button from xmlfeeds

makes it necessary to remove the fallback from invidious (untested)

3 years agoremove v1 usage from /channels/
girst [Thu, 24 Sep 2020 16:49:51 +0000 (18:49 +0200)]
remove v1 usage from /channels/

doesn't appear to be used any more after a small and informal survey on

3 years agoadd sponsor segments debug info
girst [Thu, 24 Sep 2020 17:47:18 +0000 (19:47 +0200)]
add sponsor segments debug info

3 years agomake title in video cards selectable
girst [Wed, 23 Sep 2020 21:02:51 +0000 (23:02 +0200)]
make title in video cards selectable

3 years agofix exception on bad search results
girst [Wed, 23 Sep 2020 20:48:03 +0000 (22:48 +0200)]
fix exception on bad search results

r.json() can raise 'json.decoder.JSONDecodeError: Expecting value: line
1 column 1 (char 0)' when the response is an empty string

3 years agoremove superfluous title text
girst [Tue, 22 Sep 2020 12:11:22 +0000 (14:11 +0200)]
remove superfluous title text

3 years agovideo age: use 'm' for months, 'min' for minutes
girst [Mon, 21 Sep 2020 09:30:33 +0000 (11:30 +0200)]
video age: use 'm' for months, 'min' for minutes

3 years agochange pinned style
girst [Sat, 19 Sep 2020 23:15:18 +0000 (01:15 +0200)]
change pinned style

fully css defined; no more html boilerplate. also, the <hr> breaking
the grid was ugly.

3 years agoadd display flags to /c/*; dedup flag retrieval code
girst [Sat, 19 Sep 2020 23:11:04 +0000 (01:11 +0200)]
add display flags to /c/*; dedup flag retrieval code

3 years agoremove 'return "foo", 400' style error responses (browse/)
girst [Sat, 19 Sep 2020 18:54:15 +0000 (20:54 +0200)]
remove 'return "foo", 400' style error responses (browse/)

3 years agoexpose hls/dash streams to template
girst [Sat, 19 Sep 2020 18:12:58 +0000 (20:12 +0200)]
expose hls/dash streams to template

note that this can't be used, since no browsers implement native
hls/dash, and any js-polyfills will trigger cors-errors.

3 years ago(re)add subscribe button to channel page
girst [Sat, 19 Sep 2020 18:11:04 +0000 (20:11 +0200)]
(re)add subscribe button to channel page

3 years agoredirect youtube.com/<username>, fix /c/ trailing slash
girst [Sat, 19 Sep 2020 18:05:22 +0000 (20:05 +0200)]
redirect youtube.com/<username>, fix /c/ trailing slash

3 years agorename 'dangerous' blueprint, as its safe
girst [Sat, 19 Sep 2020 15:06:04 +0000 (17:06 +0200)]
rename 'dangerous' blueprint, as its safe

has been running long enough in production now that I'm relatively
confident that it doesn't get blocked by Big Goog' (*knocks on wood*).

3 years agoclean up dead protobuf structures
girst [Sat, 19 Sep 2020 14:57:06 +0000 (16:57 +0200)]
clean up dead protobuf structures

Imprint / Impressum