Skip to content

[youtube] FFmpeg returning 403 with valid cookies #10

@200percentmicky

Description

@200percentmicky

Please describe your problem in as much detail as possible:
FFmpeg is always returning status code 403 and exiting with code 8, even with valid cookies provided in the request using the youtube plugin. Below is a snippet of what my logs are providing. (Guild ID, channel IDs, and IP omitted)

[Client] [Player] [QueueManager] Creating queue for guild: <guild-id>
[Client] [FFMPEG] [test] spawn ffmpeg at 'ffmpeg' path
[Client] [FFMPEG] [test] ffmpeg version: 7.0.2-static
[Client] [Player] [QueueManager] Joining voice channel: <channel-id>
[Client] [Player] [<guild-id>] Playing input: https://youtu.be/Kj-E1TBR90c?si=r72cn7Jwg7FdiM2K
[Client] [Player] [YouTubePlugin] Resolving from url: https://youtu.be/Kj-E1TBR90c?si=r72cn7Jwg7FdiM2K
[Client] [Player] [<guild-id>] Adding song to queue: Carnival Night Zone (Act 1) (Xbox Live Arcade) - Sonic the Hedgehog 3 & Knuckles
[Client] [Player] [<guild-id>] Getting stream from: Carnival Night Zone (Act 1) (Xbox Live Arcade) - Sonic the Hedgehog 3 & Knuckles
[Client] [Player] [DisTubeHandler] Getting stream info: Carnival Night Zone (Act 1) (Xbox Live Arcade) - Sonic the Hedgehog 3 & Knuckles
[Client] [Player] [YouTubePlugin] Getting stream URL: Carnival Night Zone (Act 1) (Xbox Live Arcade) - Sonic the Hedgehog 3 & Knuckles
[Client] [Player] [<guild-id>] Creating DisTubeStream for: Carnival Night Zone (Act 1) (Xbox Live Arcade) - Sonic the Hedgehog 3 & Knuckles
[Client] [Player] [<guild-id>] Started playing: Carnival Night Zone (Act 1) (Xbox Live Arcade) - Sonic the Hedgehog 3 & Knuckles
[Client] [FFMPEG] [<guild-id>] [process] spawn: ffmpeg -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5 -analyzeduration 0 -hide_banner -i https://rr2---sn-5ualdnls.googlevideo.com/videoplayback?expire=1735340165&ei=JdxuZ4D7Hr-A0_wPwpWF8AM&ip=xx.xx.xxx.xxx&id=o-AErgXkSBXq5JDhFoKRKbH1ZSDa1xq0_Klf3srR7DruWS&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1735318565%2C&mh=Oo&mm=31%2C29&mn=sn-5ualdnls%2Csn-5uaezne6&ms=au%2Crdu&mv=m&mvi=2&pl=22&rms=au%2Cau&initcwndbps=296250&siu=1&bui=AfMhrI_euBjXkXYNgTP2yCDnknwaRn-pERTTbT0NUHTTZDzgFNHzDxRXkRKnSV1WNBM3610VOQ&spc=x-caUJnO_lnrd9sfL6d49wXmWcPg0SpQA_UK_m6y9fBurw_9LP4n2oHF1DmUwFm10og5eNNNVkLt&vprv=1&svpuc=1&mime=audio%2Fwebm&ns=ZQp3ZKTp6k3JodgipoH0RW0Q&rqh=1&gir=yes&clen=1989714&dur=115.021&lmt=1734246460018502&mt=1735318162&fvip=2&keepalive=yes&fexp=51326932%2C51335594%2C51353498%2C51355912&c=WEB&sefc=1&txp=6218224&n=ird0hn5RkWbx6g&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIgbmWeFXydWsoz04nyCS26D6aR-I2_r0Yk-l08J9CTBKwCIQDo5MyMW-4lsvHQJma2wB5f_1RqQHWx6ZgZag88zsCyAg%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRgIhAMsAQb7cHt93VfrdLQudExTLxDAKUag3zdD0VoVhtkCHAiEAiV_bxWvdNX6bgNs9PJbkL_tFVk_sslHJHKDG2UoShhI%3D -ar 48000 -ac 2 -f s16le pipe:1
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: [https @ 0x7c66000] 
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: HTTP error 403 Forbidden
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: [in#0 @ 0x7c64b80] 
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: Error opening input: Server returned 403 Forbidden (access denied)
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: Error opening input file https://rr2---sn-5ualdnls.googlevideo.com/videoplayback?expire=1735340165&ei=JdxuZ4D7Hr-A0_wPwpWF8AM&ip=xx.xx.xxx.xxx&id=o-AErgXkSBXq5JDhFoKRKbH1ZSDa1xq0_Klf3srR7DruWS&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1735318565%2C&mh=Oo&mm=31%2C29&mn=sn-5ualdnls%2Csn-5uaezne6&ms=au%2Crdu&mv=m&mvi=2&pl=22&rms=au%2Cau&initcwndbps=296250&siu=1&bui=AfMhrI_euBjXkXYNgTP2yCDnknwaRn-pERTTbT0NUHTTZDzgFNHzDxRXkRKnSV1WNBM3610VOQ&spc=x-caUJnO_lnrd9sfL6d49wXmWcPg0SpQA_UK_m6y9fBurw_9LP4n2oHF1DmUwFm10og5eNNNVkLt&vprv=1&svpuc=1&mime=audio%2Fwebm&ns=ZQp3ZKTp6k3JodgipoH0RW0Q&rqh=1&gir=yes&clen=1989714&dur=115.021&lmt=1734246460018502&mt=1735318162&fvip=2&keepalive=yes&fexp=51326932%2C51335594%2C51353498%2C51355912&c=WEB&sefc=1&txp=6218224&n=ird0hn5RkWbx6g&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&sig=AJfQdSswRQIgbmWeFXydWsoz04nyCS26D6aR-I2_r0Yk-l08J9CTBKwCIQDo5MyMW-4lsvHQJma2wB5f_1RqQHWx6ZgZag88zsCyAg%3D%3D&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRgIhAMsAQb7cHt93VfrdLQudExTLxDAKUag3zdD0VoVhtkCHAiEAiV_bxWvdNX6bgNs9PJbkL_tFVk_sslHJHKDG2UoShhI%3D.
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: Error opening input files: Server returned 403 Forbidden (access denied)
[Client] [FFMPEG] [<guild-id>] [stream] log: stream finished
[Client] [FFMPEG] [<guild-id>] [process] exit: code=8 signal=unknown
[Client] [FFMPEG] [<guild-id>] [process] error: ffmpeg exited with code 8
[Client] [Player] [<guild-id>] Error while playing: DisTubeError [FFMPEG_EXITED]: ffmpeg exited with code 8
    at ChildProcess.<anonymous> (/home/mickykun/ProjectWave/node_modules/distube/dist/index.js:881:26)
    at ChildProcess.emit (node:events:514:28)
    at ChildProcess._handle.onexit (node:internal/child_process:294:12)
[Client] [Player] [<guild-id>] Queue is empty, stopping...
[<guild-id>] End of the queue reached.

Further information:
I'm able to use yt-dlp without issue by passing my cookies directly according to their FAQ. I've even made changes to the yt-dlp plugin to make this possible, and I was able to play tracks with valid cookies this way. Below is also a snippet of the yt-dlp plugin resolving and playing a track. (Guild ID, channel IDs, and IP address omitted)

[Client] [Player] [QueueManager] Creating queue for guild: <guild-id>
[Client] [Player] [QueueManager] Joining voice channel: <channel-id>
[Client] [Player] [<guild-id>] Playing input: https://www.youtube.com/watch?v=Pkbl5Rt4ZIk
[Client] [Player] [YtDlpPlugin] Resolving from url: https://www.youtube.com/watch?v=Pkbl5Rt4ZIk
[Client] [Player] [<guild-id>] Adding song to queue: Rain Forest
[Client] [Player] [<guild-id>] Getting stream from: Rain Forest
[Client] [Player] [DisTubeHandler] Getting stream info: Rain Forest
[Client] [Player] [YtDlpPlugin] Getting stream URL: Rain Forest
[Client] [Player] [<guild-id>] Creating DisTubeStream for: Rain Forest
[Client] [Player] [<guild-id>] Started playing: Rain Forest
[Client] [FFMPEG] [<guild-id>] [process] spawn: ffmpeg -reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5 -analyzeduration 0 -hide_banner -i https://rr5---sn-5uaeznlz.googlevideo.com/videoplayback?expire=1735350844&ei=3AVvZ5OPDYWIy_sPhoCTsQk&ip=xx.xx.xxx.xxx&id=o-AGNB4X5Bosw71Dyv_rXb_iXO5FDoNWHxSVSF-KyWxLq4&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1735329244%2C&mh=0E&mm=31%2C29&mn=sn-5uaeznlz%2Csn-5ualdnse&ms=au%2Crdu&mv=m&mvi=5&pl=22&rms=au%2Cau&gcr=us&initcwndbps=166250&siu=1&bui=AfMhrI-8Qkg2kTlUhi6r41Pj0prLVk1DVX0ZX_BmKJ1khSQhbu3lHoz63v2nKtXXJ63__jETsw&spc=x-caUJCzUc0k-1IDYf1t0uTteGAhcrrgVnxOdvemDo2KUyhFX6Zm_Pa9HYYYhAW8KQ&vprv=1&svpuc=1&mime=audio%2Fwebm&ns=6iYldTwGCdiwA9zIn-OKAcMQ&rqh=1&gir=yes&clen=7854926&dur=448.501&lmt=1714622760979043&mt=1735328717&fvip=5&keepalive=yes&fexp=51326932%2C51335594%2C51353498&c=WEB_CREATOR&sefc=1&txp=2318224&n=Hpdj3NNlW6tupw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRQIgP2fiJudCC2t4v38dsdwbnJbl5TRnV_xWML8xMrIEKEwCIQD4fG0hsJsz1WjV3kLsDMg7nZH8ztcBd8t1PxK9rbI3_Q%3D%3D&sig=AJfQdSswRgIhAKpXctWkEg0JdfIAazcXEuzev_FSNtAmknv1vYKt0HwCAiEA6q25ae1RUQEbxk7z_Gz-Y8lYKYcnYAHdQ9tmM3SfaGY%3D -ar 48000 -ac 2 -f s16le pipe:1
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: Input #0, matroska,webm, from 'https://rr5---sn-5uaeznlz.googlevideo.com/videoplayback?expire=1735350844&ei=3AVvZ5OPDYWIy_sPhoCTsQk&ip=xx.xx.xxx.xxx&id=o-AGNB4X5Bosw71Dyv_rXb_iXO5FDoNWHxSVSF-KyWxLq4&itag=251&source=youtube&requiressl=yes&xpc=EgVo2aDSNQ%3D%3D&met=1735329244%2C&mh=0E&mm=31%2C29&mn=sn-5uaeznlz%2Csn-5ualdnse&ms=au%2Crdu&mv=m&mvi=5&pl=22&rms=au%2Cau&gcr=us&initcwndbps=166250&siu=1&bui=AfMhrI-8Qkg2kTlUhi6r41Pj0prLVk1DVX0ZX_BmKJ1khSQhbu3lHoz63v2nKtXXJ63__jETsw&spc=x-caUJCzUc0k-1IDYf1t0uTteGAhcrrgVnxOdvemDo2KUyhFX6Zm_Pa9HYYYhAW8KQ&vprv=1&svpuc=1&mime=audio%2Fwebm&ns=6iYldTwGCdiwA9zIn-OKAcMQ&rqh=1&gir=yes&clen=7854926&dur=448.501&lmt=1714622760979043&mt=1735328717&fvip=5&keepalive=yes&fexp=51326932%2C51335594%2C51353498&c=WEB_CREATOR&sefc=1&txp=2318224&n=Hpdj3NNlW6tupw&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cxpc%2Cgcr%2Csiu%2Cbui%2Cspc%2Cvprv%2Csvpuc%2Cmime%2Cns%2Crqh%2Cgir%2Cclen%2Cdur%2Clmt&lsparams=met%2Cmh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Crms%2Cinitcwndbps&lsig=AGluJ3MwRQIgP2fiJudCC2t4v38dsdwbnJbl5TRnV_xWML8xMrIEKEwCIQD4fG0hsJsz1WjV3kLsDMg7nZH8ztcBd8t1PxK9rbI3_Q%3D%3D&sig=AJfQdSswRgIhAKpXctWkEg0JdfIAazcXEuzev_FSNtAmknv1vYKt0HwCAiEA6q25ae1RUQEbxk7z_Gz-Y8lYKYcnYAHdQ9tmM3SfaGY%3D':
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:   Metadata:
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:     encoder         : google/video-file
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:   Duration: 00:07:28.50, start: -0.007000, bitrate: 140 kb/s
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:   Stream #0:0(eng): Audio: opus, 48000 Hz, stereo, fltp (default)
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: Stream mapping:
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:   Stream #0:0 -> #0:0 (opus (native) -> pcm_s16le (native))
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: Press [q] to stop, [?] for help
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: Output #0, s16le, to 'pipe:1':
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:   Metadata:
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:     encoder         : Lavf61.1.100
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:   Stream #0:0(eng): Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s (default)
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:       Metadata:
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log:         encoder         : Lavc61.3.100 pcm_s16le
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: size=     501KiB time=00:00:02.86 bitrate=1435.6kbits/s speed=5.72x    
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: size=     501KiB time=00:00:02.86 bitrate=1435.6kbits/s speed=2.86x    
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: size=     629KiB time=00:00:03.54 bitrate=1454.9kbits/s speed=2.36x    
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: size=     756KiB time=00:00:04.22 bitrate=1467.9kbits/s speed=2.11x    
[Client] [FFMPEG] [<guild-id>] [ffmpeg] log: size=     756KiB time=00:00:04.22 bitrate=1467.9kbits/s speed=1.69x
...

EDIT: I also forgot to mention that my playerClients is set to ANDROID and WEB, though the issue still persists no matter what I set it to.

  • DisTube version: 5.0.2
  • discord.js version: 14.16.3
  • Node.js version: 20.8.0
  • Operating system: Ubuntu 22.04.5 LTS

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions