Skip to content
This repository was archived by the owner on Sep 23, 2025. It is now read-only.

bandaids#8

Open
erievs wants to merge 77 commits into
erievs:rewrite-august-2024from
ftde0:main
Open

bandaids#8
erievs wants to merge 77 commits into
erievs:rewrite-august-2024from
ftde0:main

Conversation

@erievs

@erievs erievs commented Nov 6, 2024

Copy link
Copy Markdown
Owner
  • format 18 won't be used if the stream url throws a 403 (thanks, NCP!)
  • improved support for dash <360p pick
  • updated convert-related lines to use magick convert, as of removal of convert from new magick installs. (alter convert.exe to use imagemagick instead. ftde0/yt2009#140)
  • updated cli sorts to also work correctly on mac. (thanks, breakgimme!)
  • improved flag page support for fmode//old browsers. (thanks, RF64!)
  • fixed support for older node versions that were previously supported by yt2009.
  • remove zombies video from homepage (privated)

sorry for lack of updates. irl stuff is in the way.

ftde0 and others added 30 commits November 6, 2024 19:58
- format 18 won't be used if the stream url throws a 403
(thanks, NCP!)
- improved support for dash <360p pick
- updated convert-related lines to use magick convert, as of removal
of convert from new magick installs. (#140)
- updated cli sorts to also work correctly on mac.
(thanks, breakgimme!)
- improved flag page support for fmode//old browsers.
(thanks, RF64!)
- fixed support for older node versions that were previously
supported by yt2009.
- remove zombies video from homepage (privated)

sorry for lack of updates. irl stuff is in the way.
- fixed channel videos requests failing due to yt-side changes.
this caused all channels to show no videos. (thanks, NCP, RF64!)
- added support for lockupviewmodels for channel playlists.
oauth authorization stopped working for WEB and a few other clients.
as much data as possible is now pulled from ANDROID to display
the initial watch page.

the same ANDROID response is now also stored for a short period
to not repeat the request for video downloads.

category is hardcoded to People & Blogs for now if can't be pulled,
to fix whenever i can (prob around next week)
tv oauth loophole was patched out for ANDROID,
disabling playback for most instances on hosting services.

a new authorization method was implemented.
after starting yt2009 - if needed - you'll be asked
to sign in again. after following the onscreen steps
playback should work again.

additionally:
- categories now show properly again.
- viewmodel playlists on channels show properly again.
- /mobile/blzr now shows an HQ button. opens the video in
720p or 480p where available.
- fixed gdata auth not working if tokens aren't set up.
also fixed docker entrypoint for that variable.
(#162 - thanks, hikeri!)
- fixed standardfeeds not responding when no videos
are cached.
(#163 - thanks, CubeFun!)
- set a new default location of the sync server.
- "ac" config entry is now merged.
- fixed shows_tab not showing on search pages and comment_search.
(thanks, BoredWithADHD!)
- removed obsolete code
- fixed html5player replaying when browser doesn't fire
the video "ended" event when it should.
- watchpage will now show the More From tab if no related
videos are sent.
a list of user agent parts was added that will trigger a video reencode
for android apps.
that list can be extended to your needs with a comma separated
"reencode_devs" config entry, or YT2009_REENCODE_DEVS for docker.
- yt2009mobilehelper will be tested on select trusted instances.
- html5player will retry video load if stuck.
- &fmt=18 and &fmt=22 will automatically load HQ/HD if available.
- a "yt_redir" watchpage flag was added that will set youtube links
in video descriptions to redirect to yt2009.
- gdata full channel video count flag is now merged.
- /exp_hd now supports a /lower video id suffix that will redirect to
a lower quality if not available.
/lower is available to use as a gdata flag (/mobile/app_connect.htm)
- a gdata flag "uncrop_avatar" is now available, which will
show the full avatar within the app.
use only if you're facing issues with avatars not being shown in full.
- "Recommended for you" category should now work on legacy IE versions.
the RSS button now also works for that endpoint.
(thanks, RF64!)
- added /wariolandshakeit2008 easter egg. requires flash.
- /feeds/base/standardfeeds, /feeds/base/videos/[id]
and /feeds/base/videos?q=[search]
gdata endpoints are now supported.
- fixed /videos page being able to request up to 1000 videos at once.
the limit is now 50.
- fixed non-default audio tracks being downloaded and used.
(thanks, NCP!)
- added a few files related to mobilehelper. (not out yet!)
- updated security for docker instance hosting
to be honest, i don't have time for features, fixes, testing,
completing and all that. i just want to get this out of the way
for now.
- fixed and updated extractors for search and playlists.
- removed obsolete ytdl-core references.
(thanks, SavunOski!)
- improved coverage for jsongdata.
(partially fixes #202 - thanks, retrofoxxo!)
- uploaded .proto files for documentation purposes.
- added future use html5-related code.
trusted context playback was added to restrict abuse
related to pulling direct MP4 links through yt2009.

disabled by default, can be enabled with "trusted_context"
in config.json, or "YT2009_TRUSTEDCONTEXT" in docker.
accepts a true/false value.

additionally:
- updated downloader's chunk ranges to better reflect
official players.
- fixed #214 (thanks, retrofoxxo!)
- added support for api v1 `youtube.video.list_by_playlist`
- fixed #199 (thanks, gigigigi53!)
- fixed some gdata requests failing with trusted context.
- lowered caching time for new subscription videos.
(thanks, RF64!)
- fixed #217 (thanks, Caloldur!)
- redid use ANDROID for /player for video data fetch.
category may fall back to People & Blogs for the time being.
categories can now be properly displayed again by setting a data api v3 key
with config.data_api_key or YT2009_DATA_API_KEY.

additionally:
- added HTTP / WMV playback for mobile. should enable playback on windows
mobile 2003 through wmp.
HTTP / XVID is now also an option, tested to enable playback on blackberry
devices.
(thanks Szprink for both!)
- added non-javascript-compatible versions of auth and mobile/playback_setup.
- fixed detections of 60/50fps qualities.
- added basic pchelper functionality. pchelper may be prompted on /signin.
- search playlists now respect the autogen_thumbnails flag.
- various minor fixes to pulling data through mobilehelper.
- improved compatibility of pchelper pages with older browsers.
- added /my_videos.
(thanks, RF64 for both!)
- fixed some html watchpages not loading properly as of pchelper
- basic video metadata edits are now possible.
- enabling insight modules on homepage can now work.
- /my_videos_upload can now be tested. file_limit cfg entry is now
also accepted for use with this functionality.

- gdata xml search now supports paging. (thanks, NCP, VictorFilimonov!)
- addressed #221 (thanks, Tanjirokamado12!)
- fixed dash formats (everything other than 360p) not loading.
- playlists should now properly switch on IE.
- mh_pc_manage now supports fallbacks for when IE just decides
to not send custom headers within a request.
(that can apparently happen! thanks, RF64!)
- fixed a minor oversight within the last fix
that could cause videos below 360p could load infinitely
- improved ik encoder to stop mobilehelper signins breaking with
some updates.
- fixed mobilehelper related extraction.
- fixed channel sorts showing incorrect upload dates.
- fixed subscription_sync not extracting all subscriptions.
resync your subscriptions if needed.
(thanks, RF64 for all the above!)
- updated some wording in readme. (#230 - thanks, Pwnz0rserver2009!)
- better play button sprites were added for embeds.
(thanks, BoredWithADHD!)
- updated /feeds/base generators. improves reliability and
accuracy of responses.
- added anti-cache params to HD playback urls. playback of those
should be more reliable on slower networks.
- unplayable videos that return data will have an error shown.
- fixed xss on search page.
- members-only videos are now hidden from channel pages.
- fixed #223 (thanks, retrofoxxo!)
- fixed first related video not getting full viewcounts
due to a minor flaw in data api fallback code. (thanks, rlego!)
- fixed LIVE videos showing in viewmodel related videos.
those caused various issues, such as exp_related breaking
whole page renders. (thanks, vl1!)
as a reminder, you can request a watchpage with &resetcache=1
if caching is still breaking stuff for you.
- data api is now used in some gdata xml feeds to provide more
precise video data. [search, related, channel videos, user activity]
- an "innertube_related" gdata watch flag was added
that sends modern default youtube related for a video.
- fixed pinned comment repeating in viewmodel comment
continuations.
- fixed #242 (thanks, Tanjirokamado12!)

- smoothened behavior of popouts [volume, additions]
- fixed behavior of the showing-endscreen classname.
- endscreen gradients and playbutton sprites will no longer
flicker when hovered.
- fixed a bug where if a video was replayed in an embed
with no_controls_fade it would scale down to behind the controls.
an adaptive_old flag was added globally as an addition
to only_old. it will follow the current date and month
and internally adjust channel and search only_old
to those dates.

this will result in a flow of "new" videos as they
were uploaded in the picked year.

additionally:
- fixed user avatars not showing correctly on some watchpages,
mostly videos by music related channels.
- fixed #249, #250, #259, #260 (huge thanks, sh20000sh!)
- fixed a bug where videos with 0 views could show NaN
in some places.
- non-hd video will now be streamed while downloading
on supported setups.
- fixed statistics & data tab possibly showing future dates
as dates of events happening.
- video url on watchpage was corrected to show the leading "www."
(thanks, RF64!)
- lowered clean watchpage load times by 0.5s on average
- lowered clean channel load times by 1.5s on average
- a "disable_old_banners" channel flag was added that will
not wait for old banner and background on a channel page.
will further reduce loading times by 1s on average.

// [!!] this update will overwrite existing channel caches,
// as the old format is incompatible. backup your cache
// if used to store historical data.
ftde0 added 30 commits December 12, 2025 16:43
a watch_modern_features flag was introduced, which adds following:

- pinned comment indicators
- hearted comment indicators
- a proper quality selector for html5 when hovering over the hd button
(sabr)

^^^
alongside that, a `max_1080` config option was added,
which limits the top quality that can be used.

-------

- mh_pc_intro now conveniently allows for a cookie to be imported
for older browsers.
- cps2.swf thumbnails now also work on channelpages.
(#315 - thanks, sh20000sh for both!)
- improved detection of upload flowtokens. should fix "missed flow data"
errors.
- addressed firefox's consistency of html5 intervals on newer setups.
- fixed location picker not closing.
- fixed some search results not showing due to multiple authors.
- fixed watchpage avatars not showing properly if page loads too fast.
- mh_pc_manage now has buttons for removing and exporting pchelper
cookie.

//priority: medium
//marker: 1.24
- fixed cps2 on channelpages on ie. (#319)
- added playlist continuation on channelpages. (#298)
- playlists can now request more than 100th video
on web (/playlist page, watchpage, channelpage) (#298)

^^ thanks, sh20000sh for those!

- improved reliability of html5 popouts on specific
flag configurations.
- [!] added `EXTRA_RISK_BLOcK` experiment related
to loading videos. shouldn't affect daily usage.
enabled by default.
- [!] added a config.ipv6 option, which accepts a string
being your subnet you can use. (e.g. "2a01:4f8:xxxx:xxxx")
- fixed showing private pchelper playlists
- added `refetch_playlist_watch` on fmode.
- channel community tab images will be converted to PNG
on fmode, fixing them on legacy browsers.

merry christmas (⁀ᗢ⁀)

//priority: medium
//marker: 1.24.1
added recent config settings to docker:
- `dl_max_retry` as `YT2009_DLMAXRETRY`
- `max_1080` as `YT2009_MAX1080`
- `ipv6` as `YT2009_IPV6`

additionally:

- fixed the `comments_remove_future` flag.
- added `config.wyjeba_typu_onesie` (bool)
- fixed livestreams on extrarisk.
- added sabr html5player stuck load retry

happy new year ( ◕▿◕ )

//priority: low
//marker: 1.24.2
- improved responsiveness of seeking through the video
on html5 when sabr is used (thanks, ljcool2006!)
- fixed videos not properly restarting sometimes
when using external media controls on html5 sabr.
- using watchpage-cache player for livestreams
- fixed replies button not showing due to a youtube-side
change (thanks, RF64!)

a proper feature update will need some time,
so pushing some usability bugs/issues fixes for now.

//priority: low
//marker: 1.24.2.1
- improved responsiveness of seeking through the video
on html5 when sabr is used (thanks, ljcool2006!)
- fixed videos not properly restarting sometimes
when using external media controls on html5 sabr.
- using watchpage-cache player for livestreams
- fixed replies button not showing due to a youtube-side
change (thanks, RF64!)

a proper feature update will need some time,
so pushing some usability bugs/issues fixes for now.

//priority: low
//marker: 1.24.2.1
- [!] fixed playback. (rel: #335)

-----

- hour count is properly shown on html5.
- fixed progress bar going off rails when sabr seeking.
- /videos previews now properly respect `autogen_thumbnails`
and `thumbnail_proxy`
- fixed unimplemented modules breaking moving homepage
modules.
- endscreen now shows 4 videos on larger player sizes.
- pchelper notifications are now shown in inbox
- added `unasciify_login`, which lessens restrictions on local
login names.
(thanks Bass Villain for all the above!!)

- quotes are now escaped on homepage link title attribute.
- updated .gitignore to account new assets and `node_modules`.
(thanks ljcool2006 for both!)

- reworked mobilehelper related requests. now load faster.
also fixes "NaN views" on pchelper related without data api key
in some rare cases.
- `/toggle_f` is linked on yt2009flags for convenience.
- `/mh_pc_manage` is linked in yt2009flags and /account
if using pchelper.
- addressed #329 (thanks, maxdou9613-create!)
- endscreen width sizing is accurate to its flash counterpart.
- html5player now supports the &t= video start param.
- html5player quality picker will mark high bitrates
720p and 1080p avc (itag 214 and 216).
- html5player sabr pickr now has an option to pre-enable
`watch_modern_features`.
- comments with `watch_modern_features` now show the full
like count if using data api. (needs resetcache)

//priority: high
//marker: 1.25
this update fixes all channels showing no videos due to
a minor youtube-side change.

//priority: medium
//marker: 1.25.0.1
- flags.includes: #340 (thanks, sh20000sh!)

fixed mentioned above buggy features, additionally:
- raised html5player sabr readahead rates
- fixed(?) pchelper related not loading under rare
cases.
- fixed data api categories

//priority: medium
//marker: 1.25.0.2
a "flag presets" section was added to yt2009flags
to allow quick settings adjustments for specific needs:

- `focus_new` - all new results and videos where possible
- `daily` - performance, new videos, new features
- `oldvids` - old youtube experience without wayback
- `wayback` - wayback machine data where possible + oldvids

additionally:

- watch history elements can now be deleted individually.
- a `show_times` channelpage flag was added that will show
timestamps of videos.
- pchelper recommendations' video timestamps are now shown
on `/videos?r=1`.
- channelpage community section now shows polls.
pchelper-enabled users will have percentages, counts, and
will be able to interact with them as well.
- added further tests for hosting on datacenter ip addresses.
- config.fallbackMode will no longer show a notice
on the homepage.
- on an unsupported config combination, a message will
be shown. instances running unsupported setups will not
receive support.
- instances with a set data api key will have sorting by date
enabled in searches, following platform changes.
- https can now be used in dev.

- fixed channel "profile comments" overflowing on exceedingly
long comments.
- fixed pchelper recommended section sometimes linking
to non-existent channels.
- fixed a double replay button on html5 embeds with sabr.
- fixed sync comments on watchpages not showing in some cases.
- fixed some related videos falling back to a 1:00 timestamp,
following platform changes.
- homepage "recent actvity" tab will now work more reliably
with a data api key set. (thanks, RF64!)

//priority: low
//marker: 1.26
- autoapk will show a deprecation notice. you are heavily
advised to follow `apk_setup.md` which covers all gdata-based
versions supported by yt2009.
- removed the ability for yt2009setup to generate a new prod
instance config without a token requirement.
- fixed an oversight with flag presets breaking the `wayback`
preset button. (thanks, Skittleology!)
- added better compatibility for pchelper voting
on channel polls with fmode. (thanks, RF64!)
- channel community tab "quizzes" are now shown.
- fixed heights of pchelper homepage insight panels.
(thanks, Bass Villain!)
- fixed an internal conflict that could have caused
playback issues after signing in (androidsignin) and not
restarting yt2009.
- bar image charts can now be generated.
- added numerous small feature fixes for line chart
generations.
- added backbone code for a future feature update.
(proto definitions, assets, ...)

//priority: low
//marker: 1.26.1
- [!] a sabr downloader was implemented to address
a (early?) test removing adaptiveFormats urls previously
used to download videos in higher qualities.
this also means ffmpeg is now **required** to download
videos in qualities other than 360p.

a technical limitation of current sabr downloads is that
they will take significantly longer. if possible, this
will be improved upon in the future, but this has to do
for now.

additionally:

- fixed auto-generated captions taking priority on
certain setups.

actual feature update some day. high priority hotfix for now.

//priority: high
//marker: 1.26.1.1
- youtube insight is now available for use with pchelper
logins. accessible from /my_account and /my_videos links.
(special thanks to yolandapz and RF64 for thorough tests!)
- storyboards (video seek thumbnails) are now available
for 2009 flash and html5 players with the `use_storyboards`
flag.
- `with_pchelper=1` watch param can now be used in certain
situations.
- default sabr start quality can now be picked by
right-clicking the desired quality.
- fmode channel playlists now show titles.
(#347 - thanks, sh20000sh!)
- html5player localstorage history will be bumped
on video rewatches.

//priority: low
//marker: 1.27
- fixed a friendtivity oversight on homepage.
- added protoShortcut extractor for broken notifications
innertube responses.
(thanks yolandapz for both!)
- failed data api response no longer break searches.
(#354 - thanks, sh20000sh!)
- fixed livestream watch loads (last update regression)
- added a html5 context menu available for
watch_modern_features users.

//priority: low
//marker: 1.27.0.1
- `video_filter` and `videochannel_filter` global flags were added.
- improved performance of seeking across the video using
arrow keys on sabr.
- watchpage replies can now be collapsed.
- auto-scrolling to current playlist video on watchpage
is now more reliable.
- watchpage "Text Comments" options menu was added,
mixing options available back in 2009 youtube with current
options. (thanks, RF64, sh20000sh!)
- pchelper channel setups can now be previewed live
on sane web browsers.
(thanks, RF64!)
- html5player now features a "copy video url with time"
to co-exist with the current "copy video url" option.
(thanks, rlego!)
- saving and importing flags is now possible to be saved
to your pchelper session. (thanks, stardust657!)

- sabr-enabled with_pchelper=1 watchpages now feature full
quality selection.
- miniResponse watch data now offloads banner processing
to clientside. (adds /minibanner endpoint)
- streamlined sabr /player processing
- improved sabr redirect-only response behavior
- added preparation code for more enforcing config validation
- fixed comment replies on continuations.
- added support for pchelper viewmodel playlists.
(thanks, RF64!)
- fixed pchelper owned video list request fail, causing
`/account` and `/my_videos` pages to load infinitely.
(thanks, stardust657!)
- mobilehelper FEchannels request will no longer hang on
failures. (tracking: #369)

//priority: low
//marker: 1.28
- an `exp_turbocharge` watchpage flag was added.
expect incompatibilities for users with flags
for an "old" experience". others - enjoy :)

- non-pchelper homepage recommendations now properly
follow the `fake_dates` flag setting. (#373)
- /videos-rss properly escapes titles for compatiblity
with stricter readers. (#374)
- fixed /videos paging creating invalid urls on certain
parameter combinations. (#375)
- fixed(?) related videos on some clients. (#356)
(thanks, sh20000sh for those 4 above!)

- fixed a partial auth bypass using internal blazer apis.
(thanks, Szprink!)
- fixed viewmodel channel extraction.
(#371 - thanks, ivandkriddd!)

//priority: medium
//marker: 1.28.1
hotfixes a case where channelpage could show the video length in seconds
instead of being properly formatted.
- a `use_hype_for_homepage` flag was added, enabling modern
videos for the "Featured Videos" and "Most Popular" homepage
tabs. location of content can then be also changed with
the footer's location change link.
- html5player with `watch_modern_features` now implements
common keyboard shortcuts (j, k, l, <, >).
- html5player with `watch_modern_features` now has a speed
adjustment panel, available in the context menu.
- a "Most replayed" chart is now visible under Statistics & Data
for `watch_modern_features` users. (thanks, yolandapz!)
! usage may cause cache refreshes !

- pchelper users can now navigate to their channel just
by clicking on their login username. (thanks, stardust657!)
- fixed auto-dubbed audio tracks being selected by default
for some videos when `exp_turbocharge` is used.
- data api is now used to reverse auto-translations of titles
on playlist pages. (#303 - thanks, sh20000sh!)
- updated video uploading code to better handle large files.
as a reminder, the default 10MB limit can be increased with
`config.file_limit` (or `YT2009_FILE_LIMIT` env)
(thanks, RF64!)
- removed an arbitrary restriction in sabr quality picker
where 1080p and beyond couldn't be selected without the `hd_1080`
flag.
this makes the onboarding picker's "**default** HD to 1080p" text
correct now.
- upgraded internal security of pchelper logins.
no action needs to be taken from users with connected accounts.
- fixed flag tooltips not changing on flag labels on language
changes. (#378 - thanks, QtKaitly!)

//priority: low
///marker: 1.29
- fixed viewmodel channel extraction.
(viewcounts, members-only videos filtering, dates.
thanks, RF64, sh20000sh!)
- fixed relative date formatting for search and non-pchelper
recommended sections.
- fixed individual channel loading on subscriptions tab.
- fixed a longtime CSS bug causing thumbnails to go off
borders on userpages (subscriptions, history, favorites, ...)
(thanks, RF64 for both!)
- removed a broken video from precoded homepage list.

other reported bugs have been acknowledged and will be fixed
at a later time.

//priority: high
//marker: 1.29.0.1
- fixed html5 sabr resetting to 00:00 on crash reinits.
- moved some pchelper management code to serverside, hopefully
fixing some odd browser issues.
(thanks, RF64!)
- a `exp_turbocharge_sabr_hfr` watchpage flag was added,
that enables better high quality selection on html5player
using a combination of exp_turbocharge and sabr enabled,
particuarly on newer videos. (#386 - thanks, sh20000sh!)
- a `html5_transcript` watchpage flag was added.
- revamped rate counting code for watchpage.
- fixed comment time skip buttons not working properly
on videos over an hour long.

//priority: low
//marker: 1.29.1
- sabr will automatically be enabled on XL html5 player
when available. add a sabr=0 param to the url to disable.
- livestreams use SABR now. (fixes infinite loading)
- applied #383 (thanks, JimboGio!)

//priority: low
//marker: 1.29.1.1
- [!] fixed SABR playback. (rel: #395 - thanks, sh20000sh!)

- yt2009m (v6-v11) has been marked as deprecated.
- removed autoapk after a long deprecation period.
- fixed loading of channelpages with specific characters
that were mistakenly used to attempt pchelper parsing.
(thanks, quobe!)
- added faststart flag for sabr downloader.
(tracking #393)
- html5player with `watch_modern_features` now implements
`0-9` keyboard shortcuts.
- fixed comment continuation on fresh video loads
when `exp_turbocharge` is used.
- fixed a last update regression restoring an `exp_turbocharge`
bug with incorrect audio selection.
- yt2009 will warn when ffmpeg and magick binaries were incorrectly
placed **literally** in the same path as yt2009.
- fixed non-sabr 360p media not playing in full on Goanna-based
browsers. (thanks, quobe!)
- fixed `iv_load_policy` for flash annotations. (thanks, imino!)
- enabled SABR for windows XP (node v5) hosts.
(also unlocks qualities beyond 360p on those)
- improved quality of performing comment actions with pchelper.
(ratings, replies)
- fixed `exp_turbocharge` comments not showing hearts and pinned
notifications with `watch_modern_features`
- a `enable_comment_avatars` watchpage flag was added.
(thanks, Gracesion!)
- fixed `exp_turbocharge_sabr_hfr` wrongly covering volume
with a non-functional HD button for videos with very specific
quality selection.
- added a /my_profile redirect to work with original userpage HTML.
(thanks, RF64!)

a few things were meant to be tested and added as well (like #381)
but playback breakage turned this into a high-priority ASAP release.
happens.

//priority: high
//marker: 1.30
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants