logo

youtube-dl

[mirror] Download/Watch videos from video hosters
commit: 8939f784d92a8267f5bb1967e7953c2952ca243c
parent df0588a31f42010d4d43a428ca8a8d5908a960c9
Author: Yen Chi Hsuan <yan12125@gmail.com>
Date:   Fri,  3 Feb 2017 18:53:14 +0800

Merge pull request #11901 from ThomasChr/randonplaylistorder

New parameter --playlist-random to randomize playlist download order. Fixes #11889

Diffstat:

Myoutube_dl/YoutubeDL.py5+++++
Myoutube_dl/__init__.py1+
Myoutube_dl/options.py4++++
3 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py @@ -24,6 +24,7 @@ import sys import time import tokenize import traceback +import random from .compat import ( compat_basestring, @@ -159,6 +160,7 @@ class YoutubeDL(object): playlistend: Playlist item to end at. playlist_items: Specific indices of playlist to download. playlistreverse: Download playlist items in reverse order. + playlistrandom: Download playlist items in random order. matchtitle: Download only matching titles. rejecttitle: Reject downloads for matching titles. logger: Log messages to a logging.Logger instance. @@ -842,6 +844,9 @@ class YoutubeDL(object): if self.params.get('playlistreverse', False): entries = entries[::-1] + if self.params.get('playlistrandom', False): + random.shuffle(entries) + for i, entry in enumerate(entries, 1): self.to_screen('[download] Downloading video %s of %s' % (i, n_entries)) extra = { diff --git a/youtube_dl/__init__.py b/youtube_dl/__init__.py @@ -344,6 +344,7 @@ def _real_main(argv=None): 'playliststart': opts.playliststart, 'playlistend': opts.playlistend, 'playlistreverse': opts.playlist_reverse, + 'playlistrandom': opts.playlist_random, 'noplaylist': opts.noplaylist, 'logtostderr': opts.outtmpl == '-', 'consoletitle': opts.consoletitle, diff --git a/youtube_dl/options.py b/youtube_dl/options.py @@ -471,6 +471,10 @@ def parseOpts(overrideArguments=None): action='store_true', help='Download playlist videos in reverse order') downloader.add_option( + '--playlist-random', + action='store_true', + help='Download playlist videos in random order') + downloader.add_option( '--xattr-set-filesize', dest='xattr_set_filesize', action='store_true', help='Set file xattribute ytdl.filesize with expected file size (experimental)')