Opened 7 years ago

Closed 7 years ago

#6125 closed defect (wontfix)

some servers refuse to responde for requests with Range header(header set by ffmpeg)

Reported by: remitamine Owned by:
Priority: normal Component: avformat
Version: git-master Keywords: http
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Summary of the bug:
the issue happen for hls videos served by Turner based websites(TBS,TNT,CN,...) when Range header is set by ffmpeg to bytes=0-.
How to reproduce:
info copied from https://github.com/rg3/youtube-dl/issues/11800#issuecomment-275037127
with Range: bytes=0- header:

curl http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2016-12/CARE1011301600016833_HLS/CARE1011301600016833_Layer6_vod.m3u8 -H 'Cookie: hdnea2=expires=1485413964~access=/toon/big/secure/tve/2016-12/CARE1011301600016833_HLS/*~md5=edfa88515c17731bf75b7e5266d357c5' -H 'Range: bytes=0-'
 
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>
 
You don't have permission to access "http&#58;&#47;&#47;androidhls&#45;secure&#46;cdn&#46;turner&#46;com&#47;toon&#47;big&#47;secure&#47;tve&#47;2016&#45;12&#47;CARE1011301600016833&#95;HLS&#47;CARE1011301600016833&#95;Layer6&#95;vod&#46;m3u8" on this server.<P>
Reference&#32;&#35;18&#46;976a1db8&#46;1485328392&#46;9e0aec5a
</BODY>
</HTML>

without Range: bytes=0- header.

curl http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2016-12/CARE1011301600016833_HLS/CARE1011301600016833_Layer6_vod.m3u8 -H 'Cookie: hdnea2=expires=1485413964~access=/toon/big/secure/tve/2016-12/CARE1011301600016833_HLS/*~md5=edfa88515c17731bf75b7e5266d357c5'
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="key4dba0357737a4e6cbb7c78ecd56f2285-0.key",IV=0x00000000000000000000000000000000
#EXTINF:10.01,
CARE1011301600016833_Layer6/10964_Period1/segment0.ts
...

the header used by ffmpeg:

GET /toon/big/secure/tve/2016-12/CARE1011301600016833_HLS/CARE1011301600016833_Layer6_vod.m3u8 HTTP/1.1
Range: bytes=0-
Connection: close
Host: androidhls-secure.cdn.turner.com
Icy-MetaData: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1485413869~access=/toon/big/secure/tve/2016-12/CARE1011301600016833_HLS/*~md5=8d0df7fa9764e26bfe297bcdeb3e9453

i can't provide a url for video as it requires specific cookies to be set(expire after a short time) and it's geo restricted to USA.

Change History (10)

comment:1 by remitamine, 7 years ago

full log of ffmpeg:

ffmpeg -y -v 9 -loglevel 99 -headers 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486288368~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=8ad65515a7d22a1bd4aeb252398dc27d
' -i http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8 -c copy -f mp4 'file:TTG 129-882899.mp4.part'
ffmpeg version 3.2.2 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 6.2.1 (GCC) 20160830
  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  libavutil      55. 34.100 / 55. 34.100
  libavcodec     57. 64.101 / 57. 64.101
  libavformat    57. 56.100 / 57. 56.100
  libavdevice    57.  1.100 / 57.  1.100
  libavfilter     6. 65.100 /  6. 65.100
  libavresample   3.  1.  0 /  3.  1.  0
  libswscale      4.  2.100 /  4.  2.100
  libswresample   2.  3.100 /  2.  3.100
  libpostproc    54.  1.100 / 54.  1.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-headers' ... matched as AVOption 'headers' with argument 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486288368~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=8ad65515a7d22a1bd4aeb252398dc27d
'.
Reading option '-i' ... matched as input url with argument 'http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8'.
Reading option '-c' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'mp4'.
Reading option 'file:TTG 129-882899.mp4.part' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8.
Successfully parsed a group of options.
Opening an input file: http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8.
[http @ 0x55b9f9194240] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[http @ 0x55b9f9194240] request: GET http://androidhls-secure.cdn.turner.com:80/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8 HTTP/1.1
Range: bytes=0-
Connection: close
Host: androidhls-secure.cdn.turner.com
Icy-MetaData: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486288368~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=8ad65515a7d22a1bd4aeb252398dc27d


[http @ 0x55b9f9194240] header='HTTP/1.1 403 Forbidden'
[http @ 0x55b9f9194240] http_code=403
[http @ 0x55b9f9194240] HTTP error 403 Forbidden
http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8: Server returned 403 Forbidden (access denied)

comment:2 by Carl Eugen Hoyos, 7 years ago

Is this issue reproducible with current FFmpeg git head?

comment:3 by remitamine, 7 years ago

i will try to build it and check again.

comment:4 by remitamine, 7 years ago

the same issue current FFmpeg git head(b1e2192007d7026049237c9ab11e05ae71bf4f42).

ffmpeg -y -v 9 -loglevel 99 -headers 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486296416~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=26b7f592131fb398e371069b0e2ea68c
' -i http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8 -c copy -f mp4 'file:TTG 129-882899.mp4.part'
ffmpeg version N-83410-gb1e2192007 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.1 (GCC) 20170109
  configuration: --disable-static --enable-avisynth --enable-avresample --enable-fontconfig --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libfdk-aac --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-nonfree --enable-shared --enable-version3 --enable-x11grab
  WARNING: library configuration mismatch
  avutil      configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avcodec     configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avformat    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avdevice    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avfilter    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avresample  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  swscale     configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  swresample  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  postproc    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  libavutil      55. 46.100 / 55. 34.100
  libavcodec     57. 75.100 / 57. 64.101
  libavformat    57. 66.101 / 57. 56.100
  libavdevice    57.  2.100 / 57.  1.100
  libavfilter     6. 72.100 /  6. 65.100
  libavresample   3.  2.  0 /  3.  1.  0
  libswscale      4.  3.101 /  4.  2.100
  libswresample   2.  4.100 /  2.  3.100
  libpostproc    54.  2.100 / 54.  1.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-headers' ... matched as AVOption 'headers' with argument 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486296416~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=26b7f592131fb398e371069b0e2ea68c
'.
Reading option '-i' ... matched as input url with argument 'http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8'.
Reading option '-c' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'mp4'.
Reading option 'file:TTG 129-882899.mp4.part' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8.
Successfully parsed a group of options.
Opening an input file: http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8.
[http @ 0x1d4b240] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[http @ 0x1d4b240] request: GET http://androidhls-secure.cdn.turner.com:80/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8 HTTP/1.1
Range: bytes=0-
Connection: close
Host: androidhls-secure.cdn.turner.com
Icy-MetaData: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486296416~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=26b7f592131fb398e371069b0e2ea68c


[http @ 0x1d4b240] header='HTTP/1.1 403 Forbidden'
[http @ 0x1d4b240] http_code=403
[http @ 0x1d4b240] HTTP error 403 Forbidden
http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8: Server returned 403 Forbidden (access denied)

comment:5 by Carl Eugen Hoyos, 7 years ago

Does it make a difference if you set end_offset to some (large) value?
I am assuming setting offset makes no difference, does it?

comment:6 by remitamine, 7 years ago

you mean to modify the the Range header to bytes=0-end_offset?

Last edited 7 years ago by remitamine (previous) (diff)

comment:7 by remitamine, 7 years ago

the only case that makes the request work with Range header is set an empty value.

curl -H 'Range: bytes=0-100' http://androidhls-secure.cdn.turner.com:80/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8 --cookie hdnea2=expires=1486299649~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=9fbb29cf7b366f13bf0f081f508ea0bf
<HTML><HEAD>
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>
 
You don't have permission to access "http&#58;&#47;&#47;androidhls&#45;secure&#46;cdn&#46;turner&#46;com&#47;toon&#47;big&#47;secure&#47;tve&#47;2017&#45;01&#47;CARE1001271700019032&#95;HLS&#47;CARE1001271700019032&#95;Layer6&#95;vod&#46;m3u8" on this server.<P>
Reference&#32;&#35;18&#46;ca4d1f45&#46;1486213333&#46;8608d529
</BODY>
</HTML>
curl -H 'Range: ' http://androidhls-secure.cdn.turner.com:80/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8 --cookie hdnea2=expires=1486299649~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=9fbb29cf7b366f13bf0f081f508ea0bf
#EXTM3U
#EXT-X-VERSION:4
#EXT-X-ALLOW-CACHE:YES
#EXT-X-TARGETDURATION:10
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-KEY:METHOD=AES-128,URI="keyb2d2a4a2371745db81fb02d21c919cc0-0.key",IV=0x00000000000000000000000000000000
#EXTINF:10.01,
CARE1001271700019032_Layer6/10984_Period1/segment0.ts
...

comment:8 by Carl Eugen Hoyos, 7 years ago

Before testing the easy solution (setting seekable), could you also test adding (empty) Range: - with a space! - to your custom header?

Last edited 7 years ago by Carl Eugen Hoyos (previous) (diff)

comment:9 by remitamine, 7 years ago

yes, it works with empty Range(with a space).

ffmpeg -y -v 9 -loglevel 99 -headers 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486300705~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=3d18f7195640f7fb2a24bac51c543e9b
Range:  
' -i http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8 -c copy -f mp4 'file:TTG 129-882899.mp4.part'
ffmpeg version N-83410-gb1e2192007 Copyright (c) 2000-2017 the FFmpeg developers
  built with gcc 6.3.1 (GCC) 20170109
  configuration: --disable-static --enable-avisynth --enable-avresample --enable-fontconfig --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libfdk-aac --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-nonfree --enable-shared --enable-version3 --enable-x11grab
  WARNING: library configuration mismatch
  avutil      configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avcodec     configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avformat    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avdevice    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avfilter    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  avresample  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  swscale     configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  swresample  configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  postproc    configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-avisynth --enable-avresample --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libass --enable-libbluray --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxvid --enable-netcdf --enable-shared --enable-version3 --enable-x11grab
  libavutil      55. 46.100 / 55. 34.100
  libavcodec     57. 75.100 / 57. 64.101
  libavformat    57. 66.101 / 57. 56.100
  libavdevice    57.  2.100 / 57.  1.100
  libavfilter     6. 72.100 /  6. 65.100
  libavresample   3.  2.  0 /  3.  1.  0
  libswscale      4.  3.101 /  4.  2.100
  libswresample   2.  4.100 /  2.  3.100
  libpostproc    54.  2.100 / 54.  1.100
Splitting the commandline.
Reading option '-y' ... matched as option 'y' (overwrite output files) with argument '1'.
Reading option '-v' ... matched as option 'v' (set logging level) with argument '9'.
Reading option '-loglevel' ... matched as option 'loglevel' (set logging level) with argument '99'.
Reading option '-headers' ... matched as AVOption 'headers' with argument 'User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486300705~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=3d18f7195640f7fb2a24bac51c543e9b
Range:  
'.
Reading option '-i' ... matched as input url with argument 'http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8'.
Reading option '-c' ... matched as option 'c' (codec name) with argument 'copy'.
Reading option '-f' ... matched as option 'f' (force format) with argument 'mp4'.
Reading option 'file:TTG 129-882899.mp4.part' ... matched as output url.
Finished splitting the commandline.
Parsing a group of options: global .
Applying option y (overwrite output files) with argument 1.
Applying option v (set logging level) with argument 9.
Successfully parsed a group of options.
Parsing a group of options: input url http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8.
Successfully parsed a group of options.
Opening an input file: http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8.
[http @ 0x1fa3240] Setting default whitelist 'http,https,tls,rtp,tcp,udp,crypto,httpproxy'
[http @ 0x1fa3240] request: GET http://androidhls-secure.cdn.turner.com:80/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6_vod.m3u8 HTTP/1.1
Connection: close
Host: androidhls-secure.cdn.turner.com
Icy-MetaData: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486300705~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=3d18f7195640f7fb2a24bac51c543e9b
Range:  


[http @ 0x1fa3240] header='HTTP/1.1 200 OK'
[http @ 0x1fa3240] http_code=200
[http @ 0x1fa3240] header='Server: ngx_openresty'
[http @ 0x1fa3240] header='Content-Type: application/x-mpegurl'
[http @ 0x1fa3240] header='Content-Length: 11789'
[http @ 0x1fa3240] header='Last-Modified: Mon, 30 Jan 2017 12:07:36 GMT'
[http @ 0x1fa3240] header='Accept-Ranges: bytes'
[http @ 0x1fa3240] header='Expires: Sat, 04 Feb 2017 13:18:26 GMT'
[http @ 0x1fa3240] header='Cache-Control: max-age=0, no-cache'
[http @ 0x1fa3240] header='Pragma: no-cache'
[http @ 0x1fa3240] header='Date: Sat, 04 Feb 2017 13:18:26 GMT'
[http @ 0x1fa3240] header='connection: keep-alive'
[http @ 0x1fa3240] header=''
Probing hls,applehttp score:100 size:2048
[hls,applehttp @ 0x1fa2700] Format hls,applehttp probed with size=2048 and score=100
[hls,applehttp @ 0x1fa2700] new_program: id=0x0000
[hls,applehttp @ 0x1fa2700] HLS request for url 'http://androidhls-secure.cdn.turner.com/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6/10984_Period1/segment0.ts', offset 0, playlist 0
[http @ 0x1fc35c0] request: GET http://androidhls-secure.cdn.turner.com:80/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/keyb2d2a4a2371745db81fb02d21c919cc0-0.key HTTP/1.1
Connection: close
Host: androidhls-secure.cdn.turner.com
Icy-MetaData: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486300705~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=3d18f7195640f7fb2a24bac51c543e9b
Range:  


[http @ 0x1fc35c0] header='HTTP/1.1 200 OK'
[http @ 0x1fc35c0] http_code=200
[http @ 0x1fc35c0] header='Server: ngx_openresty'
[http @ 0x1fc35c0] header='Content-Type: text/html'
[http @ 0x1fc35c0] header='Last-Modified: Mon, 30 Jan 2017 12:07:46 GMT'
[http @ 0x1fc35c0] header='Accept-Ranges: bytes'
[http @ 0x1fc35c0] header='Vary: Accept-Encoding'
[http @ 0x1fc35c0] header='Content-Encoding: gzip'
[http @ 0x1fc35c0] header='Content-Length: 37'
[http @ 0x1fc35c0] header='Expires: Sat, 04 Feb 2017 13:18:26 GMT'
[http @ 0x1fc35c0] header='Cache-Control: max-age=0, no-cache'
[http @ 0x1fc35c0] header='Pragma: no-cache'
[http @ 0x1fc35c0] header='Date: Sat, 04 Feb 2017 13:18:26 GMT'
[http @ 0x1fc35c0] header='connection: keep-alive'
[http @ 0x1fc35c0] header=''
[AVIOContext @ 0x1fceda0] Statistics: 16 bytes read, 0 seeks
[http @ 0x1fc3d60] request: GET http://androidhls-secure.cdn.turner.com:80/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/CARE1001271700019032_Layer6/10984_Period1/segment0.ts HTTP/1.1
Connection: close
Host: androidhls-secure.cdn.turner.com
Icy-MetaData: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0) Gecko/20150101 Firefox/47.0 (Chrome)
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: en-us,en;q=0.5
Cookie: hdnea2=expires=1486300705~access=/toon/big/secure/tve/2017-01/CARE1001271700019032_HLS/*~md5=3d18f7195640f7fb2a24bac51c543e9b
Range:  


[http @ 0x1fc3d60] header='HTTP/1.1 200 OK'
[http @ 0x1fc3d60] http_code=200
[http @ 0x1fc3d60] header='Server: ngx_openresty'
[http @ 0x1fc3d60] header='Content-Type: video/mp2t'
[http @ 0x1fc3d60] header='Content-Length: 2261280'
[http @ 0x1fc3d60] header='Last-Modified: Mon, 30 Jan 2017 12:05:58 GMT'
[http @ 0x1fc3d60] header='Accept-Ranges: bytes'
[http @ 0x1fc3d60] header='Cache-Control: max-age=497'
[http @ 0x1fc3d60] header='Expires: Sat, 04 Feb 2017 13:26:44 GMT'
[http @ 0x1fc3d60] header='Date: Sat, 04 Feb 2017 13:18:27 GMT'
[http @ 0x1fc3d60] header='connection: keep-alive'
Last edited 7 years ago by remitamine (previous) (diff)

comment:10 by Carl Eugen Hoyos, 7 years ago

Component: undeterminedavformat
Keywords: http added
Resolution: wontfix
Status: newclosed
Version: unspecifiedgit-master

The alternative is to set seekable to either 0 or 1 which I expect to be the simple solution for youtube-dl.

I am closing this ticket since we want to send the Range: header by default to find out if the server supports seeking, at least two work-arounds exist.

Note: See TracTickets for help on using tickets.