Commit Graph

319 Commits (b9b150def75640f12c714762bb572f9a4757d969)

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 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 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