muse icon indicating copy to clipboard operation
muse copied to clipboard

fix: update @distube/ytdl-core to v4.16.12 to resolve YouTube decipher errors

Open BigFatherJesus opened this issue 5 months ago • 4 comments

Summary

  • Updates @distube/ytdl-core from v4.16.10 to v4.16.12
  • Resolves YouTube player script parsing issues that were causing stream URL failures
  • Fixes warnings about decipher function and n transform function parsing

Problem

The bot was experiencing errors when trying to play YouTube content:

WARNING: Could not parse decipher function.
Stream URLs will be missing.
WARNING: Could not parse n transform function.

This was happening because YouTube changed their player scripts, breaking the decipher function parsing in the older version of ytdl-core.

Solution

Updated @distube/ytdl-core to the latest version (4.16.12) which includes updated parsing logic to handle YouTube's recent changes.

Testing

  • ✅ Docker build passes successfully
  • ✅ Package installs without conflicts (used --legacy-peer-deps for compatibility)
  • ✅ Bot functionality restored for YouTube content

Dependencies

  • Updated @distube/ytdl-core from ^4.16.10 to ^4.16.12
  • No breaking changes or API modifications required

Fix done in collaboration with Claude AI.

BigFatherJesus avatar Jul 15 '25 20:07 BigFatherJesus

:package: :robot: A new release has been made for this pull request.

To play around with this PR, pull ghcr.io/museofficial/muse:pr-1278.

Images are available for x86_64 and ARM64.

Latest commit: 61e2571e594888880e21de2604c1227e00683b91

codetheweb avatar Jul 15 '25 20:07 codetheweb

It looks like @distube/ytdl-core is no longer being maintained, and we should switch to youtubei.js.

Foxite avatar Jul 24 '25 20:07 Foxite

already updated to latest version and i still get the same parsing errors

BDT-4248 avatar Nov 14 '25 11:11 BDT-4248

already updated to latest version and i still get the same parsing errors

Also having this issue with both versions.

INSANEREINDEER avatar Nov 28 '25 20:11 INSANEREINDEER