Skip to content

OnePick v2.4.74

Choose a tag to compare

@HughRyu HughRyu released this 14 Sep 12:48
· 46 commits to main since this release

X/Twitter authentication and cancellation fixes

  • Fix the root cause of authorized sensitive-post failures: explicitly use native Twitter GraphQL when account cookies are configured, rather than allowing the syndication extractor option to override authenticated results. Anonymous metadata adapters remain the first, cookie-free path.
  • Use a separate, temporary 0600 cookie jar for each native X parse/download attempt, containing only x.com/twitter.com domains. Never send account cookies to anonymous metadata services; preserve the master cookie file and clean up temporary copies on success and failure.
  • Bound subprocess cancellation: terminate yt-dlp and descendant processes on disconnect, timeout, or output limits, and wait for process close before deleting temporary files. Pass cancellation through probing, remuxing, transcoding, and response streaming.
  • Give X downloads a shared 300-second yt-dlp budget across proxy attempts, retain 120 seconds for other platforms, and limit concurrent X download processing to two. The streaming lifecycle has a separate 600-second deadline; these are not a single end-to-end guarantee.
  • Add cookie isolation/concurrency and real subprocess lifecycle regression tests.

Verification and limitations

Full local test suites passed in both private and clean public trees, including container runs. Production dependency audit passed the high-severity gate; four existing moderate advisories remain.

Pre-release HTTP verification of the matching fix source downloaded an authorized sensitive X video (219,021,875 bytes, approximately 112 seconds) and an ordinary video (approximately 3.9 MB, 15 seconds). Client-disconnect cancellation completed in approximately 5.7 seconds with no temporary cookie jars left behind.

Long synchronous requests remain subject to iOS Shortcuts/mobile-client and intermediary timeout limits. HTTP verification does not establish success on every mobile device. This release does not introduce background download jobs or remove those client limits.