]>
git.gir.st - subscriptionfeed.git/log
girst [Fri, 7 Aug 2020 19:19:19 +0000 (21:19 +0200)]
fetch length for new subscription videos
in the future, we'll also detect whether it's a livestream
girst [Fri, 7 Aug 2020 16:23:53 +0000 (18:23 +0200)]
implement video badge (for length)
girst [Fri, 7 Aug 2020 15:59:57 +0000 (17:59 +0200)]
more innertube variants
girst [Fri, 7 Aug 2020 15:27:25 +0000 (17:27 +0200)]
support playlist end-of-list
girst [Fri, 7 Aug 2020 15:11:38 +0000 (17:11 +0200)]
add playlist metadata
girst [Fri, 7 Aug 2020 14:54:51 +0000 (16:54 +0200)]
Revert "useless youtube.com cargoculting"
This reverts commit
d3b80d96aec748b19f08e8757ae847ce66b4df68 .
girst [Fri, 7 Aug 2020 14:54:23 +0000 (16:54 +0200)]
useless youtube.com cargoculting
tried to reduce error ajax responses, but has no effect.
girst [Fri, 7 Aug 2020 14:53:32 +0000 (16:53 +0200)]
tone down channel search
girst [Fri, 7 Aug 2020 14:52:48 +0000 (16:52 +0200)]
add /user and /c redirects for dangerous blueprint
girst [Fri, 7 Aug 2020 11:19:35 +0000 (13:19 +0200)]
add /c/<username> route (alias for /user/)
girst [Fri, 7 Aug 2020 11:15:38 +0000 (13:15 +0200)]
implement channel search
girst [Fri, 7 Aug 2020 10:57:04 +0000 (12:57 +0200)]
retry browse_ajax twice on error
girst [Fri, 7 Aug 2020 10:49:29 +0000 (12:49 +0200)]
add has_more, cleanup, test for error-alerts
girst [Thu, 6 Aug 2020 21:02:12 +0000 (23:02 +0200)]
dangerous.channel/playlist: parse extra messages
girst [Thu, 6 Aug 2020 20:59:14 +0000 (22:59 +0200)]
move innertube stuff out of dangerous
girst [Thu, 6 Aug 2020 20:38:33 +0000 (22:38 +0200)]
search results: fix channel without subscriber count, add spelling info
girst [Thu, 6 Aug 2020 20:01:36 +0000 (22:01 +0200)]
implement channel and playlist endpoints using innertube
ZERO testing regarding whether this can get us banned!
girst [Tue, 4 Aug 2020 22:58:59 +0000 (00:58 +0200)]
implement search params
sadly, pure-protobuf is a small 3rd-party dependency :(
girst [Tue, 4 Aug 2020 19:34:34 +0000 (21:34 +0200)]
update welcome message
girst [Tue, 4 Aug 2020 18:01:40 +0000 (20:01 +0200)]
log info/endcard/searchitems errors to file
girst [Tue, 4 Aug 2020 17:40:17 +0000 (19:40 +0200)]
better what-to-bold strategy in base.j2
girst [Tue, 4 Aug 2020 17:16:45 +0000 (19:16 +0200)]
move parse_metadata to youtube blueprint
girst [Tue, 4 Aug 2020 17:07:40 +0000 (19:07 +0200)]
don't show 'None' if not video age
girst [Tue, 4 Aug 2020 17:02:16 +0000 (19:02 +0200)]
reformat innertube, wrapper for parse_*() -> prepare_*()
girst [Tue, 4 Aug 2020 16:06:27 +0000 (18:06 +0200)]
split metadata in essential and extended
extended is only used by /watch, but essential also for
store_video_metadata(). this allows is to move parse_metadata() to
the youtube blueprint.
girst [Tue, 4 Aug 2020 11:20:01 +0000 (13:20 +0200)]
/watch: use largest thumnail for channel cards
girst [Tue, 4 Aug 2020 11:19:41 +0000 (13:19 +0200)]
first draft of non-invidious search (needs cleanup!)
girst [Tue, 4 Aug 2020 11:12:02 +0000 (13:12 +0200)]
move innertube parsing into its own package, add searchresult parser
girst [Tue, 4 Aug 2020 10:45:46 +0000 (12:45 +0200)]
use all muxed formats for reliability
sometimes, a muxed stream is broken (yet still returns 200OK, so can't
easily detect server side). when the browser tries to load the broken
stream and can't play it, it moves on to the next available one.
was able to reproduce with ytid Xs9rnAH3VAQ
girst [Mon, 3 Aug 2020 08:50:46 +0000 (10:50 +0200)]
display name for playlist subscriptions in the manager
girst [Sun, 2 Aug 2020 21:56:19 +0000 (23:56 +0200)]
WIP: subscribing to playlist
this adds the possibility to subscribe to playlists. playlists don't
support websub, so they'll be updated via pull-sub only.
Note that pubsubhubbub.appspot.com pretends you can subscribe to the
'full' feeds, but then never send POSTs on update.
girst [Sun, 2 Aug 2020 21:27:35 +0000 (23:27 +0200)]
return channel and playlist ids from parse_xml
needed for /user/<> endpoint's card infobar; later useful when
subscribing to playlists
girst [Sun, 2 Aug 2020 21:17:22 +0000 (23:17 +0200)]
implement /user/<nice_username> endpoint in youtube
turns out there's an undocumented xmlfeed endpoint we can use
girst [Thu, 30 Jul 2020 18:23:32 +0000 (20:23 +0200)]
fix subscribe button on Subscription Manager
girst [Thu, 30 Jul 2020 18:13:15 +0000 (20:13 +0200)]
prevent linebreaks in cards
playlist endcards break between number and "videos" due to very
agressive flex sizing.
girst [Thu, 30 Jul 2020 17:41:19 +0000 (19:41 +0200)]
remove stray html comment
girst [Thu, 30 Jul 2020 17:28:27 +0000 (19:28 +0200)]
better pagination
girst [Thu, 30 Jul 2020 15:32:42 +0000 (17:32 +0200)]
example blueprint: show how to add a header item
girst [Thu, 30 Jul 2020 15:16:14 +0000 (17:16 +0200)]
move search bar out of header, implement way to include links in headerbar
girst [Thu, 30 Jul 2020 15:13:04 +0000 (17:13 +0200)]
move audio-only next to raw-video button
girst [Thu, 30 Jul 2020 11:36:58 +0000 (13:36 +0200)]
systemd units: put gunicorn config in /etc/yt
girst [Thu, 30 Jul 2020 11:31:03 +0000 (13:31 +0200)]
switch frontend to eventlet
girst [Thu, 30 Jul 2020 09:01:14 +0000 (11:01 +0200)]
less verbose welcome message
girst [Thu, 30 Jul 2020 08:59:42 +0000 (10:59 +0200)]
tone down welcome message css
girst [Thu, 30 Jul 2020 08:46:25 +0000 (10:46 +0200)]
clean up README, add license notice
girst [Thu, 30 Jul 2020 07:54:32 +0000 (09:54 +0200)]
make site R E S P O N S I V E (mobile friendly)
girst [Thu, 30 Jul 2020 07:38:19 +0000 (09:38 +0200)]
add a way to print all routes in their order of precedence
girst [Thu, 30 Jul 2020 07:37:49 +0000 (09:37 +0200)]
fix running __main__
girst [Thu, 30 Jul 2020 07:22:18 +0000 (09:22 +0200)]
apply proxy to whole stream map (not just best-muxed)
girst [Thu, 30 Jul 2020 06:58:38 +0000 (08:58 +0200)]
implement audio-only-mode, return all streams from g_v_i
girst [Mon, 27 Jul 2020 10:08:16 +0000 (12:08 +0200)]
make flash messages nicer
girst [Sat, 25 Jul 2020 18:12:18 +0000 (20:12 +0200)]
UGLY-HACKY: fallback image for card thumbnail
girst [Sat, 25 Jul 2020 18:11:59 +0000 (20:11 +0200)]
remove unused file
girst [Sat, 25 Jul 2020 16:35:15 +0000 (18:35 +0200)]
switch to systemd units, redo INSTALL as markdown file
girst [Sat, 25 Jul 2020 15:22:35 +0000 (17:22 +0200)]
better document standalone modules
girst [Sat, 25 Jul 2020 15:12:50 +0000 (17:12 +0200)]
re-format config.ini
girst [Sat, 25 Jul 2020 14:47:27 +0000 (16:47 +0200)]
add /websub route
useful for testing if the websub is running.
girst [Sat, 25 Jul 2020 14:39:02 +0000 (16:39 +0200)]
fix loading webhooks as frontend module, simplify startup.sh
girst [Sat, 25 Jul 2020 14:28:36 +0000 (16:28 +0200)]
port refresh-cipher to python (mostly, still calling youtubedown)
girst [Sat, 25 Jul 2020 12:03:02 +0000 (14:03 +0200)]
decouple reddit from common
girst [Fri, 24 Jul 2020 23:25:50 +0000 (01:25 +0200)]
fix premiere video handling
isLiveContent==False, isLive==True
girst [Fri, 24 Jul 2020 20:07:34 +0000 (22:07 +0200)]
don't use proxy for videos that don't need it
girst [Fri, 24 Jul 2020 13:10:06 +0000 (15:10 +0200)]
document proxy endpoint
girst [Fri, 24 Jul 2020 13:02:23 +0000 (15:02 +0200)]
make invidious_url point to HTML version (except show=raw)
girst [Fri, 24 Jul 2020 13:02:02 +0000 (15:02 +0200)]
use proxy for geolocked videos (iff enabled)
girst [Fri, 24 Jul 2020 12:38:34 +0000 (14:38 +0200)]
remove superfluous headers
girst [Fri, 24 Jul 2020 12:37:47 +0000 (14:37 +0200)]
use whitelist for forwarded response headers
girst [Fri, 24 Jul 2020 12:28:45 +0000 (14:28 +0200)]
requests_cache breaks videoproxy
streaming responses are fetched in full (and would fill up the cache)
see https://requests-cache.readthedocs.io/en/latest/user_guide.html
girst [Thu, 23 Jul 2020 12:33:57 +0000 (14:33 +0200)]
let all templates inherit from a base template
also some minor html changes (emojibuttons, navigation, css, ...)
girst [Thu, 23 Jul 2020 12:23:33 +0000 (14:23 +0200)]
use requests for proxy endpoint
girst [Thu, 23 Jul 2020 12:18:26 +0000 (14:18 +0200)]
create video proxy endpoint
girst [Tue, 21 Jul 2020 12:55:24 +0000 (14:55 +0200)]
log POST request data on internal errors
girst [Tue, 21 Jul 2020 12:48:55 +0000 (14:48 +0200)]
improve default subtitle handling
was broken when autogenerated was available, due to sorted()
girst [Tue, 21 Jul 2020 10:53:27 +0000 (12:53 +0200)]
make webhook a blueprint/standalone-hybrid
girst [Tue, 21 Jul 2020 10:09:30 +0000 (12:09 +0200)]
create example blueprint to demo ease of extenability
girst [Tue, 21 Jul 2020 09:43:27 +0000 (11:43 +0200)]
add raw video id enpoint; make fallback_route return 404 if none available
also fix small usage error of fallback_route
girst [Tue, 21 Jul 2020 09:21:53 +0000 (11:21 +0200)]
move main (non-translation) subtitles to the first slot
girst [Mon, 20 Jul 2020 15:55:30 +0000 (17:55 +0200)]
awful hack to align last row of cards
girst [Mon, 20 Jul 2020 15:34:48 +0000 (17:34 +0200)]
more useful date formatting
girst [Mon, 20 Jul 2020 11:30:45 +0000 (13:30 +0200)]
Revert "use all muxed stream sources" for breaking edge-cases
specifically, geolocked video handling
This reverts commit
e38be6698b853bcdeccfb2f664a276b6f669e4b4 .
girst [Sun, 19 Jul 2020 18:46:51 +0000 (20:46 +0200)]
add subscribe button to channel page (TODO:invidious)
girst [Sun, 19 Jul 2020 18:18:14 +0000 (20:18 +0200)]
redirect /embedded to /watch
for invidition compat
girst [Sat, 18 Jul 2020 22:31:00 +0000 (00:31 +0200)]
update overview diagram
girst [Sat, 18 Jul 2020 17:16:39 +0000 (19:16 +0200)]
move test instance to subscriptions.gir.st:443
girst [Sat, 18 Jul 2020 15:57:57 +0000 (17:57 +0200)]
fix route fallback for /user (which has none)
girst [Sat, 18 Jul 2020 15:46:57 +0000 (17:46 +0200)]
clean up sub* managers
girst [Sat, 18 Jul 2020 15:31:17 +0000 (17:31 +0200)]
remove useless whitespace from emoji_link
girst [Sat, 18 Jul 2020 15:29:33 +0000 (17:29 +0200)]
remove now-unused reddit tables
girst [Sat, 18 Jul 2020 15:29:01 +0000 (17:29 +0200)]
reddit: use emoji abstractions, pin to subscriptions instead
girst [Sat, 18 Jul 2020 14:54:15 +0000 (16:54 +0200)]
abstract emoji buttons/links
girst [Sat, 18 Jul 2020 13:38:04 +0000 (15:38 +0200)]
allow (un)pinning and (un)subscribing on /watch
pinning also works now for videos yet not in the database
girst [Sat, 18 Jul 2020 13:33:15 +0000 (15:33 +0200)]
use all muxed stream sources
might allow falling back when a stream is broken
girst [Fri, 17 Jul 2020 21:22:10 +0000 (23:22 +0200)]
proxy and fixup subtitles
proxying is necessary, because youtube doesn't send CORS headers. we
don't either, since we expect the consumer of the timedtext-proxy to
only be us ourselves. if someone wants to use it externally (e.g. as an
api), they'd have to add cors headers.
thanks goes out to perflyst[m] on #invidious for checking that
youtube's timedtext endpoint is "safe" for us to use.
girst [Fri, 17 Jul 2020 16:15:06 +0000 (18:15 +0200)]
paper over reddit exceptions
this may return a html-response with tracking-javascript (e.g. "Our CDN
was unable to reach our servers")!
girst [Fri, 17 Jul 2020 16:08:12 +0000 (18:08 +0200)]
prioritize channel name element's width over details element's
girst [Fri, 17 Jul 2020 16:00:39 +0000 (18:00 +0200)]
webhook: only ask get_video_info if necessary (REVERTME)
maybe revert later to get more useful info from g_v_i (e.g. livestream
start date) to display on /feed/subscriptions
girst [Fri, 17 Jul 2020 15:59:38 +0000 (17:59 +0200)]
/watch: trim time from published date
girst [Fri, 17 Jul 2020 11:34:10 +0000 (13:34 +0200)]
return bytes (not str) from fetch_xml()
broke pull-subs logging when it choked on an unrelated error
Traceback (most recent call last):
File "/opt/yt/app/common/utils.py", line 151, in <module>
pull_subscriptions(verbosity, force, limit)
File "/opt/yt/app/common/utils.py", line 44, in pull_subscriptions
pull_feed(feed_id, feed_type, conn, verbose)
File "/opt/yt/app/common/utils.py", line 67, in pull_feed
f.write(xmlfeed + b"\n")
TypeError: must be str, not bytes
girst [Thu, 16 Jul 2020 22:34:29 +0000 (00:34 +0200)]
fix temporary logging not showing up
girst [Thu, 16 Jul 2020 22:33:29 +0000 (00:33 +0200)]
fix livestream start time metadata
not exactly sure where this came up due to insufficient logging :/