ytdl-sub 2026.2.2__py3-none-any.whl → 2026.2.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ytdl_sub/__init__.py CHANGED
@@ -1 +1 @@
1
- __pypi_version__ = "2026.02.02";__local_version__ = "2026.02.02+c163f97"
1
+ __pypi_version__ = "2026.02.03";__local_version__ = "2026.02.03+d526545"
@@ -1,5 +1,6 @@
1
1
  import gc
2
2
  import os
3
+ import random
3
4
  import sys
4
5
  from datetime import datetime
5
6
  from pathlib import Path
@@ -75,6 +76,7 @@ def _download_subscriptions_from_yaml_files(
75
76
  subscription_override_dict: Dict,
76
77
  update_with_info_json: bool,
77
78
  dry_run: bool,
79
+ shuffle: bool,
78
80
  ) -> List[Subscription]:
79
81
  """
80
82
  Downloads all subscriptions from one or many subscription yaml files.
@@ -91,6 +93,8 @@ def _download_subscriptions_from_yaml_files(
91
93
  Whether to actually download or update using existing info json
92
94
  dry_run
93
95
  Whether to dry run or not
96
+ shuffle
97
+ Whether to shuffle the subscription download order
94
98
 
95
99
  Returns
96
100
  -------
@@ -112,6 +116,10 @@ def _download_subscriptions_from_yaml_files(
112
116
  subscription_override_dict=subscription_override_dict,
113
117
  )
114
118
 
119
+ if shuffle:
120
+ logger.info("Shuffling subscriptions")
121
+ random.shuffle(subscriptions)
122
+
115
123
  for subscription in subscriptions:
116
124
  with subscription.exception_handling():
117
125
  logger.info(
@@ -253,6 +261,7 @@ def main() -> List[Subscription]:
253
261
  subscription_override_dict=subscription_override_dict,
254
262
  update_with_info_json=args.update_with_info_json,
255
263
  dry_run=args.dry_run,
264
+ shuffle=args.shuffle,
256
265
  )
257
266
 
258
267
  # One-off download
@@ -172,6 +172,10 @@ class SubArguments:
172
172
  short="-o",
173
173
  long="--dl-override",
174
174
  )
175
+ SHUFFLE = CLIArgument(
176
+ short="-sh",
177
+ long="--shuffle",
178
+ )
175
179
 
176
180
 
177
181
  subscription_parser = subparsers.add_parser("sub")
@@ -197,6 +201,13 @@ subscription_parser.add_argument(
197
201
  help="override all subscription config values using `dl` syntax, "
198
202
  "i.e. --dl-override='--ytdl_options.max_downloads 3'",
199
203
  )
204
+ subscription_parser.add_argument(
205
+ SubArguments.SHUFFLE.short,
206
+ SubArguments.SHUFFLE.long,
207
+ action="store_true",
208
+ help="shuffle subscription order when downloading",
209
+ default=False,
210
+ )
200
211
 
201
212
  ###################################################################################################
202
213
  # DOWNLOAD PARSER
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ytdl-sub
3
- Version: 2026.2.2
3
+ Version: 2026.2.3
4
4
  Summary: Automate downloading metadata generation with YoutubeDL
5
5
  Author: Jesse Bannon
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -689,7 +689,7 @@ Classifier: Programming Language :: Python :: 3.11
689
689
  Requires-Python: >=3.10
690
690
  Description-Content-Type: text/markdown
691
691
  License-File: LICENSE
692
- Requires-Dist: yt-dlp[default]==2026.1.29
692
+ Requires-Dist: yt-dlp[default]==2026.1.31
693
693
  Requires-Dist: colorama~=0.4
694
694
  Requires-Dist: mergedeep~=1.3
695
695
  Requires-Dist: mediafile~=0.12
@@ -1,13 +1,13 @@
1
- ytdl_sub/__init__.py,sha256=0fwTHDr6XaKwXXTdbuAQ0QP_VQIpRpjxuILwDho9QF8,73
1
+ ytdl_sub/__init__.py,sha256=MaXw1c5ysOYYSMDFqjEpBLZ9yBi06fN7EWm00NgP15Y,73
2
2
  ytdl_sub/main.py,sha256=4Rf9wXxSKW7IPnWqG5YtTZ814PjP1n9WtoFDivaainE,1004
3
3
  ytdl_sub/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- ytdl_sub/cli/entrypoint.py,sha256=XXjUH4HiOP_BB2ZA_bNcyt5-o6YLAdZmj0EP3xtOtD8,9496
4
+ ytdl_sub/cli/entrypoint.py,sha256=OIChdvxzZ0qMkMxiUdJ2smhXI2pylx7E5kVd2nNRHT8,9740
5
5
  ytdl_sub/cli/output_summary.py,sha256=5iHO0k2XZSjR5N72jSjECNxI5h1NXaprDofxyGmJRp0,4318
6
6
  ytdl_sub/cli/output_transaction_log.py,sha256=bJo4z8tmlIFbQU4Wb3uz_g2uAfiHA31hbLqpEWszivQ,1863
7
7
  ytdl_sub/cli/parsers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  ytdl_sub/cli/parsers/cli_to_sub.py,sha256=CTwTzmvM03csc_dLXLREDWNs7HgiBd6huyctTgOyfGE,1684
9
9
  ytdl_sub/cli/parsers/dl.py,sha256=Fzc9nstJ8QXGhCOzSW1_v3cZHfSiVV2coFq3L1eTHtQ,9012
10
- ytdl_sub/cli/parsers/main.py,sha256=-H4A9DPARVWe2tCH3rOJiybevlmH3VYhS10yz3683zk,7245
10
+ ytdl_sub/cli/parsers/main.py,sha256=0oD0jkhBNIOGb-WeBJLaz3WYHkqYDEujgl-GZWpy9F4,7524
11
11
  ytdl_sub/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  ytdl_sub/config/config_file.py,sha256=SQtVrMIUq2z3WwJVOed4y84JBMQ8aa4pbiBB0Y-YY4M,2781
13
13
  ytdl_sub/config/config_validator.py,sha256=W1dvQD8wI7VOmGOHyaliu8DC6HOjfoGsgUw2MURTZOM,9797
@@ -158,9 +158,9 @@ ytdl_sub/validators/string_select_validator.py,sha256=KFXNKWX2J80WGt08m5gVYphPMH
158
158
  ytdl_sub/validators/validators.py,sha256=JC3-c9fSrozFADUY5jqZEhXpM2q3sfserlooQxT2DK8,9133
159
159
  ytdl_sub/ytdl_additions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
160
  ytdl_sub/ytdl_additions/enhanced_download_archive.py,sha256=Lsc0wjHdx9d8dYJCskZYAUGDAQ_QzQ-_xbQlyrBSzfk,24884
161
- ytdl_sub-2026.2.2.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
162
- ytdl_sub-2026.2.2.dist-info/METADATA,sha256=rhyPTeqmuM3eB0rW6JlE5enc428Fx7Zo1OiPh20Kr1g,51419
163
- ytdl_sub-2026.2.2.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
164
- ytdl_sub-2026.2.2.dist-info/entry_points.txt,sha256=K3T5235NlAI-WLmHCg5tzLZHqc33OLN5IY5fOGc9t10,48
165
- ytdl_sub-2026.2.2.dist-info/top_level.txt,sha256=6z-JWazl6jXspC2DNyxOnGnEqYyGzVbgcBDoXfbkUhI,9
166
- ytdl_sub-2026.2.2.dist-info/RECORD,,
161
+ ytdl_sub-2026.2.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
162
+ ytdl_sub-2026.2.3.dist-info/METADATA,sha256=39RWMe2zYboPcaNeDKA5YNIJxQgXRnX0AUZZo5Nm4Ig,51419
163
+ ytdl_sub-2026.2.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
164
+ ytdl_sub-2026.2.3.dist-info/entry_points.txt,sha256=K3T5235NlAI-WLmHCg5tzLZHqc33OLN5IY5fOGc9t10,48
165
+ ytdl_sub-2026.2.3.dist-info/top_level.txt,sha256=6z-JWazl6jXspC2DNyxOnGnEqYyGzVbgcBDoXfbkUhI,9
166
+ ytdl_sub-2026.2.3.dist-info/RECORD,,