Opened 5 years ago
Last modified 5 years ago
#9552 new defect
Dropping query parameters of url in live m3u8
| Reported by: | Amin Vakil | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | undetermined |
| Version: | 4.4.3 | Keywords: | m3u8 streaming |
| Cc: | Amin Vakil | Blocked By: | |
| Blocking: | Reproduced by developer: | no | |
| Analyzed by developer: | no |
Description
Summary of the bug:
I have a m3u8 which includes (verified by curl)
... stream-1019.ts?foo=bar ...
and server denies if the query parameter has not been set or set incorrectly. Currently ffprobe does not append query parameters retrieved from m3u8 to ts (and key) files and therefore stream cannot be viewed.
How to reproduce:
ffprobe -v debug -i "https://example.org/stream.m3u8?foo=bar"
ffprobe version n4.4.1 Copyright (c) 2007-2021 the FFmpeg developers
built with gcc 11.1.0 (GCC)
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
[NULL @ 0x28258aee400] Opening 'https://example.org/stream.m3u8?foo=bar' for reading
[https @ 0x28258aeec80] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[tcp @ 0x28258af2180] Original list of addresses:
[tcp @ 0x28258af2180] Address 1.1.1.1 port 443
[tcp @ 0x28258af2180] Interleaved list of addresses:
[tcp @ 0x28258af2180] Address 1.1.1.1 port 443
[tcp @ 0x28258af2180] Starting connection attempt to 1.1.1.1 port 443
[tcp @ 0x28258af2180] Successfully connected to 1.1.1.1 port 443
[https @ 0x28258aeec80] request: GET /stream.m3u8?foo=bar HTTP/1.1
User-Agent: Lavf/58.76.100
Accept: */*
Range: bytes=0-
Connection: close
Host: example.org
Icy-MetaData: 1
[hls @ 0x28258aee400] Format hls probed with size=2048 and score=100
[hls @ 0x28258aee400] Skip ('#EXT-X-VERSION:3')
[hls @ 0x28258aee400] HLS request for url 'https://example.org/stream-1033.ts', offset 0, playlist 0
[hls @ 0x28258aee400] Opening 'https://example.org/stream-1030.key' for reading
[tcp @ 0x282590acac0] Original list of addresses:
[tcp @ 0x282590acac0] Address 1.1.1.1 port 443
[tcp @ 0x282590acac0] Interleaved list of addresses:
[tcp @ 0x282590acac0] Address 1.1.1.1 port 443
[tcp @ 0x282590acac0] Starting connection attempt to 1.1.1.1 port 443
[tcp @ 0x282590acac0] Successfully connected to 1.1.1.1 port 443
[https @ 0x282590abb80] request: GET /stream-1030.key HTTP/1.1
User-Agent: Lavf/58.76.100
Accept: */*
Range: bytes=0-
Connection: keep-alive
Host: example.org
Icy-MetaData: 1
[https @ 0x282590abb80] HTTP error 403 Forbidden
Note:
See TracTickets
for help on using tickets.



Please note I don't have this problem on static m3u8 files for static movies. (It appends query parameters correctly)