1. Option name should explicitly reflect a dependency on ffmpeg in its name.
2. Description should explicitly emphasize it will only work with ffmpeg downloader.
3. -O should be removed.
4. It should be ignored completely when ffmpeg is not used as external downloader.
So therefore
Various:
. outputformat -> ffmpeg_format (and --ffmpeg-format cmdline)
YoutubeDL.py:
. xxx: prepare_filename() is run before we know the downloader. How do we address this?
downloader/external.py:
. Use temp. var force_mpegts to avoid code duplication
. Don't add -bsf:a if force_mpegts is True (oops! error from last rev)
. re-indent complex if
Allow specifying an output format when using an external downloader,
either through --output-format or -O, in preference to the extractor's
default. This is particularly helpful as -O mkv, to allow Matroska
output from ffmpeg in cases where .mp4 isn't a great answer, such as
while trying to play during the download.
* 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
- 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
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.
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
- 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