aboutsummaryrefslogtreecommitdiff
path: root/yt_dlp/utils.py
AgeCommit message (Collapse)Author
2021-08-01[cleanup] Refactor some codepukkandan
2021-08-01[utils] Fix slicing of reversed `LazyList`pukkandan
Closes #589
2021-07-29Add format types `j`, `l`, `q` for outtmplpukkandan
Closes #345
2021-07-29Expand and escape environment variables correctly in outtmplpukkandan
Fixes: https://www.reddit.com/r/youtubedl/comments/otfmq3/ytdlp_same_parameters_different_results
2021-07-23[test] Add Python 3.10 (#480)xtkoba
Authored-by: pukkandan, xtkoba
2021-07-21[utils] Improve `traverse_obj`pukkandan
2021-07-20[utils] Fix LazyList for Falsey valuespukkandan
2021-07-20[compat] Remove unnecessary codepukkandan
2021-07-20[utils] Improve `traverse_obj`pukkandan
* Allow skipping a level: `traverse_obj([{k:v1}, {k:v2}], (None, k))` => `[v1, v2]` * Make keys variadic: `traverse_obj(obj, k1: str, k2: str)` => `traverse_obj(obj, (k1,), (k2,))` * Fetch from multiple keys: `traverse_obj([{k1:[1], k2:[2], k3:[3]}], (0, (k1, k2), 0))` => `[1, 2]` TODO: Add tests
2021-07-14[utils] Improve `js_to_json` comment regexfelix
Capture the newline character as part of a single-line comment From #497, Authored by: fstirlitz
2021-07-11Improve `traverse_obj`pukkandan
2021-07-11[utils] Add `variadic`pukkandan
2021-07-02Some minor fixes and refactoring (see desc)pukkandan
* [utils] Fix issues with reversal * check_formats should catch `DownloadError`, not `ExtractorError` * Simplify format selectors with `LazyList` and `yield from`
2021-06-23Add option `--throttled-rate` below which video data is re-extractedpukkandan
Currently only for HTTP downloads Closes #430, workaround for https://github.com/ytdl-org/youtube-dl/issues/29326
2021-06-17Fix id sanitization in filenamespukkandan
Closes #415
2021-06-13[downloader/mhtml] Add new downloader (#343)felix
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
2021-06-13[utils] Improve `LazyList`pukkandan
* Add `repr` and `str` that mimics `list` * Add `reversed`. Unlike `[::-1]`, reversed does not exhaust the iterable and modifies the `LazyList` in-place * Add tests
2021-06-09Fix `%d` and empty default in outtmplpukkandan
Closes #388
2021-06-08[utils] Generalize `traverse_dict` to `traverse_obj`pukkandan
2021-06-06Fix and refactor `prepare_outtmpl`pukkandan
The following tests would have failed previously: %(id)d %(id)r %(ext)s-%(ext|def)d %(width|)d %(id)r %(height)r %(formats.0)r %s
2021-06-06[cleanup] Point all shebang to `python3` (#372)felix
Authored by: fstirlitz
2021-06-01[utils] Escape URLs in `sanitized_Request`, not `sanitize_url`pukkandan
d2558234cf5dd12d6896eed5427b7dcdb3ab7b5a added escaping of URLs while sanitizing. However, `sanitize_url` may not always receive an actual URL. Eg: When using `yt-dlp "search query" --default-search ytsearch`, `search query` gets escaped to `search%20query` before being prefixed with `ytsearch:` which is not the intended behavior. So the escaping is moved to `sanitized_Request` instead.
2021-05-29[utils] Add `__getitem__` for `PagedList`pukkandan
2021-05-29[utils] Add `LazyList`pukkandan
2021-05-24Handle Basic Auth `user:pass` in URLsHubert Hirtz
Fixes https://github.com/ytdl-org/youtube-dl/issues/20258, https://github.com/ytdl-org/youtube-dl/issues/26211 Authored by: hhirtz, pukkandan
2021-05-22[cleanup] Refactor ffmpeg convertorspukkandan
2021-05-20[parlview] Add extractor (#322)king-millez
Authored by: king-millez
2021-05-18Add `pl_thumbnail` outtmpl key for playlist thumbnailspukkandan
This should have been implemented in 681de68e9df67f07dde3fbbc6cb2e65a78b2bb16, but I forgot
2021-05-09[Plugins] Prioritize plugins over standard extractorspukkandan
and prevent plugins from overwriting the standard extractor classes Closes #304
2021-05-06Improve output template internal formattingpukkandan
* Allow slicing lists/strings using `field.start:end:step` * A field can also be used as offset like `field1+num+field2` * A default value can be given using `field|default` * Capture all format strings and set it to `None` if invalid. This prevents invalid fields from causing errors
2021-05-04[utils] Add `network_exceptions`pukkandan
2021-04-29[utils] Escape URL while sanitizingpukkandan
Closes #263 While this fixes the issue in question, it does not try to address the root-cause of the problem Refer: 915f911e365736227e134ad654601443dbfd7ccb, f5fa042c82300218a2d07b95dd6b9c0756745db3
2021-04-29Revert "[utils] Encode URLs in `YoutubeDLCookieProcessor`"pukkandan
This reverts commit 915f911e365736227e134ad654601443dbfd7ccb. When the request is copied, `unredirected_hdrs` are not copied, which causes issues elsewhere Reopens #263
2021-04-28[utils] Improve bug_report_messageFelix S
Add an optional argument specifying the text that should go before the message.
2021-04-24[utils] Encode URLs in `YoutubeDLCookieProcessor`pukkandan
Closes #263
2021-04-22Improve output template (see desc)pukkandan
* Objects can be traversed like `%(field.key1.key2)s` * A number can be added to the field as `%(field+n)s` * Deprecates `--autonumber-start`
2021-04-17Update to ytdl-commit-9f6c03pukkandan
[cbsnews] Fix extraction for python <3.6 https://github.com/ytdl-org/youtube-dl/commit/9f6c03a00602eb1119e43a522cf50682f6d6a6dd
2021-04-07[utils] Add `datetime_from_str` to parse relative time (#221)colethedj
and `datetime_add_months` to accurately add/subtract months Authored by: colethedj
2021-03-25Parse metadata from multiple fieldspukkandan
Closes #196
2021-03-24Ability to load playlist infojsonpukkandan
* If `--no-clean-infojson` is given, the video ids are saved/loaded from in the infojson along with their playlist index * If a video entry that was not saved is requested, we fallback to using `webpage_url` to re-extract the entries Related: https://github.com/yt-dlp/yt-dlp/issues/190#issuecomment-804921024
2021-03-20[amcnetworks] Fix extractor (#179)2ShedsJackson
* Prefer use of manifest based on `releasePid` since the one based on `videoPid` may have Fairplay * Additional thumbnail images were added * Don't add `season_number` and `series` to `title` * `series` is now set to `None` rather than "_" when empty * fix bug with age limit Authored by: 2ShedsJackson
2021-03-18Option to keep private keys in the infojsonpukkandan
Options: --clean-infojson, --no-clean-infojson Related: https://github.com/yt-dlp/yt-dlp/issues/42#issuecomment-800778391
2021-03-15Split video by chapters (#158)pukkandan
* New options `--split-chapters` and `--no-split-chapters` * The output/path of the split files can be given using the key `chapter` * Additional keys `section_title`, `section_number`, `section_start`, `section_end` are available in the output template * Alias `--split-tracks` for parity with animelover/youtube-dl * `--sponskrub-cut` and `--split-chapter` cannot work together Closes: https://github.com/blackjack4494/yt-dlc/issues/277 https://github.com/ytdl-org/youtube-dl/issues/28438 https://github.com/ytdl-org/youtube-dl/issues/12907 https://github.com/ytdl-org/youtube-dl/issues/6480 https://github.com/ytdl-org/youtube-dl/pull/25005 Rewritten from the implementation by: femaref and Wattux https://github.com/Wattux/youtube-dl/tree/split-at-timestamps https://github.com/ytdl-org/youtube-dl/pull/25005 https://github.com/femaref/youtube-dl/tree/split-track
2021-03-14Refactor (See desc)pukkandan
* 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
2021-02-26Fix `get_executable_path` (#117)shirt-dev
Authored-by: shirtjs <2660574+shirtjs@users.noreply.github.com>
2021-02-25Completely change project name to yt-dlp (#85)Pccode66
* 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