[downloader:http] add 'validate' option

This commit is contained in:
Mike Fährmann
2023-01-11 15:37:40 +01:00
parent 85bd1cbc89
commit c0d7d2be35
3 changed files with 18 additions and 3 deletions

View File

@@ -3466,6 +3466,19 @@ Description
regardless of this option. regardless of this option.
downloader.http.validate
------------------------
Type
``bool``
Default
``true``
Description
Check for invalid responses.
Fail a download when a file does not pass
instead of downloading a potentially broken file.
downloader.ytdl.format downloader.ytdl.format
---------------------- ----------------------
Type Type

View File

@@ -390,7 +390,8 @@
{ {
"adjust-extensions": true, "adjust-extensions": true,
"chunk-size": 32768, "chunk-size": 32768,
"headers": null "headers": null,
"validate": true
}, },
"ytdl": "ytdl":

View File

@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2014-2022 Mike Fährmann # Copyright 2014-2023 Mike Fährmann
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as # it under the terms of the GNU General Public License version 2 as
@@ -33,6 +33,7 @@ class HttpDownloader(DownloaderBase):
self.chunk_size = self.config("chunk-size", 32768) self.chunk_size = self.config("chunk-size", 32768)
self.metadata = extractor.config("http-metadata") self.metadata = extractor.config("http-metadata")
self.progress = self.config("progress", 3.0) self.progress = self.config("progress", 3.0)
self.validate = self.config("validate", True)
self.headers = self.config("headers") self.headers = self.config("headers")
self.minsize = self.config("filesize-min") self.minsize = self.config("filesize-min")
self.maxsize = self.config("filesize-max") self.maxsize = self.config("filesize-max")
@@ -175,7 +176,7 @@ class HttpDownloader(DownloaderBase):
# check for invalid responses # check for invalid responses
validate = kwdict.get("_http_validate") validate = kwdict.get("_http_validate")
if validate: if validate and self.validate:
result = validate(response) result = validate(response)
if isinstance(result, str): if isinstance(result, str):
url = result url = result