Commit Graph

355 Commits (pull/30733/head)

Author SHA1 Message Date
Sergey M․ a9ee4f6e49
[downloader/hls] Fix total fragments count when ad fragments exist 8 years ago
Sergey M․ 74c42d9ec3
[downloader/hls] Ignore anvato ad fragments (closes #14496) 8 years ago
Sergey M․ 5efaf43c93
[downloader/fragment] Output ad fragment count 8 years ago
Sergey M․ e7c3e33456
[downloader/fragment] Restart inconsistent incomplete fragment downloads (#13731) 8 years ago
Sergey M․ a3c3a1e128
[http] Rework HTTP downloader
* Simplify code and split into separate routines to facilitate maintaining
* Make retry mechanism work on errors during actual download not only during connection establishment phase
* Retry on ECONNRESET and ETIMEDOUT during reading data from network
* Retry on content too short and various timeout errors
* Show error description on retry
* Closes #506, closes #809, closes #2849, closes #4240, closes #6023, closes #8625, closes #9483
8 years ago
Sergey M․ 1141e9104b
Use relative paths for DASH fragments (closes #12990)
10x reduced JSON size
refs #13810
8 years ago
Sergey M․ c5a49ff084
[downloader/hls] Use redirect URL as manifest base (#13755) 8 years ago
Robin Neatherway 2583c0b54e Fix bugs caused by typos 8 years ago
Sergey M․ 1433734c35
[downloader/common] Use utils.shell_quote for debug command line 8 years ago
Sergey M․ a609e61a90
[downloader/external] Pass -loglevel to ffmpeg downloader (closes #13183) 8 years ago
Sergey M․ 50534b7158
[downloader/fragment] PEP 8 8 years ago
Sergey M․ e7db6759e4
[downloader/external] Properly handle live stream downloading cancellation (closes #8932) 8 years ago
Sergey M․ c0fa4245ce
[downloader/fragment] Remove assert for resume_len when no fragments downloaded
This may be incorrect due some header (e.g. flv header in f4m downloader)
8 years ago
Sergey M․ 85f6de25e4
[downloader/fragment] Clarify current_fragment's index and mark as experimental 8 years ago
Sergey M․ 290f64dbaa
[downloader/fragment] Improve .ytdl format and start documenting 8 years ago
Sergey M․ adb4b03cd5
[downloader/fragment] Don't process ytdl file when it's not needed yet 8 years ago
Sergey M․ 0eee52f34b
Introduce --keep-fragments 8 years ago
Sergey M․ d3f0687cf7
[downloader/fragment] Use temp file for current fragment 8 years ago
Remita Amine 4abdba643c [downloader/fragment] remove unused code 8 years ago
Remita Amine 3e0304fe6e [downloader/fragment] use the documented names for fragment progress_hooks fields 8 years ago
Remita Amine ea0c2f219c [downloader/fragment] use a general file to store fragment download context 8 years ago
Remita Amine 75a2485407 [fragment,hls,f4m,dash,ism] improve fragment downloading
- resume immediately
- no need to concatenate segments and decrypt them on every resume
- no need to save temp files for segments

and for hls downloader:
- no need to download keys for segments that already downloaded
8 years ago
Remita Amine f59746372a [downloader/hls] add basic support for EXT-X-BYTERANGE tag(#10955) 8 years ago
Remita Amine 40fcba5edb improve coding style 8 years ago
Remita Amine 2bfaf89b6c [downloader/hls] move check for m3u8 live streams to get_suitable_downloader 8 years ago
Remita Amine fb4fc44928 [downloader/hls] immediately delegate downloading to ffmpeg in case live stream 8 years ago
Sergey M․ a50862b735
[downloader/external] Add missing import and PEP8 9 years ago
John Hawkinson 6d0fe752bf [external:ffmpeg] In test harness, limit to 10k download size
Otherwise, if you screw up a playlist test by including a playlist
dictionary key, you'll be there for eons while it downloads all the
files before erroring out.
9 years ago
Pratyush Singh d374d943f3
[downloader/common] Limit displaying 2 digits after decimal point in sleep interval message 9 years ago
Sergey M․ de64e23c56
[downloader/ism] Honor HTTP headers when downloading fragments 9 years ago
Sergey M․ 553f6dbac7
[downloader/dash] Honor HTTP headers when downloading fragments
For example, https://www.oppetarkiv.se/video/1196142/natten-ar-dagens-mor
9 years ago
Remita Amine be670b8e8f [external:ffmpeg] do not assume that ffmpeg unknown version format is new 9 years ago
Sergey M․ 7097bffba6
[downloader/fragment] Respect --no-part 9 years ago
Remita Amine 36fce54816 [turner] fix downloading of secure hls formats using ffmpeg(closes #11358)(closes #11373)(closes #11800) 9 years ago
Remita Amine 8bdc149441 [downloader/external:ffmpeg] minimize the use of aac_adtstoasc filter 9 years ago
Remita Amine bfa1073e11 [uplynk] force downloading using hls native downloader(closes #11496) 9 years ago
Yen Chi Hsuan 582be35847
Update coding style after pycodestyle 2.1.0
In pycodestyle 2.1.0, E305 was introduced, which requires two blank
lines after top level declarations, too.

See https://github.com/PyCQA/pycodestyle/issues/400

See also #10689; thanks @stepshal for first mentioning this issue and
initial patches
9 years ago
Sergey M․ 690355551c
[downoader/fragment,f4m,hls] Add internal support for custom HTTP headers 9 years ago
Sergey M․ 9d64e1dcdc
[downloader/ism] Fix typo 9 years ago
Remita Amine 10380e55de [downloader/ism] fix AVC Decoder Configuration Record creation in python 3 9 years ago
Remita Amine b2758123c5 add Basic support for Smooth Streaming protocol(#8118) 9 years ago
Sergey M․ bcd6276520
[downloader/common] Remove debug output 9 years ago
Yen Chi Hsuan d54739a2e6
[downloader/http] xattr values should be bytes 9 years ago
Yen Chi Hsuan d7753d1948
[downloader/http] Use write_xattr function for --xattr-set-filesize 9 years ago
Remita Amine 6f126d903f [download/hls] Delegate downloading to ffmpeg for live streams 9 years ago
Sergey M․ 86f4d14f81
Refactor fragments interface and dash segments downloader
- Eliminate segment_urls and initialization_url
+ Introduce manifest_url (manifest may contain unfragmented data in this case url will be used for direct media URL and manifest_url for manifest itself correspondingly)
* Rewrite dashsegments downloader to use fragments data
* Improve generic mpd extraction
9 years ago
Yen Chi Hsuan 919cf1a62f
[downloader/dash] Abort if the first segment fails
Closes #10497, Closes #10542
9 years ago
Sergey M․ 4a69fa04e0
[downloader/dash] Abort download immediately after giving up on some fragment 9 years ago
Sergey M․ 2e99cd30c3
[downloader/dash:hls] Report exact fragment error on retry 9 years ago
Sergey M․ 25afc2a783
[downloader/dash:hls] Respect --fragment-retries and --skip-unavailable-fragments (Closes #10165, closes #10448) 9 years ago
Sergey M․ 9603b66012
Introduce --skip-unavailable-fragments 9 years ago
Yen Chi Hsuan 6c9b71bc08
[downloader/external] Recommend --hls-prefer-native for SOCKS users
Related: #10490
9 years ago
Remita Amine b8079a40bc [turner] fix secure m3u8 formats downloading 9 years ago
Yen Chi Hsuan 20bad91d76
[downloader/external] Clarify that ffmpeg doesn't support SOCKS
Ref: #10304
9 years ago
Remita Amine 07ea9c9b05 [downloader/hls] fill IV with zeros for IVs shorter than 16-octet 9 years ago
Remita Amine aaf44a2f47 [uplynk] Add new extractor 9 years ago
Remita Amine acfccacad5 [downloader/external:curl] Clarify why CurlFD should not capture stderr 9 years ago
Remita Amine 98e698f1ff [external/curl] respect more downloader options and display progress 9 years ago
Sergey M․ 1ad6b891b2
Add more checks for --min/max-sleep-interval arguments and use more idiomatic naming 9 years ago
singh-pratyush96 065bc35489
Add --max-sleep-interval (Closes #9930) 9 years ago
Yen Chi Hsuan 477b7a8474
[downloader/f4m] Fix for Rai live streams 9 years ago
Sergey M․ 8369a4fe76
[downloader/hls] Simplify and carry long lines 9 years ago
remitamine e154c65128 [downloader/hls] Add support for AES-128 encrypted segments in hlsnative downloader 9 years ago
Sergey M․ e69f9f5d68
[downloader/external] Decode error string before writing to stderr 9 years ago
Yen Chi Hsuan 50ce1c331c
[downloader/external] Add another env for proxies in ffmpeg/avconv
Related sources:
https://git.libav.org/?p=libav.git;a=blob;f=libavformat/http.c;h=8fe8d11e1edfdbb04a8726db2c49cfef3f572aac;hb=HEAD#l152
https://git.libav.org/?p=libav.git;a=blob;f=libavformat/tls.c;h=fab243e93e20034e88e619188c13a44a5d8ccdb9;hb=HEAD#l63
https://github.com/FFmpeg/FFmpeg/blob/f8e89d8/libavformat/http.c#L191
https://github.com/FFmpeg/FFmpeg/blob/f8e89d8/libavformat/tls.c#L92
9 years ago
Sergey M․ 633b444fd2
[downloader/hls] Correct comment on twitch vods 9 years ago
Sergey M․ 51c4d85ce7
[downloader/hls] PEP 8 9 years ago
Sergey M․ 1e236d7e23
[downloader/hls] Do not rely on EXT-X-PLAYLIST-TYPE:EVENT 9 years ago
Sergey M․ 2615fa7584
[downloader/f4m] Simply select format when it's the only one 9 years ago
Yen Chi Hsuan 1b405bb47d
[downloader/f4m] Tolerate truncate segments when testing
Replaces #9216

Fixes #9214 and test_Bloomberg partially
9 years ago
Yen Chi Hsuan edaa23f822
[compat] Rename struct_(un)pack to compat_struct_(un)pack 9 years ago
Yen Chi Hsuan dab0daeeb0
[utils,compat] Move struct_pack and struct_unpack to compat.py 9 years ago
Sergey M․ 2937590e8b
[downloader/hls] PEP 8 9 years ago
Sergey M․ e62d9c5caa
[downloader/external] Call ffmpeg with with HTTP_PROXY env variable set (#9437) 9 years ago
Sergey M․ 6104cc2985
[downloader/hls] Add event media playlists to unsupported features of hlsnative 9 years ago
Sergey M․ c15c47d19b
[downloader/hls] Remove EXT-X-MEDIA-SEQUENCE from unsupported features for hlsnative 9 years ago
Sergey M eb785b856f Merge pull request #9358 from dstftw/hls-native-to-ffmpeg-delegation
[downloader/hls] Delegate extraction to ffmpeg when unsupported features detected
9 years ago
Sergey M․ f5436c5d9e
[downloader/external] Add temp fix ffmpeg m3u8 downloads (Closes #9394) 9 years ago
Sergey M․ 0d66bd0eab
[downloader/hls] Delegate extraction to ffmpeg when unsupported features detected 9 years ago
Sergey M․ bf09af3acb
Add --hls-prefer-ffmpeg 9 years ago
remitamine d868f43c58 [ffmpeg] check for - file name in _ffmpeg_filename_argument 9 years ago
remitamine ce599d5a7e [downloader/external] enable piping for FFmpegFD(closes #2124) 9 years ago
Yen Chi Hsuan f5d8743e0a
[downloader/rtsp] Print the command 9 years ago
Sergey M․ f7df343b4a [downloader/f4m] Extract routine for removing unsupported encrypted media 10 years ago
Sergey M․ 16a8b7986b [downloader/fragment] Document fragment_retries 10 years ago
Sergey M․ 617e58d850 [downloader/{common,fragment}] Fix total retries reporting on python 2.6 10 years ago
Sergey M․ e33baba0dd [downloader/dash] Add fragment retry capability
YouTube may often return 404 HTTP error for a fragment causing the
whole download to fail. However if the same fragment is immediately
retried with the same request data this usually succeeds (1-2 attemps
is usually enough) thus allowing to download the whole file successfully.
So, we will retry all fragments that fail with 404 HTTP error for now.
10 years ago
Sergey M․ 721f26b821 [downloader/fragment] Add report_retry_fragment 10 years ago
remitamine 4230c4894d [external/downloader] fix rtmp downloading using FFmpegFD 10 years ago
remitamine 2e7e561c1d Merge pull request #8611 from remitamine/ffmpegfd
[downloader/external] Add FFmpegFD
10 years ago
remitamine d8515fd41c [downloader/external] pass configuration args to ffmpeg 10 years ago
remitamine 694c47b261 [external/downloader] don't pass -t and -ss to ffmpeg 10 years ago
remitamine 77dea16ac8 [downloader/external] check for ffmpeg availablity when it used for m3u8 download 10 years ago
remitamine 6ae27bed01 [download/external] move the check for multiple selected formats to get_suitable_downloader 10 years ago
remitamine da1973a038 [extractor/__init__] disable time range downloading 10 years ago
remitamine be24916a7f [downloader/rtsp] Add rtsp and mms downloader 10 years ago
remitamine 2cb99ebbd0 [downloader/external] add can_download mathod for checking downloader availibilty and support 10 years ago
remitamine 91ee320bfa [downloader/external] wrap available_opt in a list 10 years ago
remitamine 634415ca17 [downloader/external] skip FFmpegFD when requesting multiple formats 10 years ago
remitamine a755f82549 [ffmpeg] convert format ext to ffmpeg output formats codes 10 years ago