cyfung1031/userscript-supports

[YouTube JS Engine Tamper] Delayed Animating Rolling Number Issue

Closed this issue · 1 comments

Setting related: FIX_avoid_incorrect_video_meta

Related Functions:

  • yt-app.sendServiceAjax_
  • yt-app.getCancellableNetworkPromise_
  • ytd-video-primary-info-renderer.fetchUpdatedMetadata
screen-capture-14-reformatted-html5ified-slowest-000003725-000013524_Zl64F0is.mp4

Need to find a better way to cancel the timer once yt-navigate-start / yt-navigate-cache is triggered.

Currently I just use the url to detect which is not sufficient. (url != watch => bypass)

Fixed in v0.9.0

  • Added FIX_avoid_incorrect_video_meta_emitterBehavior to cancel the previous scheduling
  • added pageSetupState to check the immediate state of page loading when the function is called by the scheduler during that state (use setTimeout to delay the call)
  • added videoPlayingY to obtain the playing video at the time of meta updating (can work in miniview playing)
  • LimitedSizeSet is added so that oldest entries will be removed to avoid overflowing of continuation records
  • added sha1Hex and continuationLog for the message log, if the user is using macOS and latest browser (very fast computer) [as continuation key are so similar; difficult for debug]

  • Added coding for scheduleInitialUpdatedMetadataRequest
  • Rewrote the coding for fetchUpdatedMetadata, sendServiceAjax_, getCancellableNetworkPromise_

There are several mechanisms to co-working together in these 4 functions.

  • immediate state checking (pageSetupState) with delay calling
  • continuation and url matching; store the last key and cache the keys used before.
  • uncertain continuation determined in fetchUpdatedMetadata will be delayed by 8000ms or 800ms to wait for new continuation being sent to fetchUpdatedMetadata in the next call
  • mfvContinuationRecorded and mfyContinuationIgnored for past multiple observed records
  • ... and more