I apologise for my "broken" method, it's been a while since I've downloaded off Plus7, I just assumed the script still produced correct output. I tried it again for myself and it worked fine with no 403 errors.
Code:
ffmpeg -i "https://secure.brightcove.com/services/mobile/streaming/index/rendition.m3u8?assetId=4653030887001&expiration=1459933920000&token=399241f6724a42cff3e3ebd2c6329f747d7569b6" -c copy All_Saints__Season_1__episode_46.ts
ffmpeg version N-77715-gfc703f5 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 12.100 / 55. 12.100
libavcodec 57. 21.100 / 57. 21.100
libavformat 57. 21.101 / 57. 21.101
libavdevice 57. 0.100 / 57. 0.100
libavfilter 6. 23.100 / 6. 23.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, hls,applehttp, from 'https://secure.brightcove.com/services/mobile/streaming/index/rendition.m3u8?assetId=4653030887001&expiration=1459933920000&token=399241f6724a42cff3e3ebd2c6329f747d7569b6':
Duration: 00:45:24.00, start: 9.945333, bitrate: 0 kb/s
Program 0
Metadata:
variant_bitrate : 0
Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 190 kb/s
Output #0, mpegts, to 'All_Saints__Season_1__episode_46.ts':
Metadata:
encoder : Lavf57.21.101
Stream #0:0: Video: h264 ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 90k tbc
Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, 190 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=68090 fps=369 q=-1.0 Lsize= 593767kB time=00:45:23.66 bitrate=1785.9kbits/s speed=14.8x
video:498566kB audio:43429kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 9.552109%
Anyway, I tested with youtube-dl as well and it works fine for me and downloads in whole.
You guys are probably region restricted or something because Plus7 is intended for Australian viewers.
Code:
youtube-dl "https://au.tv.yahoo.com/plus7/all-saints-season-1/-/watch/27065009/all-saints-season-1-episode-46/#page1"
[generic] #page1: Requesting header
WARNING: Falling back on generic information extractor.
[generic] #page1: Downloading webpage
[generic] #page1: Extracting information
[generic] Brightcove video detected.
[download] Downloading playlist: Watch All Saints: Season 1, episode 46 - Yahoo7
[generic] playlist Watch All Saints: Season 1, episode 46 - Yahoo7: Collected 1 video ids (downloading 1 of them)
[download] Downloading video 1 of 1
[brightcove:legacy] ref:27065009: Downloading webpage
[brightcove:legacy] ref:27065009: Extracting information
[download] Destination: All Saints - Season 1, episode 46-4652682300001.mp4
ffmpeg version N-77715-gfc703f5 Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.2.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libdcadec --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil 55. 12.100 / 55. 12.100
libavcodec 57. 21.100 / 57. 21.100
libavformat 57. 21.101 / 57. 21.101
libavdevice 57. 0.100 / 57. 0.100
libavfilter 6. 23.100 / 6. 23.100
libswscale 4. 0.100 / 4. 0.100
libswresample 2. 0.101 / 2. 0.101
libpostproc 54. 0.100 / 54. 0.100
Input #0, hls,applehttp, from 'https://secure.brightcove.com/services/mobile/streaming/index/rendition.m3u8?assetId=4653030887001&expiration=1459933500000&token=77b461ba3bfe1dbaa582d1a2f445632b2ce9a461':
Duration: 00:45:24.00, start: 9.945333, bitrate: 0 kb/s
Program 0
Metadata:
variant_bitrate : 0
Stream #0:0: Video: h264 (Main) ([27][0][0][0] / 0x001B), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 25 fps, 25 tbr, 90k tbn, 50 tbc
Stream #0:1: Audio: aac (LC) ([15][0][0][0] / 0x000F), 48000 Hz, stereo, fltp, 190 kb/s
[mp4 @ 06028b40] Codec for stream 0 does not use global headers but container format requires global headers
[mp4 @ 06028b40] Codec for stream 1 does not use global headers but container format requires global headers
Output #0, mp4, to 'file:All Saints - Season 1, episode 46-4652682300001.mp4.part':
Metadata:
encoder : Lavf57.21.101
Stream #0:0: Video: h264 ([33][0][0][0] / 0x0021), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], q=2-31, 25 fps, 25 tbr, 90k tbn, 90k tbc
Stream #0:1: Audio: aac (LC) ([64][0][0][0] / 0x0040), 48000 Hz, stereo, 190 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (copy)
Stream #0:1 -> #0:1 (copy)
Press [q] to stop, [?] for help
frame=68090 fps=250 q=-1.0 Lsize= 542625kB time=00:45:23.66 bitrate=1632.1kbits/s speed= 10x
video:498566kB audio:42556kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.277707%
[ffmpeg] Downloaded 555648166 bytes
[download] 100% of 529.91MiB
[download] Finished downloading playlist: Watch All Saints: Season 1, episode 46 - Yahoo7