ytdl-sub 2026.2.2__tar.gz → 2026.2.2.post1__tar.gz

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.
Files changed (172) hide show
  1. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/PKG-INFO +1 -1
  2. ytdl_sub-2026.2.2.post1/src/ytdl_sub/__init__.py +1 -0
  3. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/cli/entrypoint.py +9 -0
  4. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/cli/parsers/main.py +11 -0
  5. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub.egg-info/PKG-INFO +1 -1
  6. ytdl_sub-2026.2.2/src/ytdl_sub/__init__.py +0 -1
  7. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/LICENSE +0 -0
  8. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/README.md +0 -0
  9. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/pyproject.toml +0 -0
  10. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/setup.cfg +0 -0
  11. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/cli/__init__.py +0 -0
  12. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/cli/output_summary.py +0 -0
  13. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/cli/output_transaction_log.py +0 -0
  14. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/cli/parsers/__init__.py +0 -0
  15. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/cli/parsers/cli_to_sub.py +0 -0
  16. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/cli/parsers/dl.py +0 -0
  17. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/__init__.py +0 -0
  18. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/config_file.py +0 -0
  19. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/config_validator.py +0 -0
  20. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/defaults.py +0 -0
  21. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/overrides.py +0 -0
  22. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/plugin/__init__.py +0 -0
  23. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/plugin/plugin.py +0 -0
  24. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/plugin/plugin_mapping.py +0 -0
  25. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/plugin/plugin_operation.py +0 -0
  26. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/plugin/preset_plugins.py +0 -0
  27. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/preset.py +0 -0
  28. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/preset_options.py +0 -0
  29. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/validators/__init__.py +0 -0
  30. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/validators/options.py +0 -0
  31. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/config/validators/variable_validation.py +0 -0
  32. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/downloaders/__init__.py +0 -0
  33. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/downloaders/info_json/__init__.py +0 -0
  34. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/downloaders/info_json/info_json_downloader.py +0 -0
  35. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/downloaders/source_plugin.py +0 -0
  36. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/downloaders/url/__init__.py +0 -0
  37. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/downloaders/url/downloader.py +0 -0
  38. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/downloaders/url/validators.py +0 -0
  39. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/downloaders/ytdl_options_builder.py +0 -0
  40. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/downloaders/ytdlp.py +0 -0
  41. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/__init__.py +0 -0
  42. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/base_entry.py +0 -0
  43. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/entry.py +0 -0
  44. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/entry_parent.py +0 -0
  45. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/script/__init__.py +0 -0
  46. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/script/custom_functions.py +0 -0
  47. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/script/function_scripts.py +0 -0
  48. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/script/variable_definitions.py +0 -0
  49. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/script/variable_types.py +0 -0
  50. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/variables/__init__.py +0 -0
  51. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/entries/variables/override_variables.py +0 -0
  52. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/main.py +0 -0
  53. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/__init__.py +0 -0
  54. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/audio_extract.py +0 -0
  55. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/chapters.py +0 -0
  56. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/date_range.py +0 -0
  57. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/embed_thumbnail.py +0 -0
  58. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/file_convert.py +0 -0
  59. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/filter_exclude.py +0 -0
  60. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/filter_include.py +0 -0
  61. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/format.py +0 -0
  62. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/internal/__init__.py +0 -0
  63. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/internal/view.py +0 -0
  64. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/match_filters.py +0 -0
  65. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/music_tags.py +0 -0
  66. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/nfo_tags.py +0 -0
  67. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/output_directory_nfo_tags.py +0 -0
  68. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/split_by_chapters.py +0 -0
  69. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/square_thumbnail.py +0 -0
  70. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/static_nfo_tags.py +0 -0
  71. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/subtitles.py +0 -0
  72. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/throttle_protection.py +0 -0
  73. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/plugins/video_tags.py +0 -0
  74. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/__init__.py +0 -0
  75. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/__init__.py +0 -0
  76. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/download_deletion_options.yaml +0 -0
  77. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/filter_duration.yaml +0 -0
  78. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/filter_keywords.yaml +0 -0
  79. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/media_quality.yaml +0 -0
  80. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/players.yaml +0 -0
  81. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/throttle_protection.yaml +0 -0
  82. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/url.yaml +0 -0
  83. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/url_bilateral.yaml +0 -0
  84. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/helpers/url_categorized.yaml +0 -0
  85. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/internal/__init__.py +0 -0
  86. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/internal/view.yaml +0 -0
  87. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/music/__init__.py +0 -0
  88. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/music/albums_from_chapters.yaml +0 -0
  89. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/music/albums_from_playlists.yaml +0 -0
  90. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/music/singles.yaml +0 -0
  91. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/music/soundcloud.yaml +0 -0
  92. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/music_videos/__init__.py +0 -0
  93. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/music_videos/music_video_base.yaml +0 -0
  94. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/music_videos/music_video_extras.yaml +0 -0
  95. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/music_videos/music_videos.yaml +0 -0
  96. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py +0 -0
  97. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml +0 -0
  98. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml +0 -0
  99. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml +0 -0
  100. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml +0 -0
  101. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/__init__.py +0 -0
  102. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/__init__.py +0 -0
  103. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/array_functions.py +0 -0
  104. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/boolean_functions.py +0 -0
  105. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/conditional_functions.py +0 -0
  106. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/date_functions.py +0 -0
  107. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/error_functions.py +0 -0
  108. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/json_functions.py +0 -0
  109. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/map_functions.py +0 -0
  110. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/numeric_functions.py +0 -0
  111. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/print_functions.py +0 -0
  112. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/regex_functions.py +0 -0
  113. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/functions/string_functions.py +0 -0
  114. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/parser.py +0 -0
  115. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/script.py +0 -0
  116. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/script_output.py +0 -0
  117. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/types/__init__.py +0 -0
  118. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/types/array.py +0 -0
  119. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/types/function.py +0 -0
  120. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/types/map.py +0 -0
  121. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/types/resolvable.py +0 -0
  122. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/types/syntax_tree.py +0 -0
  123. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/types/variable.py +0 -0
  124. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/types/variable_dependency.py +0 -0
  125. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/utils/__init__.py +0 -0
  126. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/utils/exception_formatters.py +0 -0
  127. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/utils/exceptions.py +0 -0
  128. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/utils/name_validation.py +0 -0
  129. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/script/utils/type_checking.py +0 -0
  130. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/subscriptions/__init__.py +0 -0
  131. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/subscriptions/base_subscription.py +0 -0
  132. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/subscriptions/subscription.py +0 -0
  133. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/subscriptions/subscription_download.py +0 -0
  134. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/subscriptions/subscription_validators.py +0 -0
  135. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/subscriptions/subscription_ytdl_options.py +0 -0
  136. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/thread/__init__.py +0 -0
  137. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/thread/log_entries_downloaded_listener.py +0 -0
  138. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/__init__.py +0 -0
  139. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/chapters.py +0 -0
  140. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/datetime.py +0 -0
  141. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/exceptions.py +0 -0
  142. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/ffmpeg.py +0 -0
  143. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/file_handler.py +0 -0
  144. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/file_lock.py +0 -0
  145. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/file_path.py +0 -0
  146. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/logger.py +0 -0
  147. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/retry.py +0 -0
  148. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/script.py +0 -0
  149. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/scriptable.py +0 -0
  150. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/subtitles.py +0 -0
  151. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/system.py +0 -0
  152. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/thumbnail.py +0 -0
  153. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/xml.py +0 -0
  154. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/utils/yaml.py +0 -0
  155. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/__init__.py +0 -0
  156. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/audo_codec_validator.py +0 -0
  157. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/file_path_validators.py +0 -0
  158. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/nfo_validators.py +0 -0
  159. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/regex_validator.py +0 -0
  160. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/source_variable_validator.py +0 -0
  161. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/strict_dict_validator.py +0 -0
  162. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/string_datetime.py +0 -0
  163. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/string_formatter_validators.py +0 -0
  164. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/string_select_validator.py +0 -0
  165. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/validators/validators.py +0 -0
  166. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/ytdl_additions/__init__.py +0 -0
  167. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub/ytdl_additions/enhanced_download_archive.py +0 -0
  168. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub.egg-info/SOURCES.txt +0 -0
  169. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub.egg-info/dependency_links.txt +0 -0
  170. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub.egg-info/entry_points.txt +0 -0
  171. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub.egg-info/requires.txt +0 -0
  172. {ytdl_sub-2026.2.2 → ytdl_sub-2026.2.2.post1}/src/ytdl_sub.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ytdl-sub
3
- Version: 2026.2.2
3
+ Version: 2026.2.2.post1
4
4
  Summary: Automate downloading metadata generation with YoutubeDL
5
5
  Author: Jesse Bannon
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -0,0 +1 @@
1
+ __pypi_version__ = "2026.02.02.post1";__local_version__ = "2026.02.02+ced547b"
@@ -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.2.post1
4
4
  Summary: Automate downloading metadata generation with YoutubeDL
5
5
  Author: Jesse Bannon
6
6
  License: GNU GENERAL PUBLIC LICENSE
@@ -1 +0,0 @@
1
- __pypi_version__ = "2026.02.02";__local_version__ = "2026.02.02+c163f97"
File without changes
File without changes
File without changes