]> git.gir.st - subscriptionfeed.git/log
subscriptionfeed.git
2 weeks agobypass android rate limiting/ipban master
girst [Mon, 1 Apr 2024 13:42:25 +0000 (13:42 +0000)]
bypass android rate limiting/ipban

this may or may not affect which metadata keys are returned.
invidious uses "CgIIAdgDAQ%3D%3D", ytdlp uses 'CgIIAQ=='. invidious'
parameter doesn't show view count, yt-dlp's does.

discovered here: https://github.com/LuanRT/YouTube.js/pull/624
invidious impl: https://github.com/iv-org/invidious/pull/4552
ytdlp commit: https://github.com/yt-dlp/yt-dlp/commit/e7b17fce14775bd2448695c8eb7379b8d31d3537

4 weeks agoupdate youtube api calls to client version 18
girst [Wed, 20 Mar 2024 17:32:42 +0000 (17:32 +0000)]
update youtube api calls to client version 18

same as yt-dlp: https://github.com/yt-dlp/yt-dlp/pull/9317

2 months agosupport ancient /v/<video_id> urls
girst [Fri, 26 Jan 2024 15:39:43 +0000 (15:39 +0000)]
support ancient /v/<video_id> urls

these were used in the shockwave era; now they redirect to /watch.

2 months agofix inserting NULLs into videos table
girst [Fri, 26 Jan 2024 14:48:45 +0000 (14:48 +0000)]
fix inserting NULLs into videos table

* we set premiere to NULL instead of FALSE every time it was not a livestream
* ytshorts can't be livestreams of premiering videos (turns NULL->FALSE)

2 months agobypass eating disorder (and probably others) search results block
girst [Sun, 21 Jan 2024 16:18:27 +0000 (16:18 +0000)]
bypass eating disorder (and probably others) search results block

below the searchFrictionViewModel item is a infoPanelContentRenderer
item that shows a "Show anyway" searchEndpoint text link. this has
{params:8AEB} set to bypass this (sensible) warning and turns it into an
emergencyOneboxRenderer item, which serves results.

2 months agoimplement /feeds/videos.xml endpoint
girst [Wed, 24 Jan 2024 22:09:27 +0000 (22:09 +0000)]
implement /feeds/videos.xml endpoint

navigating to youtube.com/feeds/videos.xml with an invidious redirection
addon enabled previously caused us to show a 404, making debugging very
inconvenient.

2 months agoonly do fallback_route('.channel') on video subpage
girst [Sun, 21 Jan 2024 16:37:30 +0000 (16:37 +0000)]
only do fallback_route('.channel') on video subpage

this is the only subpage the youtube.channel supports.

2 months agoadd link to youtube playlist from /watch
girst [Sun, 21 Jan 2024 16:27:43 +0000 (16:27 +0000)]
add link to youtube playlist from /watch

e.g. on /watch?v=6GWQBpvdC0c&list=PLJtitKU0CAehsdcybehbPFHObmWsKtQcY&index=1

2 months agosearch results: ignore community posts related entries
girst [Sun, 21 Jan 2024 15:48:12 +0000 (15:48 +0000)]
search results: ignore community posts related entries

2 months agoignore searchFrictionViewModel
girst [Sun, 21 Jan 2024 15:42:29 +0000 (15:42 +0000)]
ignore searchFrictionViewModel

displays phone number of "Substance Abuse and Mental Health Services
Administration" or telefonseelsorge.de below "If you or someone you know
is having a hard time, talk to somebody today."

2 months agodetect ip ban
girst [Sun, 21 Jan 2024 15:03:26 +0000 (15:03 +0000)]
detect ip ban

this was in place for some time (when the test instance got banned).

note that this ban can't be bypassed with anti-captcha and the logic
for it doesn't anticipate that. you must remove your anti-captcha api
key from the config file!

note that during this time, invidious changed 'params' value of
get_video_info(); this was not in response to increased ip bans. we
still use the old value because it still works and the new one doesn't
return endcards.
c.f. https://github.com/iv-org/invidious/pull/4156

2 months agomore aggressive sponsor blocking
girst [Sun, 21 Jan 2024 14:55:19 +0000 (14:55 +0000)]
more aggressive sponsor blocking

now also including self-promotion. can sometimes feel a bit too jarring.

2 months agosearch: support new 'medium length' filter
girst [Sun, 21 Jan 2024 14:54:59 +0000 (14:54 +0000)]
search: support new 'medium length' filter

2 months agosupport (hiding) youtube shorts everywhere
girst [Sun, 21 Jan 2024 14:53:36 +0000 (14:53 +0000)]
support (hiding) youtube shorts everywhere

proper support for youtube shorts in search results, channel pages,
playlists, homepage/subscriptions - especially hiding them.

5 months agonoshorts: always show videos with undeterminate shorts status
girst [Tue, 31 Oct 2023 13:15:51 +0000 (13:15 +0000)]
noshorts: always show videos with undeterminate shorts status

i.e, when shorts=NULL (can happen when we can't get metadata).
otherwise all videos during the metadata outage (e.g. ip blocked) won't
show.

5 months agoadd piped.video link to watch and error pages
girst [Tue, 31 Oct 2023 12:59:48 +0000 (12:59 +0000)]
add piped.video link to watch and error pages

using the legacy piped.kavin.rocks endpoint to avoid having to load
"3rd party" javascript/payloads, since both it and piped.video make api
calls to:
 - pipedapi.kavin.rocks
 - pipedproxy.kavin.rocks
 - pipedproxy-cdg.kavin.rocks

6 months agomicroformat published date is now a timestamp
girst [Thu, 12 Oct 2023 20:44:57 +0000 (20:44 +0000)]
microformat published date is now a timestamp

this caused bugs when parsing the date. a timestamp was transformed into
e.g. 2023-10-12T12:00:00-07:00T00:00:00Z which dateutil (correctly)
rejects.

8 months agobrowse: fix removal of Filter list
girst [Tue, 15 Aug 2023 21:10:17 +0000 (21:10 +0000)]
browse: fix removal of Filter list

hacky, but works.

8 months agoprotobuf: switch make_sp (search params) to new lib, cleanup old lib
girst [Tue, 15 Aug 2023 21:07:13 +0000 (21:07 +0000)]
protobuf: switch make_sp (search params) to new lib, cleanup old lib

minor change: extras was previously included even if empty, now isn't.

8 months agoprotobuf: replace make_playlist_params with new library
girst [Tue, 15 Aug 2023 20:44:38 +0000 (20:44 +0000)]
protobuf: replace make_playlist_params with new library

removes the large comment listing all the playlist types.

8 months agobrowse/protbuf: clean up new data structures
girst [Tue, 15 Aug 2023 20:21:43 +0000 (20:21 +0000)]
browse/protbuf: clean up new data structures

8 months agobrowse: replace make_channel_params with pyproto version
girst [Tue, 15 Aug 2023 20:10:30 +0000 (20:10 +0000)]
browse: replace make_channel_params with pyproto version

same semantics, cleanup follows.

8 months agovendor a modified and stipped down version of python-protobuf 0.0.1
girst [Tue, 15 Aug 2023 20:08:31 +0000 (20:08 +0000)]
vendor a modified and stipped down version of python-protobuf 0.0.1

- allow None in dict input (meaning "skip this field")
- replace custom exception with ValueError
- only support encoding from dict
- remove unused functions

8 months agobrowse: remove unused make_channel_params parameters page and v3
girst [Tue, 15 Aug 2023 19:48:03 +0000 (19:48 +0000)]
browse: remove unused make_channel_params parameters page and v3

note that this removes the SearchOffset object from the "search"
subpage. stuff still seems to work, though.

8 months agobrowse: support shortened video age labels
girst [Tue, 15 Aug 2023 09:35:07 +0000 (09:35 +0000)]
browse: support shortened video age labels

8 months agosurface n-sig throttling to ui
girst [Tue, 15 Aug 2023 09:30:58 +0000 (09:30 +0000)]
surface n-sig throttling to ui

on watch?show=raw, this is treated as a fatal error.

9 months agowatch: don't fail if itag specified on vevo scrambled video
girst [Sun, 25 Jun 2023 09:22:54 +0000 (09:22 +0000)]
watch: don't fail if itag specified on vevo scrambled video

10 months agobrowse/search: support gridVideoRenderer
girst [Sun, 28 May 2023 17:35:29 +0000 (17:35 +0000)]
browse/search: support gridVideoRenderer

10 months agouse other 'params' value
girst [Sun, 28 May 2023 15:53:52 +0000 (15:53 +0000)]
use other 'params' value

8AEB is apparently used by shorts, and doesn't return viewCount. this
patch makes viewCount optional, but uses the other cargo-culted value
that does return viewCount (for now, at least).

10 months ago*real* fix for 403 problem
girst [Sun, 28 May 2023 15:31:45 +0000 (15:31 +0000)]
*real* fix for 403 problem

apparently, youtube shorts adds '8AEB', another working parameter might
be 'CgIQBg%3D%3D'. all this is untested and we just cargo-culted 8AEB.

it turns out, this
1) isn't a tcp problem, but just googlevideo blacklisting generated urls
   on second/third(ish) reload
2) was known by newpipe and invidious for half a year.

avoiding youtubei.googleapis.com was a red herring, too.

more unsorted information:
https://github.com/TeamNewPipe/NewPipe/issues/9038#issuecomment-1289756816
https://github.com/TeamNewPipe/NewPipeExtractor/pull/960
https://github.com/ytdl-org/youtube-dl/issues/30725
https://github.com/iv-org/invidious/commit/09b9b758dea2e9dc502ba497a34ae02cbb37ae46

NewPipeExtractor writes in YoutubeStreamExtractor.java @a4db106:
// Workaround getting streaming URLs which can return 403 HTTP response
// codes by using stories parameter for Android client requests
// This behavior only happen in certain countries such as UK as of
// 10.29.2022

10 months agofix tcp streams aborting
girst [Wed, 24 May 2023 19:19:25 +0000 (19:19 +0000)]
fix tcp streams aborting

since updating the android parameters, downloading of streams would sometimes
stop. it seems to be correlated to pausing the video, probably the browser
stops further buffering and resuming the download then fails.

these parameters are taken from newpipe (sdk version, user agent, app version)

not sure if using the correct api key helps, but doing this now anyways.

interestingly, switching the api host name to youtubei.googleapis.com (which
is what supposedly the android app uses) reintroduces the stream bug.

10 months agoincrease usefulness of logging of deleted videos
girst [Wed, 24 May 2023 19:17:18 +0000 (19:17 +0000)]
increase usefulness of logging of deleted videos

11 months agofix bug in shorts detection logic
girst [Wed, 3 May 2023 19:30:28 +0000 (19:30 +0000)]
fix bug in shorts detection logic

a  (potential) short was marked as False instead of None either of these situations:
- length < 60 and aspect_ratio is None
- length is None and aspect_ratio < 1

11 months agouse flash close mark from BMP
girst [Sun, 30 Apr 2023 12:52:47 +0000 (12:52 +0000)]
use flash close mark from BMP

replaces VERY HEAVY SALTIRE from the SMP with MULTIPLICATION X from the
BMP. the closer equivalent would have been HEAVY MULTIPLICATION X, but I
like the sleeker look. this was done for client compatibility;
especially mobile browsers lack the former glyph.

11 months agomark upcoming livestreams as 'SOON'
girst [Sat, 29 Apr 2023 18:30:06 +0000 (18:30 +0000)]
mark upcoming livestreams as 'SOON'

livestreams currently live and finished livestreams will show 'LIVE'.
the latter is a limitation of our collected data (at the time of
crawling, livestreams have no duration which we could show).

11 months agoreddit: validate some parameters and use HTTPExceptions
girst [Sat, 29 Apr 2023 16:42:08 +0000 (16:42 +0000)]
reddit: validate some parameters and use HTTPExceptions

11 months agoimprove error view of browse.channel slightly
girst [Sat, 29 Apr 2023 16:22:05 +0000 (16:22 +0000)]
improve error view of browse.channel slightly

11 months agoload pinned/hidden state and button on search results and in playlists
girst [Sat, 29 Apr 2023 16:01:02 +0000 (16:01 +0000)]
load pinned/hidden state and button on search results and in playlists

11 months agouse redirect.invidious.io instead of hard-coding a fallback-instance.
girst [Sat, 29 Apr 2023 14:40:07 +0000 (14:40 +0000)]
use redirect.invidious.io instead of hard-coding a fallback-instance.

note that some instances provide a redirect feature; this would be cool
to have on redirect. or api.invidious.io, but it isn't.
  https://invidious.snopyta.org/redirect?referer=%2Fwatch%3Fv%3D{video_id}

removed from reddit completely (who even used that?).

11 months agoremove invidious redirection from ?show=raw
girst [Sat, 29 Apr 2023 14:33:54 +0000 (14:33 +0000)]
remove invidious redirection from ?show=raw

not very useful (not understood by <video> tags), can't easily be
modified to work with redirect.invidious.io

11 months agosplit common.innertube into youtube.cards and browse.innertube
girst [Sat, 29 Apr 2023 13:59:58 +0000 (13:59 +0000)]
split common.innertube into youtube.cards and browse.innertube

a few things that were used in both places (G, mkthumbs,
log_unknown_card) now live in common.common.

11 months agosupport attribution_link redirects
girst [Sat, 29 Apr 2023 13:19:21 +0000 (13:19 +0000)]
support attribution_link redirects

11 months agoremove vertical white space after closing all flashes
girst [Sat, 29 Apr 2023 13:04:46 +0000 (13:04 +0000)]
remove vertical white space after closing all flashes

11 months agouse resolve_url endpoint for channel canonicalisation
girst [Sat, 29 Apr 2023 12:44:11 +0000 (12:44 +0000)]
use resolve_url endpoint for channel canonicalisation

one less seperate place we call into youtube's frontend apis

we now support:
  - /channel/ucid
  - /c/vanity
  - /user/username
  - /@handle
  - /brandname

according to https://support.google.com/youtube/answer/6180214?hl=en
vanity urls and usernames are legacy, brand urls aren't documented at
all.

11 months agosubscription feed: filter shorts if the user enabled the 'noshorts' setting
girst [Wed, 26 Apr 2023 17:12:21 +0000 (17:12 +0000)]
subscription feed: filter shorts if the user enabled the 'noshorts' setting

videos are displayed iff either noshorts config is false or not a shorts
video, but pinning overrides hiding. if shorts are shown, they are
marked 'shorts' instead of the length.

11 months ago[DATABASE CHANGE: Migration below] allow setting user settings from profile page
girst [Wed, 26 Apr 2023 17:19:02 +0000 (17:19 +0000)]
[DATABASE CHANGE: Migration below] allow setting user settings from profile page

CREATE TABLE IF NOT EXISTS user_settings(
       user_id INTEGER,
       setting TEXT NOT NULL,
       value TEXT NOT NULL,
       PRIMARY KEY(user_id, setting),
       FOREIGN KEY(user_id) REFERENCES users(id));

11 months agovideo metadata: prefer videoDetails over microformat for length
girst [Wed, 26 Apr 2023 17:07:23 +0000 (17:07 +0000)]
video metadata: prefer videoDetails over microformat for length

this short was registered as 61seconds long, so our is_short detection
didn't catch it: b2cy9BvaaY4

11 months agofix dismissing multiple flash()es
girst [Tue, 25 Apr 2023 18:06:48 +0000 (18:06 +0000)]
fix dismissing multiple flash()es

previously, dismissing one also dismissed all below.

11 months agoimprove shorts detection
girst [Tue, 25 Apr 2023 16:08:34 +0000 (16:08 +0000)]
improve shorts detection

if only one of length>60 or aspect>1 is available we can rule out a
shorts video. previously, we marked this state as undetermiable (NULL).

11 months ago[DATABASE CHANGE: Migration below] store is-shorts flag in subscriptions
girst [Mon, 24 Apr 2023 21:59:30 +0000 (21:59 +0000)]
[DATABASE CHANGE: Migration below] store is-shorts flag in subscriptions

this will allow us to filter shorts from the subscription feed.

ALTER TABLE videos ADD COLUMN shorts BOOLEAN DEFAULT NULL;

11 months agoadd heuristic whether a video is a 'youtube shorts'
girst [Mon, 24 Apr 2023 21:51:24 +0000 (21:51 +0000)]
add heuristic whether a video is a 'youtube shorts'

this requires moving the aspect ratio calculation to common; takting
this opportunity to s/aspectr/aspect/ and simplyfying AR css.

11 months agosupport /live/ and /shorts/ when pasting full youtube URL
girst [Tue, 25 Apr 2023 17:23:16 +0000 (17:23 +0000)]
support /live/ and /shorts/ when pasting full youtube URL

11 months agofix subscription button on fallback channel page
girst [Mon, 24 Apr 2023 15:33:04 +0000 (15:33 +0000)]
fix subscription button on fallback channel page

11 months agonsasession: log request json
girst [Sun, 23 Apr 2023 17:11:12 +0000 (17:11 +0000)]
nsasession: log request json

11 months agoinnertube: fix some unsupported types
girst [Sun, 23 Apr 2023 16:33:01 +0000 (16:33 +0000)]
innertube: fix some unsupported types

reel* is youtube shorts (meh.)

11 months agofix ignoring continuationItemRenderer
girst [Sun, 23 Apr 2023 16:21:45 +0000 (16:21 +0000)]
fix ignoring continuationItemRenderer

11 months agofix aspect ratio of unplayable video poster
girst [Sun, 23 Apr 2023 16:18:52 +0000 (16:18 +0000)]
fix aspect ratio of unplayable video poster

11 months agofix json responses for scrambled streams
girst [Sun, 23 Apr 2023 16:04:45 +0000 (16:04 +0000)]
fix json responses for scrambled streams

11 months agowatch: show error when video urls are scrambled/cyphered
girst [Sun, 23 Apr 2023 15:54:08 +0000 (15:54 +0000)]
watch: show error when video urls are scrambled/cyphered

previously, we didn't show any error, and just displayed the poster
image without playback functionality. example video: dqRZDebPIGs

11 months agocommon/g_v_i: improve 18+ playablility
girst [Sun, 23 Apr 2023 15:44:33 +0000 (15:44 +0000)]
common/g_v_i: improve 18+ playablility

cargo-cults some additional parameters. the following ones are sometimes
included, but don't seem to have an effect:
        "user": {
            "lockedSafetyMode": False,
        },
        "playbackContext": {
            "contentPlaybackContext": {
                "html5Preference": "HTML5_PREF_WANTS",
            },
        },

https://github.com/yt-dlp/yt-dlp/pull/545
https://github.com/TeamNewPipe/NewPipeExtractor/pull/780

11 months agocommon/g_v_i: use parameters from yt-dlp
girst [Sun, 23 Apr 2023 15:25:14 +0000 (15:25 +0000)]
common/g_v_i: use parameters from yt-dlp

previously, we used a mix of invidious, newpipe, ytdlp,
zerodytrash/YouTube-Internal-Clients values for no particular reason.
this should get us less distinct (we still are using the wrong api key).

11 months agobrowse: make selected channel subpage and sort order bold
girst [Sun, 23 Apr 2023 15:17:14 +0000 (15:17 +0000)]
browse: make selected channel subpage and sort order bold

11 months agofix channels with small number of videos
girst [Sun, 23 Apr 2023 14:56:25 +0000 (14:56 +0000)]
fix channels with small number of videos

channels with a very small amount of videos return a onResponseReceivedActions
array with just 1 element instead of two. normally, [1] has the videos, and [0]
has a feedFilterChipBarRenderer object, containing continuation tokens for
"Latest" and "Popular".

examples: UCx6cailiCkg_mlMM7JX5yfA and UCqqnIXYyT9t3as2ZBisN33g

11 months agoreddit: handle youtube.com/live/<video_id> urls
girst [Sun, 23 Apr 2023 10:36:04 +0000 (10:36 +0000)]
reddit: handle youtube.com/live/<video_id> urls

11 months agobrowse: hack channel title back in
girst [Sat, 22 Apr 2023 18:15:21 +0000 (18:15 +0000)]
browse: hack channel title back in

11 months agoswitch to yt-style protobuf for channel videos/livestreams/shorts
girst [Sat, 22 Apr 2023 18:02:38 +0000 (18:02 +0000)]
switch to yt-style protobuf for channel videos/livestreams/shorts

shorts only works in this format; page>=2 still broken

11 months agomake first page of shorts work
girst [Sat, 22 Apr 2023 18:01:41 +0000 (18:01 +0000)]
make first page of shorts work

google-provided continuation gives an error, even though our protobuf structure looks right

11 months agoWIP: port channel videos+livestreams
girst [Sat, 22 Apr 2023 17:21:50 +0000 (17:21 +0000)]
WIP: port channel videos+livestreams

11 months agobrowse: implement channel livesteams subpage
girst [Sat, 22 Apr 2023 17:13:22 +0000 (17:13 +0000)]
browse: implement channel livesteams subpage

11 months agofix video playback
girst [Sat, 22 Apr 2023 16:26:23 +0000 (16:26 +0000)]
fix video playback

android parameters needed updating, most importantly adding androidSdkVersion and user agent.

13 months agosupport /live/ urls
girst [Sun, 19 Mar 2023 20:22:29 +0000 (20:22 +0000)]
support /live/ urls

13 months agobrowse/channels: prepare for livestreams, shorts
girst [Sun, 19 Mar 2023 20:18:09 +0000 (20:18 +0000)]
browse/channels: prepare for livestreams, shorts

13 months agobrowse/channels: remove nonfunctional 'oldest' sorting
girst [Sun, 19 Mar 2023 20:18:09 +0000 (20:18 +0000)]
browse/channels: remove nonfunctional 'oldest' sorting

13 months agohackily implement @usernames
girst [Sun, 19 Mar 2023 20:18:09 +0000 (20:18 +0000)]
hackily implement @usernames

13 months agobrowse/channel: fix popular sorting
girst [Sun, 19 Mar 2023 20:18:09 +0000 (20:18 +0000)]
browse/channel: fix popular sorting

don't rely on the fallback to support most popular videos.

13 months agofix (un)pinning/(un)hiding
girst [Sun, 19 Mar 2023 20:18:09 +0000 (20:18 +0000)]
fix (un)pinning/(un)hiding

somehow, this code broke; possibly due to a flask change?

13 months agosearch: stub out "Latest Shorts from <username>" result groups
girst [Sun, 19 Mar 2023 20:18:09 +0000 (20:18 +0000)]
search: stub out "Latest Shorts from <username>" result groups

13 months agofix channel pages
girst [Sun, 19 Mar 2023 20:18:09 +0000 (20:18 +0000)]
fix channel pages

youtube changed some stuff again.

see also: https://github.com/TeamNewPipe/NewPipeExtractor/pull/944

20 months agoyoutube: support /shorts urls
girst [Sun, 14 Aug 2022 22:24:29 +0000 (00:24 +0200)]
youtube: support /shorts urls

minimal version, just redirect to /watch

20 months agoreddit: support shorts urls
girst [Sun, 14 Aug 2022 22:23:22 +0000 (00:23 +0200)]
reddit: support shorts urls

20 months agofix pinning videos for python > 3.6
girst [Fri, 12 Aug 2022 15:58:12 +0000 (17:58 +0200)]
fix pinning videos for python > 3.6

this worked on 3.6/rhel7, but doesn't on 3.9/rhel8

20 months agodon't crash when encountering a new "View corrections" card
girst [Fri, 12 Aug 2022 15:53:43 +0000 (17:53 +0200)]
don't crash when encountering a new "View corrections" card

https://support.google.com/youtube/answer/57404?hl=en
https://www.theverge.com/2022/6/15/23168884/youtube-add-corrections-feature-annotations-creators?scrolla=5eb6d68b7fedc32c19ef33b4

23 months agoallow selecting muxed video quality
girst [Fri, 29 Apr 2022 18:27:51 +0000 (20:27 +0200)]
allow selecting muxed video quality

listing all urls in the <video> element doesn't work (in firefox at
least), so only load highest resolution one by default. we can then just
override that choice when a &itag=XX is present.

2 years agomove inline styles to blueprint sheet
girst [Sun, 3 Apr 2022 15:46:36 +0000 (17:46 +0200)]
move inline styles to blueprint sheet

2 years agouse simple links instead of text-only form submit buttons
girst [Sun, 3 Apr 2022 15:45:28 +0000 (17:45 +0200)]
use simple links instead of text-only form submit buttons

this was done in the past to preserve some url parts, but isn't
necessary now.

2 years agofix "agegate bypass failed" error message
girst [Wed, 30 Mar 2022 13:17:26 +0000 (15:17 +0200)]
fix "agegate bypass failed" error message

TVHTML5* playabilityStatus has only {status, reason}

2 years agoclean up new agegate bypass
girst [Tue, 29 Mar 2022 15:05:51 +0000 (17:05 +0200)]
clean up new agegate bypass

2 years agoport yt-dlp#3233 agegate bypass
girst [Tue, 29 Mar 2022 14:55:53 +0000 (16:55 +0200)]
port yt-dlp#3233 agegate bypass

the change in embedUrl was cargo-culted from there, no idea if needed.

2 years agoencard parser: videoDuration might be absent
girst [Fri, 18 Feb 2022 09:24:49 +0000 (10:24 +0100)]
encard parser: videoDuration might be absent

possibly removed from every VIDEO card, not investigated.

2 years agofix reddit length parsing
girst [Mon, 14 Feb 2022 11:14:26 +0000 (12:14 +0100)]
fix reddit length parsing

- allow first group to be a single digit (e.g. 9:07 or 1:31:26)
- fix obviously wrong labels (e.g. 20:59:00 => 20:59) that occur
  relatively often

2 years agoremove fetch_xml call from browse/playlist
girst [Sun, 13 Feb 2022 16:26:39 +0000 (17:26 +0100)]
remove fetch_xml call from browse/playlist

no need for this, since youtube now apparently returns this information
for us.

2 years agoallow sorting by most popular for fallback route
girst [Sun, 6 Feb 2022 19:50:34 +0000 (20:50 +0100)]
allow sorting by most popular for fallback route

2 years agomake music mix playlists work
girst [Sun, 6 Feb 2022 17:45:36 +0000 (18:45 +0100)]
make music mix playlists work

needs some cleanup

2 years agoremove UC->UU playlist hack
girst [Sun, 6 Feb 2022 15:34:58 +0000 (16:34 +0100)]
remove UC->UU playlist hack

doesn't work on youtube-proper; iirc just cargoculted from invidious

2 years agoimprove reddit video length matching
girst [Wed, 2 Feb 2022 16:13:50 +0000 (17:13 +0100)]
improve reddit video length matching

- strict xx:yy or xx:yy:zz format
- ignore hours if 00 (not 00 minutes)

2 years agoremove 2nd no-url bailout again
girst [Sat, 8 Jan 2022 23:11:44 +0000 (00:11 +0100)]
remove 2nd no-url bailout again

this replaces 18bf5ede; the problem was that without url, the call to
urlparse() would fail. bailing out at this point however breaks
livestreams (and premieres). the real fix is of course to not check for
geolocking if there's no url.

2 years agoonly show 'SOON' badge if video hasn't premiered yet
girst [Sat, 8 Jan 2022 22:54:59 +0000 (23:54 +0100)]
only show 'SOON' badge if video hasn't premiered yet

note: during the livestream phase, the final video length time will
already be shown.

2 years agofinally good /c/ and /user/ matching
girst [Sat, 8 Jan 2022 00:06:36 +0000 (01:06 +0100)]
finally good /c/ and /user/ matching

don't look up both types of channels and return just one, but do the
correct lookup in the first place. no point in doing the fallback lookup
now that i'm fairly certain the lookup does the right thing.

note: using @app.route('/<any(user, c):typ>/<user>/') doesn't work,
probably because it then doesn't override the hardcoded rule in
youtube/.

2 years agoget_video_info: bail out if no stream url is found
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 years 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

Imprint / Impressum