]>
git.gir.st - subscriptionfeed.git/log
girst [Fri, 15 Oct 2021 03:39:49 +0000 (05:39 +0200)]
commit database change to setup.sql
girst [Fri, 15 Oct 2021 03:23:16 +0000 (05:23 +0200)]
makefile: automatically generate hmac secrets for config.ini
girst [Fri, 15 Oct 2021 02:52:50 +0000 (04:52 +0200)]
describe what each module does in advance install section
girst [Fri, 15 Oct 2021 02:42:48 +0000 (04:42 +0200)]
enable proxy by default
girst [Fri, 15 Oct 2021 02:37:31 +0000 (04:37 +0200)]
listen on port 8080 by default to encourage reverse-proxying
girst [Fri, 15 Oct 2021 02:30:07 +0000 (04:30 +0200)]
update installation instructions
girst [Fri, 15 Oct 2021 01:39:41 +0000 (03:39 +0200)]
provide a semi-automatic install mechanism
girst [Fri, 15 Oct 2021 01:09:02 +0000 (03:09 +0200)]
use systemd timers instead of cronjobs
girst [Fri, 15 Oct 2021 01:07:50 +0000 (03:07 +0200)]
remove webhooks gunicorn
this is too much complexity for a default install. running webhooks
externally will still be supported (as that's what s.gir.st will
continue to do).
girst [Fri, 15 Oct 2021 01:05:19 +0000 (03:05 +0200)]
allow running setup.sql/guest.sql multiple times
girst [Fri, 15 Oct 2021 02:13:52 +0000 (04:13 +0200)]
[DATABASE CHANGE: Migration below] implement on-line user creation
ALTER TABLE users ADD COLUMN is_admin BOOLEAN DEFAULT 0;
UPDATE users SET is_admin = 1 WHERE name = "admin"; -- replace with your username
girst [Thu, 14 Oct 2021 21:39:44 +0000 (23:39 +0200)]
remove now unused cipher fetching code
now independent of jwz's youtubedown :^)
girst [Thu, 14 Oct 2021 21:35:25 +0000 (23:35 +0200)]
switch to ANDROID player API
provideds unthrottled and even unscrambled streams. we do have to give
up some metadata: category, availableCountries, infocards, published.
girst [Sat, 18 Sep 2021 19:01:20 +0000 (21:01 +0200)]
redirect thumnail urls
requests to these urls are probably caused by invidious-redirect
extensions.
girst [Sat, 4 Sep 2021 09:50:00 +0000 (11:50 +0200)]
take full youtube.com urls as path, and redirect accordingly
this version only handles redirections to /watch for now.
girst [Mon, 30 Aug 2021 05:40:47 +0000 (07:40 +0200)]
add method to allow downloading though yt-dlp
https://github.com/iv-org/invidious/pull/1730
https://github.com/yt-dlp/yt-dlp/commit/
df0c81513e0bb37986d00c532a5ad8cef31a24ea
girst [Tue, 17 Aug 2021 13:43:29 +0000 (15:43 +0200)]
split stream_map.adaptive into *_video and *_audio
girst [Tue, 17 Aug 2021 12:48:40 +0000 (14:48 +0200)]
fix try_int() to actually return something
urgh.
girst [Fri, 13 Aug 2021 18:14:56 +0000 (20:14 +0200)]
avoid contacting innertube api when video id is obviously wrong
girst [Fri, 13 Aug 2021 18:02:08 +0000 (20:02 +0200)]
avoid int(request.args.get('page'))
this throws a ValueError when ?page=abc. the replacement returns a
default value, or None instead.
girst [Fri, 13 Aug 2021 17:41:01 +0000 (19:41 +0200)]
fix ?show=audio for unplayable videos
they might have metadata, but can still be UNPLAYABLE.
girst [Fri, 13 Aug 2021 17:27:47 +0000 (19:27 +0200)]
handle the case when we can't connect to googlevideo
note: we should also verify the ?mn param's contents
girst [Fri, 13 Aug 2021 17:20:19 +0000 (19:20 +0200)]
fix url extraction of non-embeddable livestreams
test id: 31NX4zpsKuI
girst [Fri, 13 Aug 2021 15:12:13 +0000 (17:12 +0200)]
allow /embed/ urls with final /
girst [Thu, 5 Aug 2021 16:25:15 +0000 (18:25 +0200)]
handle geolocked videos not available in the server's region
example video: cjPWJycHImg
girst [Thu, 5 Aug 2021 15:12:14 +0000 (17:12 +0200)]
make channel page sorting link(-ish) instead of a select box
girst [Fri, 30 Jul 2021 09:34:32 +0000 (11:34 +0200)]
use same embedder-url as yt-dlp
https://github.com/yt-dlp/yt-dlp/commit/
5dcbfdc3cdcfc1f8d70515197d1f6dfcbb28251a
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
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
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
girst [Fri, 16 Jul 2021 18:51:19 +0000 (20:51 +0200)]
implement horizontalListRenderer container and stub out gridChannelRenderer
girst [Fri, 16 Jul 2021 18:50:42 +0000 (20:50 +0200)]
implement gridShowRenderer playlist type
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
girst [Sat, 3 Jul 2021 07:54:41 +0000 (09:54 +0200)]
fix str-in-None exception, some comments
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. :/
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 .
girst [Thu, 17 Jun 2021 12:22:08 +0000 (14:22 +0200)]
Revert "Revert "fix missing metadata""
This reverts commit
2115aa02e37b1d966ee33a618bee2b64b884c111 .
girst [Thu, 17 Jun 2021 12:22:02 +0000 (14:22 +0200)]
Revert "Revert "replace /get_video_info call""
This reverts commit
fa9b2bd0a1b5d34595d3cd0724615f31c7ef0897 .
girst [Thu, 17 Jun 2021 12:20:25 +0000 (14:20 +0200)]
Revert "simpler fix for failing get_video_info"
This reverts commit
aaac9569d599056f02befe7b4cbc9bf9763b6920 .
girst [Mon, 14 Jun 2021 10:57:12 +0000 (12:57 +0200)]
s/freenode/libera.chat/g
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
girst [Thu, 3 Jun 2021 18:37:13 +0000 (20:37 +0200)]
fix rating when absent
displayed as -25%up / 125%down -- oops :D
girst [Sat, 29 May 2021 13:52:45 +0000 (15:52 +0200)]
high(er) quality 'video unavailable' error page
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.
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.
girst [Thu, 20 May 2021 15:30:09 +0000 (17:30 +0200)]
cache POST requests, explicity not cache some POSTs
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
girst [Thu, 20 May 2021 15:23:31 +0000 (17:23 +0200)]
Revert "replace /get_video_info call"
This reverts commit
c19bf7d000590f032275cb744c86f57dddb48dba .
girst [Thu, 20 May 2021 15:23:29 +0000 (17:23 +0200)]
Revert "fix missing metadata"
This reverts commit
890fc200e8b3834f21ddfce18ae458bae5333537 .
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 .
girst [Thu, 20 May 2021 15:21:27 +0000 (17:21 +0200)]
remove useless for loop, implement age-gate bypass
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.
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.
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.
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.
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.
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;
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">
girst [Sat, 13 Mar 2021 10:43:45 +0000 (11:43 +0100)]
exclude /static files from anticsrf
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.
girst [Wed, 10 Mar 2021 14:23:15 +0000 (15:23 +0100)]
fix port80 auto-restart
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().
girst [Tue, 9 Mar 2021 19:52:23 +0000 (20:52 +0100)]
remove hls test route
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
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
girst [Tue, 9 Mar 2021 18:43:05 +0000 (19:43 +0100)]
enable hls proxying, simplify /api/hls_* munging, format code
girst [Sun, 3 Jan 2021 14:47:37 +0000 (15:47 +0100)]
working HLS proxy (for livestreams)
girst [Tue, 9 Mar 2021 15:13:29 +0000 (16:13 +0100)]
fix flask_logger()
girst [Tue, 9 Mar 2021 15:11:35 +0000 (16:11 +0100)]
add note about api key
girst [Fri, 5 Mar 2021 20:32:50 +0000 (21:32 +0100)]
takes some shortcuts with captcha busting
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.
girst [Fri, 5 Mar 2021 18:20:15 +0000 (19:20 +0100)]
[WARNING: CONFIG CHANGE] reorganize webhooks config
girst [Fri, 5 Mar 2021 17:39:26 +0000 (18:39 +0100)]
working prototype for anticaptcha
needs heavy cleanup!
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!
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
girst [Thu, 21 Jan 2021 07:11:57 +0000 (08:11 +0100)]
allow trailing slash on /r/<subreddit>
girst [Wed, 13 Jan 2021 12:03:07 +0000 (13:03 +0100)]
support /embed/videoseries
girst [Sun, 3 Jan 2021 17:20:25 +0000 (18:20 +0100)]
Restructure readme
girst [Sun, 3 Jan 2021 16:35:26 +0000 (17:35 +0100)]
fix subreddit manager's button styling
girst [Sun, 3 Jan 2021 16:28:02 +0000 (17:28 +0100)]
remove obsolete invidious plugin
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)
girst [Sun, 3 Jan 2021 14:50:15 +0000 (15:50 +0100)]
support /embed/videoseries urls
/embed/videoseries?list=PLZHQObOWTQDNPOjrT6KVlfJuKtYTftqH6&autoplay=0
girst [Sat, 12 Dec 2020 19:44:10 +0000 (20:44 +0100)]
update channel sort ui
remove obsolete entries, can't sort search, reword.
girst [Sat, 12 Dec 2020 19:32:50 +0000 (20:32 +0100)]
fix channel playlists tab
now uses v3 formatted protobuf.
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
girst [Sun, 6 Dec 2020 18:14:17 +0000 (19:14 +0100)]
expose feature and extra filters
girst [Sun, 6 Dec 2020 17:56:54 +0000 (18:56 +0100)]
add comment explaning 0:00 length subscription videos
girst [Sun, 6 Dec 2020 17:46:19 +0000 (18:46 +0100)]
fix canonicalisation of legacy usernames
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.
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.
girst [Mon, 30 Nov 2020 15:39:08 +0000 (16:39 +0100)]
show playlist subscriptions in /feed/subscriptions
"slight" oversight. :/
girst [Sun, 29 Nov 2020 02:28:21 +0000 (03:28 +0100)]
slightly better /<something> error message
girst [Sun, 29 Nov 2020 02:24:13 +0000 (03:24 +0100)]
fix channel search
girst [Tue, 17 Nov 2020 13:50:47 +0000 (14:50 +0100)]
make sure header+<video> fit above the fold
girst [Sat, 31 Oct 2020 12:24:03 +0000 (13:24 +0100)]
document python version requirements
girst [Mon, 26 Oct 2020 22:04:48 +0000 (23:04 +0100)]
clean up broken-youtube-response handling
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
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
girst [Sat, 24 Oct 2020 14:14:42 +0000 (16:14 +0200)]
polish some stuff
girst [Thu, 22 Oct 2020 18:01:53 +0000 (20:01 +0200)]
fix /<something> 500 errors
m(