subscriptionfeed.git
2 weeks agoget_video_info: bail out if no stream url is found master
girst [Wed, 5 Jan 2022 22:05:00 +0000 (23:05 +0100)]
get_video_info: bail out if no stream url is found

this was triggered relatively often by the websub-webhook (who doesn't
need the url anyways).

2 weeks agoimplement displaying 'youtube mixes' in /channel/.../playlists
girst [Wed, 5 Jan 2022 21:58:53 +0000 (22:58 +0100)]
implement displaying 'youtube mixes' in /channel/.../playlists

2 weeks agoignore another advert search result
girst [Wed, 5 Jan 2022 21:45:58 +0000 (22:45 +0100)]
ignore another advert search result

for youtubekids.com, when searchign for youtube kids

2 weeks agoignore hashtag related search results
girst [Wed, 5 Jan 2022 21:42:10 +0000 (22:42 +0100)]
ignore hashtag related search results

includingResultsForRenderer is shown when searching e.g. for '#foo' to
also show results for 'foo'. hashtagTileRenderer is a link to
'/hashtag/<search_query>' telling you that there are X videos from X
channels about that topic.

2 weeks agoignore useless info message search result
girst [Wed, 5 Jan 2022 21:35:19 +0000 (22:35 +0100)]
ignore useless info message search result

happens when searching for a youtube url, e.g.
    /search?q=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3Dxxxxxxxxxxx

2 weeks agoignore another search result ad type
girst [Wed, 5 Jan 2022 21:33:46 +0000 (22:33 +0100)]
ignore another search result ad type

2 weeks agoremove old commented out templating code
girst [Wed, 5 Jan 2022 21:25:56 +0000 (22:25 +0100)]
remove old commented out templating code

2 weeks agofix COURSE/"learning playlist" special-casing
girst [Wed, 5 Jan 2022 21:09:24 +0000 (22:09 +0100)]
fix COURSE/"learning playlist" special-casing

this appears to no longer be needed. new test case (since the tomscott
playlist can't be searched for any more):
- PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA
  "Code! Programming with p5.js" by "The Coding Train"
- /search?q=The+Coding+Train&type=playlist
- /channel/UCvjgXvBlbQiydffZU7m1_aw/playlists

2 weeks agoport videoid_from_thumbnail() to |G()
girst [Wed, 5 Jan 2022 21:00:18 +0000 (22:00 +0100)]
port videoid_from_thumbnail() to |G()

2 weeks agosearch results: only parse first itemSectionRenderer
girst [Wed, 5 Jan 2022 20:51:50 +0000 (21:51 +0100)]
search results: only parse first itemSectionRenderer

no idea why i switched that around (no comment in eaa6b44 about it
either), so reverting that. let's us remove flatten() now.

2 weeks agodon't throw 500 error when logging unknown card type
girst [Wed, 5 Jan 2022 20:24:06 +0000 (21:24 +0100)]
don't throw 500 error when logging unknown card type

oops :D

2 weeks agoport parse_channel_items() to |G()
girst [Wed, 5 Jan 2022 20:22:31 +0000 (21:22 +0100)]
port parse_channel_items() to |G()

and remove now obsolete listfind(), first(), findall()

2 weeks agodon't break when video in /channel/ has no title
girst [Wed, 5 Jan 2022 19:52:19 +0000 (20:52 +0100)]
don't break when video in /channel/ has no title

apparently, a gridVideoRenderer item can have no 'title' key.

found in the wild on:
- /channel/UChi1hV75qQtKOHatzOWKk5A/ (twice!)
- /channel/UC07djtPESgvXX0B1UFjW9jA/

2 weeks agohackily add back publish date to /watch
girst [Tue, 4 Jan 2022 19:58:08 +0000 (20:58 +0100)]
hackily add back publish date to /watch

this is relatively hidden intentionally, since we don't want to
encourage too many requests to the show=meta endpoint.

2 weeks agoexpose additional metadata link in 'more actions' section
girst [Mon, 3 Jan 2022 16:12:57 +0000 (17:12 +0100)]
expose additional metadata link in 'more actions' section

also emojifies invidious/youtube links there

5 weeks agofix reddit 'more' button
girst [Wed, 15 Dec 2021 20:37:29 +0000 (21:37 +0100)]
fix reddit 'more' button

5 weeks agoimplement /watch?show=meta to get metadata removed from ANDROID api
girst [Wed, 15 Dec 2021 19:29:47 +0000 (20:29 +0100)]
implement /watch?show=meta to get metadata removed from ANDROID api

5 weeks agoprefer microformat.publishDate
girst [Wed, 15 Dec 2021 19:23:40 +0000 (20:23 +0100)]
prefer microformat.publishDate

applies to g_v_i(metaOnly). videoDetails.publishDate is "0" for premiere
videos.

5 weeks agoremove rating and thumbs up/down, as that is now removed from the response
girst [Wed, 15 Dec 2021 15:52:45 +0000 (16:52 +0100)]
remove rating and thumbs up/down, as that is now removed from the response

5 weeks agouse correct published time for database when available
girst [Wed, 15 Dec 2021 15:29:25 +0000 (16:29 +0100)]
use correct published time for database when available

now, premiere videos are properly crawled_at=now(); published_at=soon()

5 weeks ago[DATABASE CHANGE: Migration below] mark premiering videos with 'SOON' badge
girst [Wed, 15 Dec 2021 15:07:14 +0000 (16:07 +0100)]
[DATABASE CHANGE: Migration below] mark premiering videos with 'SOON' badge

their premiering date is now captured correctly, too.

ALTER TABLE videos ADD COLUMN premiere BOOLEAN DEFAULT 0;

7 weeks agohandle missing averageRating
girst [Thu, 2 Dec 2021 23:33:39 +0000 (00:33 +0100)]
handle missing averageRating

seems to be absent from responses now sometimes

2 months agotry /c/ before /user/ when canonicalizing user names
girst [Sat, 20 Nov 2021 13:33:27 +0000 (14:33 +0100)]
try /c/ before /user/ when canonicalizing user names

especially for <instance_host>/<something>; this returned the wrong
channel, if there is both a /c/ and a /user/ with the same id.
example:
  c/BoyBoyProductions => UC_S45UpAYVuc0fYEcHN9BVQ (would be correct)
  user/BoyBoyProductions => UC2ct7L3mSnprF5o0GAWLzrg (this was selected)

2 months agotell the user to log in to view livestreams/geolocked videos, if applicable.
girst [Sat, 20 Nov 2021 13:27:36 +0000 (14:27 +0100)]
tell the user to log in to view livestreams/geolocked videos, if applicable.

2 months agoallow limiting proxy to authenticated users
girst [Sat, 20 Nov 2021 13:14:59 +0000 (14:14 +0100)]
allow limiting proxy to authenticated users

g.proxy_on should be accessed through getattr(g, 'proxy_on', None).
This allows for the following states:
  True: proxy can be used
  False: proxy use is denied; try logging in
  None: proxy is disabled globally

2 months agoexpose reddit sort orders to users
girst [Sat, 13 Nov 2021 23:27:59 +0000 (00:27 +0100)]
expose reddit sort orders to users

2 months agoask for forgiveness when finding video_url
girst [Sat, 13 Nov 2021 22:35:40 +0000 (23:35 +0100)]
ask for forgiveness when finding video_url

previously, this caused exceptions on utils.py pull, probably due to
scheduled videos, but haven't investigated that.

2 months agoundo reddit continuation/pagination harmonisation
girst [Sat, 13 Nov 2021 22:27:53 +0000 (23:27 +0100)]
undo reddit continuation/pagination harmonisation

2 months agomacros.pagination -> macros.more
girst [Sat, 13 Nov 2021 22:25:37 +0000 (23:25 +0100)]
macros.pagination -> macros.more

hard-codes label text, removes obsolete direction marker

2 months agoreplace querystring_page() by jinja2 code inside the macro
girst [Sat, 13 Nov 2021 22:15:21 +0000 (23:15 +0100)]
replace querystring_page() by jinja2 code inside the macro

removes handling of obsolete special cases and prev-page-handling. also
remove back button from subscriptions page, since nothing else uses that
feaure any more.
note: {% set _nil = ... %} simulates a {% do ... %} expression, which
isn't available by default in flask's jinja config.

2 months agoallow linking to timestamps with macros.card; use it in reddit/
girst [Sat, 13 Nov 2021 21:31:09 +0000 (22:31 +0100)]
allow linking to timestamps with macros.card; use it in reddit/

2 months agoharmonize 'more' button between browse/* and reddit/
girst [Sat, 13 Nov 2021 21:29:22 +0000 (22:29 +0100)]
harmonize 'more' button between browse/* and reddit/

now only the subscription feed uses the special features of the
pagination macro. preparation for getting rid of this.

2 months agoonly show 'more' button on reddit
girst [Sat, 13 Nov 2021 21:19:45 +0000 (22:19 +0100)]
only show 'more' button on reddit

mimic recent changes in /browse/

2 months agoport search to new api; use continuation tokens here too
girst [Sat, 13 Nov 2021 21:17:37 +0000 (22:17 +0100)]
port search to new api; use continuation tokens here too

2 months agoallow specifying fetch_ajax() endpoint and make payload configurable
girst [Sat, 13 Nov 2021 20:27:54 +0000 (21:27 +0100)]
allow specifying fetch_ajax() endpoint and make payload configurable

in preperation to move search to new api

2 months agoadd NO-URL error description
girst [Sat, 6 Nov 2021 13:09:48 +0000 (14:09 +0100)]
add NO-URL error description

3 months agouse continuation token instead of manually paginated results
girst [Sun, 17 Oct 2021 23:43:41 +0000 (01:43 +0200)]
use continuation token instead of manually paginated results

this is how youtube does it, and this also works for channel?sort=oldest

3 months agoimprove makefile
girst [Sat, 16 Oct 2021 16:21:22 +0000 (18:21 +0200)]
improve makefile

3 months agocommit database change to setup.sql
girst [Fri, 15 Oct 2021 03:39:49 +0000 (05:39 +0200)]
commit database change to setup.sql

3 months agomakefile: automatically generate hmac secrets for config.ini
girst [Fri, 15 Oct 2021 03:23:16 +0000 (05:23 +0200)]
makefile: automatically generate hmac secrets for config.ini

3 months agodescribe what each module does in advance install section
girst [Fri, 15 Oct 2021 02:52:50 +0000 (04:52 +0200)]
describe what each module does in advance install section

3 months agoenable proxy by default
girst [Fri, 15 Oct 2021 02:42:48 +0000 (04:42 +0200)]
enable proxy by default

3 months agolisten on port 8080 by default to encourage reverse-proxying
girst [Fri, 15 Oct 2021 02:37:31 +0000 (04:37 +0200)]
listen on port 8080 by default to encourage reverse-proxying

3 months agoupdate installation instructions
girst [Fri, 15 Oct 2021 02:30:07 +0000 (04:30 +0200)]
update installation instructions

3 months agoprovide a semi-automatic install mechanism
girst [Fri, 15 Oct 2021 01:39:41 +0000 (03:39 +0200)]
provide a semi-automatic install mechanism

3 months agouse systemd timers instead of cronjobs
girst [Fri, 15 Oct 2021 01:09:02 +0000 (03:09 +0200)]
use systemd timers instead of cronjobs

3 months agoremove webhooks gunicorn
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).

3 months agoallow running setup.sql/guest.sql multiple times
girst [Fri, 15 Oct 2021 01:05:19 +0000 (03:05 +0200)]
allow running setup.sql/guest.sql multiple times

3 months ago[DATABASE CHANGE: Migration below] implement on-line user creation
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

3 months agoremove now unused cipher fetching code
girst [Thu, 14 Oct 2021 21:39:44 +0000 (23:39 +0200)]
remove now unused cipher fetching code

now independent of jwz's youtubedown :^)

3 months agoswitch to ANDROID player API
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.

4 months agoredirect thumnail urls
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.

4 months agotake full youtube.com urls as path, and redirect accordingly
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.

4 months agoadd method to allow downloading though yt-dlp
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

5 months agosplit stream_map.adaptive into *_video and *_audio
girst [Tue, 17 Aug 2021 13:43:29 +0000 (15:43 +0200)]
split stream_map.adaptive into *_video and *_audio

5 months agofix try_int() to actually return something
girst [Tue, 17 Aug 2021 12:48:40 +0000 (14:48 +0200)]
fix try_int() to actually return something

urgh.

5 months agoavoid contacting innertube api when video id is obviously wrong
girst [Fri, 13 Aug 2021 18:14:56 +0000 (20:14 +0200)]
avoid contacting innertube api when video id is obviously wrong

5 months agoavoid int(request.args.get('page'))
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.

5 months agofix ?show=audio for unplayable videos
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.

5 months agohandle the case when we can't connect to googlevideo
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

5 months agofix url extraction of non-embeddable livestreams
girst [Fri, 13 Aug 2021 17:20:19 +0000 (19:20 +0200)]
fix url extraction of non-embeddable livestreams

test id: 31NX4zpsKuI

5 months agoallow /embed/ urls with final /
girst [Fri, 13 Aug 2021 15:12:13 +0000 (17:12 +0200)]
allow /embed/ urls with final /

5 months agohandle geolocked videos not available in the server's region
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

5 months agomake channel page sorting link(-ish) instead of a select box
girst [Thu, 5 Aug 2021 15:12:14 +0000 (17:12 +0200)]
make channel page sorting link(-ish) instead of a select box

5 months agouse same embedder-url as yt-dlp
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

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

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

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

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

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

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

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

7 months 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. :/

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

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

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

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

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

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

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

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

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

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

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

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

8 months 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.

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

This reverts commit 890fc200e8b3834f21ddfce18ae458bae5333537.

8 months 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.

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

8 months 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.

8 months 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.

8 months 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.

9 months 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.

10 months 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.

10 months 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;

10 months 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">

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

10 months 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.

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

10 months 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().

Imprint / Impressum