Commit Graph

369 Commits (d8f134a664d7be2c10aba44fc2d54a8f7b0542ff)

Author SHA1 Message Date
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
8 years ago
Sergey M․ 690355551c
[downoader/fragment,f4m,hls] Add internal support for custom HTTP headers 8 years ago
Sergey M․ 9d64e1dcdc
[downloader/ism] Fix typo 8 years ago
Remita Amine 10380e55de [downloader/ism] fix AVC Decoder Configuration Record creation in python 3 8 years ago
Remita Amine b2758123c5 add Basic support for Smooth Streaming protocol(#8118) 8 years ago
Sergey M․ bcd6276520
[downloader/common] Remove debug output 8 years ago
Yen Chi Hsuan d54739a2e6
[downloader/http] xattr values should be bytes 8 years ago
Yen Chi Hsuan d7753d1948
[downloader/http] Use write_xattr function for --xattr-set-filesize 8 years ago
Remita Amine 6f126d903f [download/hls] Delegate downloading to ffmpeg for live streams 8 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
8 years ago
Yen Chi Hsuan 919cf1a62f
[downloader/dash] Abort if the first segment fails
Closes #10497, Closes #10542
8 years ago
Sergey M․ 4a69fa04e0
[downloader/dash] Abort download immediately after giving up on some fragment 8 years ago
Sergey M․ 2e99cd30c3
[downloader/dash:hls] Report exact fragment error on retry 8 years ago
Sergey M․ 25afc2a783
[downloader/dash:hls] Respect --fragment-retries and --skip-unavailable-fragments (Closes #10165, closes #10448) 8 years ago
Sergey M․ 9603b66012
Introduce --skip-unavailable-fragments 8 years ago
Yen Chi Hsuan 6c9b71bc08
[downloader/external] Recommend --hls-prefer-native for SOCKS users
Related: #10490
8 years ago
Remita Amine b8079a40bc [turner] fix secure m3u8 formats downloading 8 years ago
Yen Chi Hsuan 20bad91d76
[downloader/external] Clarify that ffmpeg doesn't support SOCKS
Ref: #10304
8 years ago
Remita Amine 07ea9c9b05 [downloader/hls] fill IV with zeros for IVs shorter than 16-octet 8 years ago
Remita Amine aaf44a2f47 [uplynk] Add new extractor 8 years ago
Remita Amine acfccacad5 [downloader/external:curl] Clarify why CurlFD should not capture stderr 8 years ago
Remita Amine 98e698f1ff [external/curl] respect more downloader options and display progress 8 years ago
Sergey M․ 1ad6b891b2
Add more checks for --min/max-sleep-interval arguments and use more idiomatic naming 8 years ago
singh-pratyush96 065bc35489
Add --max-sleep-interval (Closes #9930) 8 years ago
Yen Chi Hsuan 477b7a8474
[downloader/f4m] Fix for Rai live streams 8 years ago
Sergey M․ 8369a4fe76
[downloader/hls] Simplify and carry long lines 8 years ago
remitamine e154c65128 [downloader/hls] Add support for AES-128 encrypted segments in hlsnative downloader 8 years ago
Sergey M․ e69f9f5d68
[downloader/external] Decode error string before writing to stderr 8 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
8 years ago
Sergey M․ 633b444fd2
[downloader/hls] Correct comment on twitch vods 8 years ago
Sergey M․ 51c4d85ce7
[downloader/hls] PEP 8 8 years ago
Sergey M․ 1e236d7e23
[downloader/hls] Do not rely on EXT-X-PLAYLIST-TYPE:EVENT 8 years ago
Sergey M․ 2615fa7584
[downloader/f4m] Simply select format when it's the only one 8 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 9 years ago
Sergey M․ 16a8b7986b [downloader/fragment] Document fragment_retries 9 years ago
Sergey M․ 617e58d850 [downloader/{common,fragment}] Fix total retries reporting on python 2.6 9 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.
9 years ago
Sergey M․ 721f26b821 [downloader/fragment] Add report_retry_fragment 9 years ago
remitamine 4230c4894d [external/downloader] fix rtmp downloading using FFmpegFD 9 years ago
remitamine 2e7e561c1d Merge pull request #8611 from remitamine/ffmpegfd
[downloader/external] Add FFmpegFD
9 years ago
remitamine d8515fd41c [downloader/external] pass configuration args to ffmpeg 9 years ago
remitamine 694c47b261 [external/downloader] don't pass -t and -ss to ffmpeg 9 years ago
remitamine 77dea16ac8 [downloader/external] check for ffmpeg availablity when it used for m3u8 download 9 years ago
remitamine 6ae27bed01 [download/external] move the check for multiple selected formats to get_suitable_downloader 9 years ago
remitamine da1973a038 [extractor/__init__] disable time range downloading 9 years ago
remitamine be24916a7f [downloader/rtsp] Add rtsp and mms downloader 9 years ago
remitamine 2cb99ebbd0 [downloader/external] add can_download mathod for checking downloader availibilty and support 9 years ago
remitamine 91ee320bfa [downloader/external] wrap available_opt in a list 9 years ago
remitamine 634415ca17 [downloader/external] skip FFmpegFD when requesting multiple formats 9 years ago
remitamine a755f82549 [ffmpeg] convert format ext to ffmpeg output formats codes 9 years ago
Sergey M․ 1b5284b13f [downloader/fragment] Make speed more smooth
At the beginning of every segment there was a drop to Unknown speed due to timeslice being too small to calculate speed.
Now last speed from the previous fragment is used.
9 years ago
Yen Chi Hsuan e9c0cdd389 [jython] Introduce compat_os_name
os.name is always 'java' on Jython
9 years ago
remitamine f34294fa0c [downloader/external:ffmpegfd] check for None value of start_time 9 years ago
remitamine 99cbe98ce8 [downloader/external] check for external downloaders availability 9 years ago
remitamine 12b84ac8c1 [downloader/external] Add FFmpegFD(fixes #622)
- replace HlsFD and RtspFD
- add basic support for downloading part of the video or audio
9 years ago
Sergey M․ 611c1dd96e [refactor] Single quotes consistency 9 years ago
Sergey M․ d800609c62 [refactor] Do not specify redundant None as second argument in dict.get() 9 years ago
Sergey M․ c78c9cd10d [downloader/dash] PEP 8 9 years ago
remitamine c43fe0268c [downloader/dash] Implement dashsegments fd in terms of fragment fd 9 years ago
Sergey M․ 56401e1e5f [downloader/hls] Do not send 'q' to ffmpeg on Windows (Closes #8300) 9 years ago
remitamine a1a22572fb [downloader/dash] make initialization_url optional 9 years ago
Sergey M․ b8c9926c0a [downloader/f4m] Do not update fragment list while test 9 years ago
Sergey M․ 2c2f1efdcd [downloader/fragment] Remove superfluous whitespace 9 years ago
Sergey M․ 09104e9930 [downloader/f4m] Add live stream flag to context
Now download progress for f4m livestreams is reported correctly
9 years ago
Sergey M․ 5fa1702ca6 [downloader/fragment] Do not report total bytes estimation and eta for live streams 9 years ago
Sergey M․ 8ab3fe81d8 [downloader/f4m] Prefer bootstrap url attribute over inline bootstrap info 9 years ago
Jaime Marquínez Ferrándiz 7d106a65ca Add --hls-use-mpegts option
When using the mpegts container hls vidoes can be played while being downloaded (useful if you are recording a live stream).
VLC and mpv play them file, but QuickTime doesn't.
9 years ago
Jaime Marquínez Ferrándiz 32d77eeb04 [downloader/common] report_retry: Don't crash when retries is infinite (fixes #8299) 9 years ago
Jaime Marquínez Ferrándiz 9d90e7de03 [downloader/hls] Ask ffmpeg to quit when interrupting youtube-dl with 'Ctrl+C' (#8252)
Otherwise the mp4 file can't be played.
9 years ago
Sergey M․ b83b782dc4 [downloader/fragment] Move helper data to context dict 9 years ago
Sergey M․ 709185a264 [downloader/fragment] More smooth calculations
`downloaded_bytes` is now updated on each fragment progress hook invocation
9 years ago
Sergey M․ 9cb1a06b6c [downloader/fragment] Remove unused code and fix zero division error 9 years ago
Jaime Marquínez Ferrándiz 3c91e41614 [downloader/fragment] Don't fail if the 'Content-Length' header is missing
In some dailymotion videos (like http://www.dailymotion.com/video/x3k0dtv from #8156) the segments URLs don't have the 'Content-Length' header and HttpFD sets the 'totat_bytes' field to None, so we also use '0' in that case (since we do different math operations with it).
9 years ago
Jaime Marquínez Ferrándiz 3f17c357d9 [downloader/hls] Don't let ffmpeg read from stdin (#8139)
If you run 'while read aurl ; do youtube-dl "${aurl}"; done < path_to_batch_file'  (batch_file contains one url per line that uses the hls downloader) each call to youtube-dl consumed some characters and 'read' would assing to 'aurl' a non valid url

(This is the same problem that was fixed for the ffmpeg postprocessors in cffcbc02de)
9 years ago
Sergey M․ 9b9c5355e4 Rename error_to_str to error_to_compat_str 9 years ago
Sergey M․ 7f8b271465 Properly convert errors to strings 9 years ago
Sergey M․ 4db43567e8 [downloader/f4m] Decode manifest before fixing 9 years ago
Sergey M․ 17b786ae73 [downloader/f4m] Fix malformed manifests (Closes #7823) 9 years ago
Yen Chi Hsuan 94e8c80473 [downloader/hls] Respect Youtubedl-* headers 9 years ago
Yen Chi Hsuan 9d0e366880 [downloader/hls] Remove Accept-encoding from headers passed to ffmpeg
Fails for Youtube Gaming live streams (#7671)
9 years ago
Sergey M? 5c2266df4b Switch codebase to use sanitized_Request instead of
compat_urllib_request.Request

[downloader/dash] Use sanitized_Request

[downloader/http] Use sanitized_Request

[atresplayer] Use sanitized_Request

[bambuser] Use sanitized_Request

[bliptv] Use sanitized_Request

[brightcove] Use sanitized_Request

[cbs] Use sanitized_Request

[ceskatelevize] Use sanitized_Request

[collegerama] Use sanitized_Request

[extractor/common] Use sanitized_Request

[crunchyroll] Use sanitized_Request

[dailymotion] Use sanitized_Request

[dcn] Use sanitized_Request

[dramafever] Use sanitized_Request

[dumpert] Use sanitized_Request

[eitb] Use sanitized_Request

[escapist] Use sanitized_Request

[everyonesmixtape] Use sanitized_Request

[extremetube] Use sanitized_Request

[facebook] Use sanitized_Request

[fc2] Use sanitized_Request

[flickr] Use sanitized_Request

[4tube] Use sanitized_Request

[gdcvault] Use sanitized_Request

[extractor/generic] Use sanitized_Request

[hearthisat] Use sanitized_Request

[hotnewhiphop] Use sanitized_Request

[hypem] Use sanitized_Request

[iprima] Use sanitized_Request

[ivi] Use sanitized_Request

[keezmovies] Use sanitized_Request

[letv] Use sanitized_Request

[lynda] Use sanitized_Request

[metacafe] Use sanitized_Request

[minhateca] Use sanitized_Request

[miomio] Use sanitized_Request

[meovideo] Use sanitized_Request

[mofosex] Use sanitized_Request

[moniker] Use sanitized_Request

[mooshare] Use sanitized_Request

[movieclips] Use sanitized_Request

[mtv] Use sanitized_Request

[myvideo] Use sanitized_Request

[neteasemusic] Use sanitized_Request

[nfb] Use sanitized_Request

[niconico] Use sanitized_Request

[noco] Use sanitized_Request

[nosvideo] Use sanitized_Request

[novamov] Use sanitized_Request

[nowness] Use sanitized_Request

[nuvid] Use sanitized_Request

[played] Use sanitized_Request

[pluralsight] Use sanitized_Request

[pornhub] Use sanitized_Request

[pornotube] Use sanitized_Request

[primesharetv] Use sanitized_Request

[promptfile] Use sanitized_Request

[qqmusic] Use sanitized_Request

[rtve] Use sanitized_Request

[safari] Use sanitized_Request

[sandia] Use sanitized_Request

[shared] Use sanitized_Request

[sharesix] Use sanitized_Request

[sina] Use sanitized_Request

[smotri] Use sanitized_Request

[sohu] Use sanitized_Request

[spankwire] Use sanitized_Request

[sportdeutschland] Use sanitized_Request

[streamcloud] Use sanitized_Request

[streamcz] Use sanitized_Request

[tapely] Use sanitized_Request

[tube8] Use sanitized_Request

[tubitv] Use sanitized_Request

[twitch] Use sanitized_Request

[twitter] Use sanitized_Request

[udemy] Use sanitized_Request

[vbox7] Use sanitized_Request

[veoh] Use sanitized_Request

[vessel] Use sanitized_Request

[vevo] Use sanitized_Request

[viddler] Use sanitized_Request

[videomega] Use sanitized_Request

[viewvster] Use sanitized_Request

[viki] Use sanitized_Request

[vk] Use sanitized_Request

[vodlocker] Use sanitized_Request

[voicerepublic] Use sanitized_Request

[wistia] Use sanitized_Request

[xfileshare] Use sanitized_Request

[xtube] Use sanitized_Request

[xvideos] Use sanitized_Request

[yandexmusic] Use sanitized_Request

[youku] Use sanitized_Request

[youporn] Use sanitized_Request

[youtube] Use sanitized_Request

[patreon] Use sanitized_Request

[extractor/common] Remove unused import

[nfb] PEP 8
9 years ago
ashutosh-mishra 17cc153435 Typo fix, found while going through the code. 9 years ago
Jaime Marquínez Ferrándiz 36e6f62cd0 Use a wrapper around xml.etree.ElementTree.fromstring in python 2.x (#7178)
Attributes aren't unicode objects, so they couldn't be directly used in info_dict fields (for example '--write-description' doesn't work with bytes).
9 years ago
Sergey M․ 8cd9614abf [downloader/f4m] More accurate fragment URL construction 9 years ago
remitamine 324ac0a243 [downloader/f4m] get the redirected f4m_url and handle url query string properly 9 years ago
Yen Chi Hsuan 985e4fdc07 [downloader/hls] Add headers only for http(s) URLs
ffmpeg 2.8.1 raises an error with -headers and non-http input files.
9 years ago
Sergey M․ 964e7b2dd0 [downloader/common] Always skip "already downloaded" check when outputting to stdout 9 years ago
AndroKev f101079ae0 [downloader/rtmp] Respect --no-continue option
now when downloading a "rtmp-file" the --no-continue option works!
9 years ago
Sergey M․ f102819463 [downloader/hls] Pass http headers to downloader 9 years ago
Jaime Marquínez Ferrándiz 8a7bbd1606 [postprocessor/ffmpeg] Always use the 'file:' protocol for filenames (fixes #6874)
If the filename contains ':' it is interpreted as a protocol.
It also handles filenames starting with '-'.
9 years ago
Sergey M․ 133a2b4ac2 [downloader/hls] Properly close stream 9 years ago
Sergey M․ 1195a38f46 [downloader/external] Use generalized cli option converters 9 years ago
remitamine dc534b674f [downloader/external] change _argless_option function to _valueless_option 9 years ago
remitamine f30c2e8e98 [downloader/external] add _argless_option for option without arguments 9 years ago
remitamine 266b0ad676 [downloader/external] add _bool_option to pass value to bool option 9 years ago
remitamine e7a8c3032d [downloader/external] Respect --no-check-certificate for curl and aria2c and --proxy for curl 9 years ago
Sergey M․ fcd9e423ec [hls] Properly encode fragment filename 9 years ago
Sergey M․ db8f2bfd99 [f4m] Add missing imports 9 years ago
Sergey M. 55801fc76e Merge pull request #5588 from aajanki/encode_frag_filenames
[f4m] Fix encode error by sanitizing fragment filenames
9 years ago
Sergey M․ 7393746da2 [downloader/hls] Add _debug_cmd 9 years ago
Sergey M․ 6828c809e4 [downloader/fragment] Respect --retries for fragment based downloaders (Closes #6549) 9 years ago
Sergey M․ 9f3da13860 [downloader/external] Use generic _option 9 years ago
Sergey M․ bf812ef714 [downloader/external] Forward --proxy to wget and aria2c 9 years ago
Sergey M․ 154655a85a [downloader/external] Respect --no-check-certificate for wget 9 years ago
vijayanand nandam e0ac521438 adding support for axel download manager 9 years ago
Sergey M․ 84bc4dcb0f [downloader/http] Clarify rationale for Content-Range check (#6426) 9 years ago
Sergey M․ 10eaa8ef1d [downloader/http] Report unable to resume 9 years ago
Sergey M․ c3124c3085 [downloader/http] Simplify 9 years ago
remitamine 8d5b8b477e [utils] import re 9 years ago
remitamine d7d2a9a3db [utils] restart download if server does not support byte ranges 9 years ago
Sergey M․ f9a5affad9 [hls] Implement hlsnative fd in terms of fragment fd 9 years ago
Sergey M․ ab81ef8fa7 [f4m] Implement f4m fd in terms of fragment fd 9 years ago
Sergey M․ 95d8f7ea12 [fragment] Generalize fragmented media file downloader 9 years ago
Jaime Marquínez Ferrándiz 59db9f8018 [downloader/dash] Improve 'combine_url' (fixes #6341)
In some videos the base_url already ends with '/'.
9 years ago
Jaime Marquínez Ferrándiz 2ee8f5d80f Merge remote-tracking branch 'yan12125/download-dash-segments' (#5886) 9 years ago
Sergey M․ 6c4d20cd6f [downloader/external] Fix externals downloaders specified with extension on Windows 9 years ago
Jaime Marquínez Ferrándiz 906e2f0eac [downloader/external] Add downloader for httpie (closes #6079) 9 years ago
Yen Chi Hsuan 5bf3276e8d [downloader/dash] Add testing facility 9 years ago
Yen Chi Hsuan 93dfcb9357 [downloader/dash] Do not pollute ```self``` 9 years ago
Yen Chi Hsuan 423d2be5f8 [downloader/dash] Rename the protocol
'http_dash_segments' looks more like a protocol name than
'dash_segments'
9 years ago
Yen Chi Hsuan 453a1617aa [downloader/dash] Reorder imports 9 years ago
Yen Chi Hsuan b9258c6178 [YoutubeDL] Change how DashSegmentsFD is selected 9 years ago
Yen Chi Hsuan 6800d3372f [YoutubeDL] Support DASH manifest downloading 9 years ago
Yen Chi Hsuan 156fc83a55 [downloader/rtmp] Fix a typo 10 years ago
Antti Ajanki 233c1c0e76 [downloader/f4m] Fragment filenames must be sanitized
because the fragment was written to a file with a sanitized name by
http_dl.download()
10 years ago
Jaime Marquínez Ferrándiz 2ddcd88129 Remove code that was only used by the Grooveshark extractor 10 years ago
Sergey M․ 74f8654a53 [downloader/external] Use encodeArgument 10 years ago
Sergey M․ 9e105a858c [downloader/rtmp] Fix arguments encoding and simplify retry logic (Closes #5528) 10 years ago
Sergey M․ cd8a07a764 [downloader/common] Use decodeArgument 10 years ago
Sergey M․ a5ebf77d87 [mplayer] Rename to RTSP 10 years ago
Sergey M․ b874495b1f [mplayer] Simplify 10 years ago
Sergey M․ b860f5dfd4 [mplayer] Clarify error message 10 years ago
mrkrossxdx db37e0c273 Added support for mpv if mplayer is not available 10 years ago
Yen Chi Hsuan c6391cd587 [Senate] Add new extractor (#5302) 10 years ago
Philipp Hagemeister c59e701e35 Default to continuedl=True
We already do this in the CLI interface, so it should be just fine.
10 years ago
Jaime Marquínez Ferrándiz 70a1165b32 Don't use bare 'except:'
They catch any exception, including KeyboardInterrupt, we don't want to catch it.
10 years ago