diff --git a/archivebox/config/__init__.py b/archivebox/config/__init__.py index 04b8515c..f54f33ef 100644 --- a/archivebox/config/__init__.py +++ b/archivebox/config/__init__.py @@ -68,6 +68,7 @@ CONFIG_DEFAULTS: Dict[str, ConfigDefaultDict] = { 'SAVE_WARC': {'type': bool, 'default': True, 'aliases': ('FETCH_WARC',)}, 'SAVE_GIT': {'type': bool, 'default': True, 'aliases': ('FETCH_GIT',)}, 'SAVE_MEDIA': {'type': bool, 'default': True, 'aliases': ('FETCH_MEDIA',)}, + 'SAVE_PLAYLISTS': {'type': bool, 'default': True, 'aliases': ('FETCH_PLAYLISTS',)}, 'SAVE_ARCHIVE_DOT_ORG': {'type': bool, 'default': True, 'aliases': ('SUBMIT_ARCHIVE_DOT_ORG',)}, }, @@ -228,6 +229,7 @@ DERIVED_CONFIG_DEFAULTS: ConfigDefaultDict = { 'USE_YOUTUBEDL': {'default': lambda c: c['USE_YOUTUBEDL'] and c['SAVE_MEDIA']}, 'YOUTUBEDL_VERSION': {'default': lambda c: bin_version(c['YOUTUBEDL_BINARY']) if c['USE_YOUTUBEDL'] else None}, 'SAVE_MEDIA': {'default': lambda c: c['USE_YOUTUBEDL'] and c['SAVE_MEDIA']}, + 'SAVE_PLAYLISTS': {'default': lambda c: c['SAVE_PLAYLISTS'] and c['SAVE_MEDIA']}, 'USE_CHROME': {'default': lambda c: c['USE_CHROME'] and (c['SAVE_PDF'] or c['SAVE_SCREENSHOT'] or c['SAVE_DOM'])}, 'CHROME_BINARY': {'default': lambda c: c['CHROME_BINARY'] if c['CHROME_BINARY'] else find_chrome_binary()}, diff --git a/archivebox/config/stubs.py b/archivebox/config/stubs.py index 7d3925dd..444757e9 100644 --- a/archivebox/config/stubs.py +++ b/archivebox/config/stubs.py @@ -42,6 +42,7 @@ class ConfigDict(BaseConfig, total=False): SAVE_WARC: bool SAVE_GIT: bool SAVE_MEDIA: bool + SAVE_PLAYLISTS: bool SAVE_ARCHIVE_DOT_ORG: bool RESOLUTION: str diff --git a/archivebox/extractors/media.py b/archivebox/extractors/media.py index ece47f0a..861f3459 100644 --- a/archivebox/extractors/media.py +++ b/archivebox/extractors/media.py @@ -13,6 +13,7 @@ from ..util import ( from ..config import ( MEDIA_TIMEOUT, SAVE_MEDIA, + SAVE_PLAYLISTS, YOUTUBEDL_BINARY, YOUTUBEDL_VERSION, CHECK_SSL_VALIDITY @@ -45,7 +46,6 @@ def save_media(link: Link, out_dir: Optional[str]=None, timeout: int=MEDIA_TIMEO '--write-description', '--write-info-json', '--write-annotations', - '--yes-playlist', '--write-thumbnail', '--no-call-home', '--no-check-certificate', @@ -59,6 +59,7 @@ def save_media(link: Link, out_dir: Optional[str]=None, timeout: int=MEDIA_TIMEO '--audio-quality', '320K', '--embed-thumbnail', '--add-metadata', + *(['--yes-playlist'] if SAVE_PLAYLISTS else []), *([] if CHECK_SSL_VALIDITY else ['--no-check-certificate']), link.url, ]