1
0
mirror of https://github.com/mikf/gallery-dl.git synced 2024-11-25 12:12:34 +01:00

[downloader:ytdl] add 'outtmpl' option (#395)

This commit is contained in:
Mike Fährmann 2019-08-24 22:39:37 +02:00
parent 5cc7be2536
commit 7c09545f70
No known key found for this signature in database
GPG Key ID: 5680CA389D365A88
3 changed files with 35 additions and 2 deletions

View File

@ -1171,6 +1171,25 @@ Description | Route youtube-dl's output through gallery-dl's logging system.
=========== =====
downloader.ytdl.outtmpl
-----------------------
=========== =====
Type ``string``
Default ``null``
Description The `Output Template <https://github.com/ytdl-org/youtube-dl#output-template>`__
used to generate filenames for files downloaded with youtube-dl.
Special values:
* ``null``: generate filenames with `extractor.*.filename`_
* ``"default"``: use youtube-dl's default, currently ``"%(title)s-%(id)s.%(ext)s"``
Note: An output template other than ``null`` might
cause unexpected results in combination with other options
(e.g. ``"skip": "enumerate"``)
=========== =====
downloader.ytdl.raw-options
---------------------------
=========== =====

View File

@ -169,6 +169,7 @@
"format": null,
"forward-cookies": true,
"mtime": true,
"outtmpl": null,
"rate": null,
"retries": 4,
"timeout": 30.0,

View File

@ -8,7 +8,7 @@
"""Downloader module for URLs requiring youtube-dl support"""
from youtube_dl import YoutubeDL
from youtube_dl import YoutubeDL, DEFAULT_OUTTMPL
from .common import DownloaderBase
from .. import text
import os
@ -36,6 +36,9 @@ class YoutubeDLDownloader(DownloaderBase):
options["logger"] = self.log
self.forward_cookies = self.config("forward-cookies", True)
outtmpl = self.config("outtmpl")
self.outtmpl = DEFAULT_OUTTMPL if outtmpl == "default" else outtmpl
self.ytdl = YoutubeDL(options)
def download(self, url, pathfmt):
@ -60,7 +63,17 @@ class YoutubeDLDownloader(DownloaderBase):
def _download_video(self, pathfmt, info_dict):
if "url" in info_dict:
text.nameext_from_url(info_dict["url"], pathfmt.kwdict)
if self.outtmpl:
self.ytdl.params["outtmpl"] = self.outtmpl
pathfmt.filename = filename = self.ytdl.prepare_filename(info_dict)
pathfmt.extension = info_dict["ext"]
pathfmt.path = pathfmt.directory + filename
pathfmt.realpath = pathfmt.temppath = (
pathfmt.realdirectory + filename)
else:
pathfmt.set_extension(info_dict["ext"])
if pathfmt.exists():
pathfmt.temppath = ""
return True