mirror of
https://github.com/yt-dlp/yt-dlp.git
synced 2025-02-17 07:30:50 +01:00
parent
79a451e576
commit
9590cc6b47
@ -758,6 +758,7 @@ If you fork the project on GitHub, you can run your fork's [build workflow](.git
|
|||||||
accessible under "progress" key. E.g.
|
accessible under "progress" key. E.g.
|
||||||
--console-title --progress-template
|
--console-title --progress-template
|
||||||
"download-title:%(info.id)s-%(progress.eta)s"
|
"download-title:%(info.id)s-%(progress.eta)s"
|
||||||
|
--progress-delta SECONDS Time between progress output (default: 0)
|
||||||
-v, --verbose Print various debugging information
|
-v, --verbose Print various debugging information
|
||||||
--dump-pages Print downloaded pages encoded using base64
|
--dump-pages Print downloaded pages encoded using base64
|
||||||
to debug problems (very verbose)
|
to debug problems (very verbose)
|
||||||
|
@ -481,7 +481,7 @@ class YoutubeDL:
|
|||||||
nopart, updatetime, buffersize, ratelimit, throttledratelimit, min_filesize,
|
nopart, updatetime, buffersize, ratelimit, throttledratelimit, min_filesize,
|
||||||
max_filesize, test, noresizebuffer, retries, file_access_retries, fragment_retries,
|
max_filesize, test, noresizebuffer, retries, file_access_retries, fragment_retries,
|
||||||
continuedl, xattr_set_filesize, hls_use_mpegts, http_chunk_size,
|
continuedl, xattr_set_filesize, hls_use_mpegts, http_chunk_size,
|
||||||
external_downloader_args, concurrent_fragment_downloads.
|
external_downloader_args, concurrent_fragment_downloads, progress_delta.
|
||||||
|
|
||||||
The following options are used by the post processors:
|
The following options are used by the post processors:
|
||||||
ffmpeg_location: Location of the ffmpeg/avconv binary; either the path
|
ffmpeg_location: Location of the ffmpeg/avconv binary; either the path
|
||||||
|
@ -836,6 +836,7 @@ def parse_options(argv=None):
|
|||||||
'noprogress': opts.quiet if opts.noprogress is None else opts.noprogress,
|
'noprogress': opts.quiet if opts.noprogress is None else opts.noprogress,
|
||||||
'progress_with_newline': opts.progress_with_newline,
|
'progress_with_newline': opts.progress_with_newline,
|
||||||
'progress_template': opts.progress_template,
|
'progress_template': opts.progress_template,
|
||||||
|
'progress_delta': opts.progress_delta,
|
||||||
'playliststart': opts.playliststart,
|
'playliststart': opts.playliststart,
|
||||||
'playlistend': opts.playlistend,
|
'playlistend': opts.playlistend,
|
||||||
'playlistreverse': opts.playlist_reverse,
|
'playlistreverse': opts.playlist_reverse,
|
||||||
|
@ -4,6 +4,7 @@ import functools
|
|||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
import re
|
import re
|
||||||
|
import threading
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from ..minicurses import (
|
from ..minicurses import (
|
||||||
@ -63,6 +64,7 @@ class FileDownloader:
|
|||||||
min_filesize: Skip files smaller than this size
|
min_filesize: Skip files smaller than this size
|
||||||
max_filesize: Skip files larger than this size
|
max_filesize: Skip files larger than this size
|
||||||
xattr_set_filesize: Set ytdl.filesize user xattribute with expected size.
|
xattr_set_filesize: Set ytdl.filesize user xattribute with expected size.
|
||||||
|
progress_delta: The minimum time between progress output, in seconds
|
||||||
external_downloader_args: A dictionary of downloader keys (in lower case)
|
external_downloader_args: A dictionary of downloader keys (in lower case)
|
||||||
and a list of additional command-line arguments for the
|
and a list of additional command-line arguments for the
|
||||||
executable. Use 'default' as the name for arguments to be
|
executable. Use 'default' as the name for arguments to be
|
||||||
@ -88,6 +90,9 @@ class FileDownloader:
|
|||||||
self.params = params
|
self.params = params
|
||||||
self._prepare_multiline_status()
|
self._prepare_multiline_status()
|
||||||
self.add_progress_hook(self.report_progress)
|
self.add_progress_hook(self.report_progress)
|
||||||
|
if self.params.get('progress_delta'):
|
||||||
|
self._progress_delta_lock = threading.Lock()
|
||||||
|
self._progress_delta_time = time.monotonic()
|
||||||
|
|
||||||
def _set_ydl(self, ydl):
|
def _set_ydl(self, ydl):
|
||||||
self.ydl = ydl
|
self.ydl = ydl
|
||||||
@ -366,6 +371,12 @@ class FileDownloader:
|
|||||||
if s['status'] != 'downloading':
|
if s['status'] != 'downloading':
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if update_delta := self.params.get('progress_delta'):
|
||||||
|
with self._progress_delta_lock:
|
||||||
|
if time.monotonic() < self._progress_delta_time:
|
||||||
|
return
|
||||||
|
self._progress_delta_time += update_delta
|
||||||
|
|
||||||
s.update({
|
s.update({
|
||||||
'_eta_str': self.format_eta(s.get('eta')).strip(),
|
'_eta_str': self.format_eta(s.get('eta')).strip(),
|
||||||
'_speed_str': self.format_speed(s.get('speed')),
|
'_speed_str': self.format_speed(s.get('speed')),
|
||||||
|
@ -1258,6 +1258,10 @@ def create_parser():
|
|||||||
'the progress attributes are accessible under "progress" key. E.g. '
|
'the progress attributes are accessible under "progress" key. E.g. '
|
||||||
# TODO: Document the fields inside "progress"
|
# TODO: Document the fields inside "progress"
|
||||||
'--console-title --progress-template "download-title:%(info.id)s-%(progress.eta)s"'))
|
'--console-title --progress-template "download-title:%(info.id)s-%(progress.eta)s"'))
|
||||||
|
verbosity.add_option(
|
||||||
|
'--progress-delta',
|
||||||
|
metavar='SECONDS', action='store', dest='progress_delta', type=float, default=0,
|
||||||
|
help='Time between progress output (default: 0)')
|
||||||
verbosity.add_option(
|
verbosity.add_option(
|
||||||
'-v', '--verbose',
|
'-v', '--verbose',
|
||||||
action='store_true', dest='verbose', default=False,
|
action='store_true', dest='verbose', default=False,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user