Commit Graph

121 Commits (9e907ebddf9c9c3084fb1b24156c9e3786ab428e)

Author SHA1 Message Date
pukkandan 6251555f1c
[downloader/ffmpeg] Support for DASH manifests (experimental)
Closes #159
3 years ago
pukkandan 330690a214
[downloader/ffmpeg] Allow passing custom arguments before -i
Closes #686
3 years ago
Felix S 7a6742b5f9
[webvtt] Fix timestamp overflow adjustment (#698)
In some streams, empty segments may appear with a bogus, non-monotone MPEG timestamp.
This should not be considered as an overflow

Authored by: fstirlitz
3 years ago
pukkandan f775c83110
Fix `--force-overwrites` when using `-k`
For formats that need merge, the `.fxxx` files are not removed before
downloading the corresponding `.part` files. This causes the rename to fail
3 years ago
Felix S 0715f7e19b
Revert erroneous use of the `Content-Length` header (#637)
This reverts commit 6c907eb33f

The use of the Content-Length value here is erroneous and may lead
to truncated downloads if a compression scheme is specified in the
Content-Encoding header, as the Content-Length header refers to the
size of encoded data, not of the raw bytestream. This has been noticed
in the wild with WebVTT subtitle segments.

Authored by: fstirlitz
3 years ago
Felix S 25a3f4f5d6
[webvtt] Merge daisy-chained duplicate cues (#638)
Fixes: https://github.com/yt-dlp/yt-dlp/issues/631#issuecomment-893338552

Previous deduplication algorithm only removed duplicate cues with
identical text, styles and timestamps.  This change also merges
cues that come in ‘daisy chains’, where sequences of cues with
identical text and styles appear in which the ending timestamp of
one equals the starting timestamp of the next.

This deduplication algorithm has the somewhat unfortunate side effect
that NOTE blocks between cues, if found, will be emitted in a different
order relative to their original cues.  This may be unwanted if perfect
fidelity is desired, but then so is daisy-chain deduplication itself.
NOTE blocks ought to be ignored by WebVTT players in any case.

Authored by: fstirlitz
3 years ago
pukkandan ad3dc496bb Misc fixes - See desc
* Remove unnecessary uses of _list_from_options_callback
* Fix download tests - Bug from 6e84b21559
* Rename ExecAfterDownloadPP to ExecPP and refactor its tests
* Ensure _write_ytdl_file closes file handle on error - Potential fix for #517
3 years ago
pukkandan 3448870205
[docs] Fix some mistakes and improve doc 3 years ago
pukkandan b868936cd6 [cleanup] Misc 3 years ago
pukkandan 9cc1a3130a
Fix resuming when using `--no-part`
Closes #576
3 years ago
nikhil bb36a55c41
[nbcolympics:stream] Fix extractor
PR: https://github.com/ytdl-org/youtube-dl/pull/29688
Closes: #617, https://github.com/ytdl-org/youtube-dl/issues/29665

* Livestreams are untested
* If using ffmpeg as downloader, v4.3+ is needed since `-http_seekable` option is necessary
* Instead of making a seperate key for each arg that needs to be passed to ffmpeg, I made `_ffmpeg_args`
* This deprecates `_seekable`, but the option is kept for compatibility

Authored by: nchilada, pukkandan
3 years ago
pukkandan e5611e8eda
[ffmpeg] Fix streaming `mp4` to `stdout` 3 years ago
pukkandan a46a815b05
[cleanup] Fix linter in 96fccc101f 3 years ago
pukkandan 96fccc101f [downloader] Allow streaming unmerged formats to stdout using ffmpeg
For this to work:
1. The downloader must be ffmpeg
2. The selected formats must have the same protocol
3. The formats must be downloadable by ffmpeg to stdout

Partial solution for: https://github.com/ytdl-org/youtube-dl/issues/28146, https://github.com/ytdl-org/youtube-dl/issues/27265
3 years ago
pukkandan dbf5416a20 [cleanup] Refactor some code 3 years ago
pukkandan f45e6c1126
[downloader] Pass same status object to all `progress_hooks` 3 years ago
pukkandan 3ba7740dd8
[downloader] Pass `info_dict` to `progress_hook`s 3 years ago
pukkandan 11f9be0912
[youtube] Extract data from multiple clients (#536)
* `player_client` accepts multiple clients
* default `player_client` = `android,web`
* music clients can be specifically requested
* Add IOS `player_client`
* Hide live dash since they can't be downloaded

Closes #501

Authored-by: pukkandan, colethedj
3 years ago
pukkandan 723d44b92b
[fragment] Handle errors in threads correctly 4 years ago
pukkandan 6b6c16ca6c [downloader/ffmpeg] Fix `--ppa` when using simultaneous download 4 years ago
siikamiika c2603313b1
[youtube_live_chat] use `clickTrackingParams` (#449)
Authored by: siikamiika
4 years ago
pukkandan bd4d1ea398
[cleanup] Minor refactoring of `fragment` 4 years ago
pukkandan 8e897ed283
[fragment] Return status of download correctly 4 years ago
siikamiika d534c4520b
[youtube_live_chat] Fix download with cookies (#437)
Closes #417 

Authored by: siikamiika
4 years ago
siikamiika c60ee3a218
[youtube_live_chat] Support ongoing live chat (#422)
Authored by: siikamiika
4 years ago
pukkandan 8a77e5e6bc
[cleanup] Revert unnecessary changes in 51d9739f80 4 years ago
pukkandan 51d9739f80
Add option `--throttled-rate` below which video data is re-extracted
Currently only for HTTP downloads

Closes #430, workaround for https://github.com/ytdl-org/youtube-dl/issues/29326
4 years ago
pukkandan 4c7853de14
[fragment] Merge during download for `-N`, and refactor `hls`/`dash` (#364) 4 years ago
pukkandan e36d50c5dd
[websockets] Add `WebSocketFragmentFD` (#399)
Necessary for #392

Co-authored by: nao20010128nao, pukkandan
4 years ago
pukkandan ff0f78e1fe
[aria2c] Lower `--min-split-size` for HTTP downloads
This makes downloading smaller files much faster
4 years ago
felix cdb19aa4c2
[downloader/mhtml] Add new downloader (#343)
This downloader is intended to be used for streams that consist of a
timed sequence of stand-alone images, such as slideshows or thumbnail
streams

This can be used for implementing:

https://github.com/ytdl-org/youtube-dl/issues/4974#issue-58006762
https://github.com/ytdl-org/youtube-dl/issues/4540#issuecomment-69574231
https://github.com/ytdl-org/youtube-dl/pull/11185#issuecomment-335554239

https://github.com/ytdl-org/youtube-dl/issues/9868
https://github.com/ytdl-org/youtube-dl/pull/14951


Authored by: fstirlitz
4 years ago
felix 2ec1759f9d
[downloader/ffmpeg] Hide FFmpeg banner unless in verbose mode (#372)
Authored by: fstirlitz
4 years ago
pukkandan e06ca6ddac
[hls] Decrypt fragment when reading from disk
Closes #373
4 years ago
pukkandan d89da64b1d
[hls,dash] When using `concurrent_fragment_downloads`, do not keep the fragment content in memory
Partial fix for #359
This is a temporary solution until #364 can be implemented
4 years ago
pukkandan 5dcd8e1d88
[hls] Disable external downloader for `webtt` 4 years ago
pukkandan 18e674b4f6
[ffmpeg] Download and merge in a single step if possible 4 years ago
pukkandan 856bb8f99d
[downloader] Fix `write_debug` 4 years ago
pukkandan 0760b0a7e2
Standardize `write_debug` 4 years ago
pukkandan 000ee7ef34
[fragment] Make sure first segment is not skipped 4 years ago
pukkandan e8e738406a
Add experimental option `--check-formats` to test the URLs before format selection 4 years ago
pukkandan 848887eb7a
[downloader] Fix `quiet` and `to_stderr` 4 years ago
pukkandan 6ef6bcbd6b
[fragment] Ensure the file is closed on error 4 years ago
The Hatsune Daishi 0fa9a1e236
[whowatch] Add extractor #292
closes #223

Authored by: nao20010128nao 
Modified from: 9e4a0e061a/youtube_dl/extractor/whowatch.py
4 years ago
pukkandan eb55bad5a0
[aria2c] Fix whitespace being stripped off
Closes #276
4 years ago
pukkandan 2291dbce2a
[niconico] Fix HLS formats
Closes #171

* The structure of the API JSON was changed
* Smile Video seems to be no longer available. So remove the warning
* Move ping to downloader
* Change heartbeat interval to 40sec
* Remove unnecessary API headers

Authored-by: CXwudi, tsukumijima, nao20010128nao, pukkandan
Tested by: tsukumijima
4 years ago
Felix S 66a1b8643a [downloader/ism] Support muxing TTML subtitles 4 years ago
Felix S 15828bcf25 [downloader/hls] Handle MPEG-2 PES timestamp overflow 4 years ago
Felix S 333217f43e [downloader/hls] Remove duplicate cues using a sliding window of candidates 4 years ago
Felix S 4a2f19abbd [downloader/hls] Assemble single-file WebVTT subtitles from HLS segments 4 years ago
Felix S fd76a14259 [extractor/common, downloader/ism] Extract SSTR subtitle tracks
_parse_ism_formats was extended into _parse_ism_formats_and_subtitles;
all direct users were updated, though _extract_ism_formats was left
as a compatibility wrapper.

The SSTR downloader was also modified in order to prepare for muxing
subtitle streams, although no support for any subtitle codecs was
added in this commit.
4 years ago
Felix S d4553567d2 [downloader/ism] Prevent writing the header again when resuming an interrupted download 4 years ago
Felix S 4d49884c58 [downloader/fragment] Allow persisting extra state when a download is interrupted 4 years ago
pukkandan 88728713c8
Py2 compatibility for `FileNotFoundError` 4 years ago
pukkandan 33245766ab
[downloader] Fix ffmpeg selection for m3u8_native 4 years ago
pukkandan 72e1fe969f
[downloader] Fix downloader selection for m3u8
Bug introduced by: 52a8a1e1b9 and a31953b0e6
4 years ago
pukkandan a31953b0e6
[downloader] Fix external downloader selection for m3u8
Closes #239
4 years ago
pukkandan 68379de561
[downloaders] Fix API access
Bug introduced by: 52a8a1e1b9
4 years ago
pukkandan 52a8a1e1b9
Option to choose different downloader for different protocols
* Renamed `--external-downloader-args` to `--downloader-args`
* Added `native` as an option for the downloader
* Use similar syntax to `--downloader-args` etc. Eg: `--downloader dash:native --downloader aria2c`
* Deprecated `--hls-prefer-native` and `--hls-prefer-ffmpeg` since the same can now be done with `--downloader "m3u8:native"` and `m3u8:ffmpeg` respectively
* Split `frag_urls` protocol into `m3u8_frag_urls` and `dash_frag_urls`
* Standardize shortening of protocol names with `downloader.shorten_protocol_name`
4 years ago
pukkandan 83b20a970d
[youtube_live_chat] fix bug when trying to set cookies
Closes #194
4 years ago
pukkandan beb4b92a66
More consistent warning messages (#173)
Co-authored by: Damiano Amatruda <damiano.amatruda@outlook.com>
4 years ago
pukkandan fe845284c4
[aria2c] Support retry/abort unavailable fragments (#173)
Co-authored by: Damiano Amatruda <damiano.amatruda@outlook.com>
4 years ago
pukkandan 2b3bf01c90 [aria2c] Better default arguments 4 years ago
pukkandan e92caff5d5
Refactor (See desc)
* Create `FFmpegPostProcessor.real_run_ffmpeg` that can accept multiple input/output files along with switches for each
* Rewrite `cli_configuration_args` and related functions
* Create `YoutubeDL._ensure_dir_exists` - this was previously defined in multiple places
4 years ago
shirt 4cf1e5d2f9
Native concurrent downloading of fragments (#166)
* Option `--concurrent-fragments` (`-N`) to set the number of threads

Related: #165

Known issues:
* When receiving Ctrl+C, the process will exit only after finishing the currently downloading fragments
* The download progress shows the speed of only one thread

Authored by shirt-dev
4 years ago
pukkandan 0a473f2f0f
More improvements to HLS/DASH external downloader code
* Fix error when there is no `protocol` in `info_dict`
* Move HLS byte range detection to `Aria2cFD` so that the download will fall back to the native downloader instead of ffmpeg
* Fix bug with getting no fragments in DASH
* Convert `check_results` in `can_download` to a generator
4 years ago
shirt-dev d7009caa03
Improve HLS/DASH external downloader code (#162)
Authored by: shirt
4 years ago
pukkandan 9e631877f8
[downloader] Fix bug for ffmpeg/httpie
Caused by: 7f7de7f94d
4 years ago
pukkandan 5ef7d9bdd8
Release 2021.03.01 4 years ago
pukkandan 7f7de7f94d Allow specifying path in `--external-downloader` 4 years ago
pukkandan 9bd2020476 [hls] Enable `--hls-use-mpegts` by default when downloading live-streams
* Also added option `--no-hls-use-mpegts` to disable this

Related: #96
4 years ago
Pccode66 7a5c1cfe93
Completely change project name to yt-dlp (#85)
* All modules and binary names are changed
* All documentation references changed
* yt-dlp no longer loads youtube-dlc config files
* All URLs changed to point to organization account

Co-authored-by: Pccode66
Co-authored-by: pukkandan
4 years ago