Opened 2 years ago

Last modified 2 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

Change History (2)

comment:1 by Amin Vakil, 2 years ago

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

comment:2 by Amin Vakil, 2 years ago

I've just verified the live m3u8 works on MXPlayer Android.

Note: See TracTickets for help on using tickets.