diff options
author | Sergey M․ <dstftw@gmail.com> | 2017-10-06 23:46:57 +0700 |
---|---|---|
committer | Sergey M․ <dstftw@gmail.com> | 2017-10-06 23:50:34 +0700 |
commit | cd6fc19ed76af6687fb2cb5f87d9ed4c3071c203 (patch) | |
tree | c25034b9fcede686df3d00fcb47f5584e7e6e070 | |
parent | 86a15ed64b410336b2145f4a6b8e8a22cbf24f51 (diff) |
[YoutubeDL] Ignore duplicates in --playlist-items
E.g. '--playlist-items 2-4,3-4,3' should result in '[2,3,4]', not '[2,3,4,3,4,3]'
-rw-r--r-- | test/test_YoutubeDL.py | 3 | ||||
-rwxr-xr-x | youtube_dl/YoutubeDL.py | 3 |
2 files changed, 5 insertions, 1 deletions
diff --git a/test/test_YoutubeDL.py b/test/test_YoutubeDL.py index 5ac34e663..db936bfb8 100644 --- a/test/test_YoutubeDL.py +++ b/test/test_YoutubeDL.py @@ -773,6 +773,9 @@ class TestYoutubeDL(unittest.TestCase): result = get_ids({'playlist_items': '3-10'}) self.assertEqual(result, [3, 4]) + result = get_ids({'playlist_items': '2-4,3-4,3'}) + self.assertEqual(result, [2, 3, 4]) + def test_urlopen_no_file_protocol(self): # see https://github.com/rg3/youtube-dl/issues/8227 ydl = YDL() diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py index 9036f0f94..855d6b8e5 100755 --- a/youtube_dl/YoutubeDL.py +++ b/youtube_dl/YoutubeDL.py @@ -65,6 +65,7 @@ from .utils import ( locked_file, make_HTTPS_handler, MaxDownloadsReached, + orderedSet, PagedList, parse_filesize, PerRequestProxyHandler, @@ -908,7 +909,7 @@ class YoutubeDL(object): yield int(item) else: yield int(string_segment) - playlistitems = iter_playlistitems(playlistitems_str) + playlistitems = orderedSet(iter_playlistitems(playlistitems_str)) ie_entries = ie_result['entries'] |