Commit Graph

57 Commits

Author SHA1 Message Date
Mike Fährmann
8c62be343e [output] add 'Logger.traceback()' helper 2025-10-14 18:44:29 +02:00
Mike Fährmann
b9fd9103d4 [dl:ytdl] move 'http.cookiejar.Cookie' import to top of file 2025-09-05 13:43:46 +02:00
Mike Fährmann
1c9f4ff867 [dl:ytdl] support '_ytdl_manifest_cookies' 2025-09-02 22:12:51 +02:00
Mike Fährmann
5f9c8ee195 [dl:ytdl] pass 'ignoreerrors' as YoutubeDL param (#8085) 2025-08-22 23:12:26 +02:00
Mike Fährmann
1dcf6615b4 [dl:ytdl] improve playlist filename handling 2025-08-22 22:50:51 +02:00
Mike Fährmann
81df42103e [dl:ytdl] handle exceptions when processing playlists (#8085)
and prevent calling 'process_info()' with empty playlist entries
2025-08-22 22:32:46 +02:00
Mike Fährmann
9dfdeb05a7 [dl:ytdl] don't overwrite existing filenames (#7964) 2025-08-03 19:14:01 +02:00
Mike Fährmann
a097a373a9 simplify if statements by using walrus operators (#7671) 2025-07-22 20:57:54 +02:00
Mike Fährmann
ed64b484ff [ytdl] use '__gdl_initialize' key to trigger init code 2025-07-06 18:29:00 +02:00
Mike Fährmann
13ef48f04a [dl:ytdl] implement dynamic download 'rate' limits (#7638) 2025-07-05 23:07:42 +02:00
Mike Fährmann
e08ec7e083 update copyright notices 2025-06-13 00:03:41 +02:00
Mike Fährmann
811b665e33 remove @staticmethod decorators
There might have been a time when calling a static method was faster
than a regular method, but that is no longer the case. According to
micro-benchmarks, it is 70% slower in CPython 3.13 and it also makes
executing the code of a class definition slower.
2025-06-12 22:50:52 +02:00
Mike Fährmann
a798b8971e [dl:ytdl] fix postprocessing/merge errors (#7581)
don't use a hardcoded '.part' filename extension

fixes regression introduced in 29d315e495
2025-05-26 18:56:40 +02:00
Mike Fährmann
e05b82253a [dl:ytdl] support custom headers when fetching HLS/DASH manifests 2025-05-26 17:17:37 +02:00
Mike Fährmann
3e7a5fcb00 [dl:ytdl] fix crash when using legacy 'youtube_dl' (#6949)
https://github.com/mikf/gallery-dl/issues/6949#issuecomment-2906920039

fixes regression introduced in 29d315e495
2025-05-24 19:58:09 +02:00
Mike Fährmann
29d315e495 [dl:ytdl] improve temp/part file handling (#6949 #7494)
- fixes files not being moved from 'part-directory' (#6949)
- fixes 'skip: enumerate' overwriting files (#7494)
2025-05-21 13:50:07 +02:00
Mike Fährmann
1772c233e4 [dl:ytdl] fix exception when ytdl reports an error (#7301)
when using the HLS/DASH download functionality
2025-04-08 17:02:35 +02:00
Mike Fährmann
81a1b647bb [dl:ytdl] support processing inline HLS/DASH manifests (#6379 #7006) 2025-03-26 22:41:40 +01:00
Mike Fährmann
6c8c264cf5 [dl:ytdl] log ytdl module and version when importing 2025-02-28 21:18:42 +01:00
Mike Fährmann
f79e57b71e [dl:ytdl] change 'forward-cookies' default to 'true' (#6401, #6348)
revert dba87ca99e
2024-10-31 17:35:08 +01:00
Mike Fährmann
1824267447 [dl:ytdl] implement explicit HLS/DASH handling
add '_ytdl_manifest' to specify a manifest type to process
2024-10-16 15:16:21 +02:00
Mike Fährmann
a051e1c955 directly pass exception instances as 'exc_info' logger argument 2024-09-19 14:50:08 +02:00
Mike Fährmann
127aa45834 [ytdl] ignore SyntaxErrors when trying to import a module 2024-08-29 19:28:08 +02:00
Mike Fährmann
3ec7ee6baa [downloader:ytdl] fix exception due to missing 'ext' (#5675) 2024-06-02 18:16:53 +02:00
Mike Fährmann
8148c2a097 [downloader:ytdl] prevent exception on empty results
a7c7953107 (commitcomment-92042240)
2023-03-06 12:25:12 +01:00
Mike Fährmann
8124c16a50 split 'build_path' from 'set_filename' and 'set_extension'
Do not automatically build a new path
when setting file metadata or updating its extension.
2022-11-08 17:03:24 +01:00
Mike Fährmann
1aae9f2b71 [downloader:ytdl] update _set_outtmpl() (fixes #2692)
bf1824b391
2022-06-20 11:32:02 +02:00
Mike Fährmann
47cf05c4ab refactor proxy handling code (#2357)
- allow gallery-dl proxy settings to overwrite environment proxies
- allow specifying different proxies for data extraction and download
  - add 'downloader.proxy' option
  - '-o extractor.proxy=–PROXY_URL -o downloader.proxy=null'
    now has the same effect as youtube-dl's '--geo-verification-proxy'
2022-03-10 23:55:35 +01:00
Mike Fährmann
c0fddcefc5 [downloader:ytdl] make ImportErrors non-fatal (#2273) 2022-02-08 19:30:29 +01:00
Mike Fährmann
f4e3cee6ac use yt-dlp by default (#1850, #2028) 2021-11-29 18:24:26 +01:00
Mike Fährmann
19403a7fff [downloader:ytdl] prevent crash in '_progress_hook()' (#1680)
'speed' is not guaranteed to be defined or convertible to 'int'
2021-11-12 18:54:04 +01:00
Mike Fährmann
efa178cc91 [ytdl] implement parsing ytdl command-line options (#1680)
- adds 'config-file' and 'cmdline-args' options
  for both ytdl downloader and extractor
- create 'ytdl' helper module, which combines YoutubeDL creation
  and option parsing.
- most likely a buggy mess due to incompatibilities between the
  original youtube-dl and yt-dlp.
2021-11-07 02:44:11 +01:00
Mike Fährmann
232ab626a7 [downloader:ytdl] prevent crash in '_progress_hook()'
https://github.com/mikf/gallery-dl/discussions/1964#discussioncomment-1516702
2021-10-21 22:57:04 +02:00
Mike Fährmann
d0761454b1 implement a download progress indicator (#1519) 2021-09-28 22:48:58 +02:00
Mike Fährmann
f5b097165e [ytdl] transfer YoutubeDL objects to downloader (#1680)
allows specifying downloader-specific options per subcategory
but overwrites all downloader.ytdl settings
2021-07-16 15:40:54 +02:00
Mike Fährmann
fc19010808 [downloader:ytdl] fix 'outtmpl' setting for yt_dlp (#1680)
yt_dlp supports multiple outtmpl settings for different file types and
uses its 'outtmpl_dict' for that.
2021-07-16 15:05:16 +02:00
Mike Fährmann
e622e004f0 [ytdl] improve module imports (#1680)
Apply 'extractor.ytdl.module' for every URL, not just the first.
2021-07-14 03:08:00 +02:00
Mike Fährmann
36ac2197db [ytdl] add extractor for sites supported by youtube-dl
(#1680, #878)

Can be used by prefixing any URL with 'ytdl:',
or by setting 'extractor,ytdl.enabled' to 'true'.
2021-07-10 20:55:47 +02:00
Mike Fährmann
1a38fae785 add option to use different youtube-dl modules (fixes #1330)
by setting the 'downloader.ytdl.module' value. For example

{
    "downloader": {
        "ytdl": {
            "module": "yt_dlp"
        }
    }
}

or '-o module=yt_dlp'
2021-03-01 03:10:42 +01:00
Mike Fährmann
ac3036ef56 add 'filesize-min' and 'filesize-max' options (closes #780) 2020-09-03 18:21:04 +02:00
Mike Fährmann
ece73b5b2a make 'path' and 'keywords' available in logging messages
Wrap all loggers used by job, extractor, downloader, and postprocessor
objects into a (custom) LoggerAdapter that provides access to the
underlying job, extractor, pathfmt, and kwdict objects and their
properties.

__init__() signatures for all downloader and postprocessor classes have
been changed to take the current Job object as their first argument,
instead of the current extractor or pathfmt.

(#574, #575)
2020-05-18 19:04:51 +02:00
Mike Fährmann
f8661c6578 [downloader:ytdl] fix file extensions when merging into mkv 2020-05-13 22:35:33 +02:00
Mike Fährmann
dba87ca99e [downloader:ytdl] change 'forward-cookies' default to 'false'
There are currently no situations where forwarding gallery-dl's cookies
to youtube-dl is necessary, and it only causes problems when forcing
youtube-dl for Twitter video downloads while logged in.
2020-05-12 20:17:08 +02:00
Mike Fährmann
a5be08a830 [downloader:ytdl] forward proxy settings 2019-11-05 16:16:26 +01:00
Mike Fährmann
083e14ad9a [downloader:ytdl] add data from '_ytdl_extra' to info_dicts 2019-10-25 13:17:13 +02:00
Mike Fährmann
7c09545f70 [downloader:ytdl] add 'outtmpl' option (#395) 2019-08-24 22:47:59 +02:00
Mike Fährmann
0bb873757a update PathFormat class
- change 'has_extension' from a simple flag/bool to a field that
  contains the original filename extension
- rename 'keywords' to 'kwdict' and some other stuff as well
- inline 'adjust_path()'
- put enumeration index before filename extension (#306)
2019-08-12 21:40:37 +02:00
Mike Fährmann
547ea71463 [downloader.ytdl] add 'forward-cookies' option (#352)
The "long" name is necessary because just calling it 'cookies' would
clash with how the lookup for '--cookies' is implemented.
2019-07-24 21:19:11 +02:00
Mike Fährmann
69205df68d allow '-1' for infinite retries (#300) 2019-06-30 23:10:47 +02:00
Mike Fährmann
f1b0c2bf5c [downloader:ytdl] forward cookies to youtube-dl
to be able to download private videos from Twitter, Instagram, etc.
2019-06-26 19:32:07 +02:00