yt-dlp 2026.1.29.165626.dev0__tar.gz → 2026.1.31__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 (1259) hide show
  1. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/AUTHORS +2 -0
  2. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/Changelog.md +15 -1
  3. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/PKG-INFO +3 -3
  4. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/README.md +2 -2
  5. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/README.txt +13 -12
  6. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/completions/fish/yt-dlp.fish +1 -1
  7. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_jsc/test_ejs_integration.py +0 -1
  8. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt-dlp.1 +14 -13
  9. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/__init__.py +2 -0
  10. yt_dlp-2026.1.31/yt_dlp/downloader/soop.py +61 -0
  11. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/afreecatv.py +39 -1
  12. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lazy_extractors.py +1 -1
  13. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/unsupported.py +5 -0
  14. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/whyp.py +8 -2
  15. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/_base.py +0 -42
  16. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/_video.py +12 -9
  17. yt_dlp-2026.1.31/yt_dlp/version.py +15 -0
  18. yt_dlp-2026.1.29.165626.dev0/yt_dlp/version.py +0 -15
  19. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/.gitignore +0 -0
  20. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/LICENSE +0 -0
  21. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/completions/bash/yt-dlp +0 -0
  22. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/completions/zsh/_yt-dlp +0 -0
  23. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/__init__.py +0 -0
  24. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/bash-completion.in +0 -0
  25. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/bash-completion.py +0 -0
  26. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/changelog_override.json +0 -0
  27. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/changelog_override.schema.json +0 -0
  28. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/check-porn.py +0 -0
  29. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/cli_to_api.py +0 -0
  30. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/fish-completion.in +0 -0
  31. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/fish-completion.py +0 -0
  32. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/generate_aes_testdata.py +0 -0
  33. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/generate_third_party_licenses.py +0 -0
  34. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/install_deps.py +0 -0
  35. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/lazy_load_template.py +0 -0
  36. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/logo.ico +0 -0
  37. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/make_changelog.py +0 -0
  38. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/make_contributing.py +0 -0
  39. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/make_issue_template.py +0 -0
  40. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/make_lazy_extractors.py +0 -0
  41. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/make_readme.py +0 -0
  42. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/make_supportedsites.py +0 -0
  43. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/prepare_manpage.py +0 -0
  44. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/run_tests.py +0 -0
  45. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/set-variant.py +0 -0
  46. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/setup_variables.py +0 -0
  47. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/setup_variables_tests.py +0 -0
  48. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/tomlparse.py +0 -0
  49. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/update-version.py +0 -0
  50. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/update_changelog.py +0 -0
  51. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/update_ejs.py +0 -0
  52. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/utils.py +0 -0
  53. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/zsh-completion.in +0 -0
  54. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/devscripts/zsh-completion.py +0 -0
  55. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/pyproject.toml +0 -0
  56. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/supportedsites.md +0 -0
  57. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/__init__.py +0 -0
  58. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/conftest.py +0 -0
  59. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/helper.py +0 -0
  60. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/parameters.json +0 -0
  61. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_InfoExtractor.py +0 -0
  62. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_YoutubeDL.py +0 -0
  63. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_YoutubeDLCookieJar.py +0 -0
  64. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_aes.py +0 -0
  65. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_age_restriction.py +0 -0
  66. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_all_urls.py +0 -0
  67. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_cache.py +0 -0
  68. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_compat.py +0 -0
  69. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_config.py +0 -0
  70. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_cookies.py +0 -0
  71. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_devalue.py +0 -0
  72. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_download.py +0 -0
  73. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_downloader_external.py +0 -0
  74. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_downloader_http.py +0 -0
  75. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_execution.py +0 -0
  76. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_http_proxy.py +0 -0
  77. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_jsc/conftest.py +0 -0
  78. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_jsc/test_provider.py +0 -0
  79. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_jsinterp.py +0 -0
  80. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_netrc.py +0 -0
  81. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_networking.py +0 -0
  82. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_networking_utils.py +0 -0
  83. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_overwrites.py +0 -0
  84. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_plugins.py +0 -0
  85. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_post_hooks.py +0 -0
  86. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_postprocessors.py +0 -0
  87. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_pot/conftest.py +0 -0
  88. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_pot/test_pot_builtin_memorycache.py +0 -0
  89. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_pot/test_pot_builtin_utils.py +0 -0
  90. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_pot/test_pot_builtin_webpospec.py +0 -0
  91. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_pot/test_pot_director.py +0 -0
  92. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_pot/test_pot_framework.py +0 -0
  93. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_socks.py +0 -0
  94. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_subtitles.py +0 -0
  95. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_traversal.py +0 -0
  96. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_update.py +0 -0
  97. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_utils.py +0 -0
  98. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_verbose_output.py +0 -0
  99. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_websockets.py +0 -0
  100. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_youtube_lists.py +0 -0
  101. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/test_youtube_misc.py +0 -0
  102. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testcert.pem +0 -0
  103. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/ca.crt +0 -0
  104. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/ca.key +0 -0
  105. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/ca.srl +0 -0
  106. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/client.crt +0 -0
  107. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/client.csr +0 -0
  108. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/client.key +0 -0
  109. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/clientencrypted.key +0 -0
  110. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/clientwithencryptedkey.crt +0 -0
  111. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/clientwithkey.crt +0 -0
  112. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/certificate/instructions.md +0 -0
  113. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/cookies/httponly_cookies.txt +0 -0
  114. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/cookies/malformed_cookies.txt +0 -0
  115. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/cookies/session_cookies.txt +0 -0
  116. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/f4m/custom_base_url.f4m +0 -0
  117. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/ism/ec-3_test.Manifest +0 -0
  118. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/ism/sintel.Manifest +0 -0
  119. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/m3u8/bipbop_16x9.m3u8 +0 -0
  120. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/m3u8/img_bipbop_adv_example_fmp4.m3u8 +0 -0
  121. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/mpd/float_duration.mpd +0 -0
  122. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/mpd/subtitles.mpd +0 -0
  123. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/mpd/unfragmented.mpd +0 -0
  124. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/mpd/urls_only.mpd +0 -0
  125. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/netrc/netrc +0 -0
  126. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/netrc/print_netrc.py +0 -0
  127. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/plugin_packages/testpackage/yt_dlp_plugins/extractor/package.py +0 -0
  128. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/reload_plugins/yt_dlp_plugins/extractor/normal.py +0 -0
  129. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/reload_plugins/yt_dlp_plugins/postprocessor/normal.py +0 -0
  130. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/thumbnails/foo %d bar/placeholder +0 -0
  131. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/xspf/foo_xspf.xspf +0 -0
  132. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/yt_dlp_plugins/extractor/_ignore.py +0 -0
  133. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/yt_dlp_plugins/extractor/ignore.py +0 -0
  134. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/yt_dlp_plugins/extractor/normal.py +0 -0
  135. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/yt_dlp_plugins/extractor/override.py +0 -0
  136. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/yt_dlp_plugins/extractor/overridetwo.py +0 -0
  137. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/yt_dlp_plugins/postprocessor/normal.py +0 -0
  138. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/zipped_plugins/yt_dlp_plugins/extractor/zipped.py +0 -0
  139. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/test/testdata/zipped_plugins/yt_dlp_plugins/postprocessor/zipped.py +0 -0
  140. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/YoutubeDL.py +0 -0
  141. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/__init__.py +0 -0
  142. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/__main__.py +0 -0
  143. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/__pyinstaller/__init__.py +0 -0
  144. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/__pyinstaller/hook-yt_dlp.py +0 -0
  145. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/aes.py +0 -0
  146. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/cache.py +0 -0
  147. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/compat/__init__.py +0 -0
  148. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/compat/_deprecated.py +0 -0
  149. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/compat/_legacy.py +0 -0
  150. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/compat/compat_utils.py +0 -0
  151. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/compat/imghdr.py +0 -0
  152. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/compat/shutil.py +0 -0
  153. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/compat/urllib/__init__.py +0 -0
  154. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/compat/urllib/request.py +0 -0
  155. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/cookies.py +0 -0
  156. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/dependencies/Cryptodome.py +0 -0
  157. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/dependencies/__init__.py +0 -0
  158. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/bunnycdn.py +0 -0
  159. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/common.py +0 -0
  160. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/dash.py +0 -0
  161. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/external.py +0 -0
  162. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/f4m.py +0 -0
  163. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/fc2.py +0 -0
  164. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/fragment.py +0 -0
  165. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/hls.py +0 -0
  166. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/http.py +0 -0
  167. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/ism.py +0 -0
  168. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/mhtml.py +0 -0
  169. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/niconico.py +0 -0
  170. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/rtmp.py +0 -0
  171. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/rtsp.py +0 -0
  172. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/websocket.py +0 -0
  173. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/downloader/youtube_live_chat.py +0 -0
  174. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/__init__.py +0 -0
  175. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/_extractors.py +0 -0
  176. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/abc.py +0 -0
  177. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/abcnews.py +0 -0
  178. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/abcotvs.py +0 -0
  179. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/abematv.py +0 -0
  180. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/academicearth.py +0 -0
  181. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/acast.py +0 -0
  182. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/acfun.py +0 -0
  183. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/adn.py +0 -0
  184. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/adobeconnect.py +0 -0
  185. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/adobepass.py +0 -0
  186. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/adobetv.py +0 -0
  187. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/adultswim.py +0 -0
  188. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/aenetworks.py +0 -0
  189. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/aeonco.py +0 -0
  190. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/agalega.py +0 -0
  191. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/agora.py +0 -0
  192. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/airtv.py +0 -0
  193. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/aitube.py +0 -0
  194. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/alibaba.py +0 -0
  195. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/aliexpress.py +0 -0
  196. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/aljazeera.py +0 -0
  197. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/allocine.py +0 -0
  198. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/allstar.py +0 -0
  199. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/alphaporno.py +0 -0
  200. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/alsace20tv.py +0 -0
  201. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/altcensored.py +0 -0
  202. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/alura.py +0 -0
  203. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/amadeustv.py +0 -0
  204. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/amara.py +0 -0
  205. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/amazon.py +0 -0
  206. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/amazonminitv.py +0 -0
  207. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/amcnetworks.py +0 -0
  208. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/americastestkitchen.py +0 -0
  209. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/amp.py +0 -0
  210. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/anchorfm.py +0 -0
  211. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/angel.py +0 -0
  212. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/antenna.py +0 -0
  213. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/anvato.py +0 -0
  214. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/aol.py +0 -0
  215. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/apa.py +0 -0
  216. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/aparat.py +0 -0
  217. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/appleconnect.py +0 -0
  218. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/applepodcasts.py +0 -0
  219. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/appletrailers.py +0 -0
  220. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/archiveorg.py +0 -0
  221. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/arcpublishing.py +0 -0
  222. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ard.py +0 -0
  223. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/arnes.py +0 -0
  224. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/art19.py +0 -0
  225. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/arte.py +0 -0
  226. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/asobichannel.py +0 -0
  227. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/asobistage.py +0 -0
  228. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/atresplayer.py +0 -0
  229. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/atscaleconf.py +0 -0
  230. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/atvat.py +0 -0
  231. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/audimedia.py +0 -0
  232. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/audioboom.py +0 -0
  233. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/audiodraft.py +0 -0
  234. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/audiomack.py +0 -0
  235. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/audius.py +0 -0
  236. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/awaan.py +0 -0
  237. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/aws.py +0 -0
  238. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/axs.py +0 -0
  239. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/azmedien.py +0 -0
  240. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/baidu.py +0 -0
  241. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/banbye.py +0 -0
  242. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bandcamp.py +0 -0
  243. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bandlab.py +0 -0
  244. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bannedvideo.py +0 -0
  245. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bbc.py +0 -0
  246. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/beacon.py +0 -0
  247. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/beatbump.py +0 -0
  248. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/beatport.py +0 -0
  249. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/beeg.py +0 -0
  250. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/behindkink.py +0 -0
  251. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/berufetv.py +0 -0
  252. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bet.py +0 -0
  253. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bfi.py +0 -0
  254. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bfmtv.py +0 -0
  255. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bibeltv.py +0 -0
  256. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bigflix.py +0 -0
  257. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bigo.py +0 -0
  258. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bild.py +0 -0
  259. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bilibili.py +0 -0
  260. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/biobiochiletv.py +0 -0
  261. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bitchute.py +0 -0
  262. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bitmovin.py +0 -0
  263. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/blackboardcollaborate.py +0 -0
  264. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bleacherreport.py +0 -0
  265. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/blerp.py +0 -0
  266. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/blogger.py +0 -0
  267. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bloomberg.py +0 -0
  268. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bluesky.py +0 -0
  269. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bokecc.py +0 -0
  270. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bongacams.py +0 -0
  271. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/boosty.py +0 -0
  272. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bostonglobe.py +0 -0
  273. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/box.py +0 -0
  274. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/boxcast.py +0 -0
  275. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bpb.py +0 -0
  276. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/br.py +0 -0
  277. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/brainpop.py +0 -0
  278. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/breitbart.py +0 -0
  279. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/brightcove.py +0 -0
  280. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/brilliantpala.py +0 -0
  281. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/btvplus.py +0 -0
  282. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bundesliga.py +0 -0
  283. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bundestag.py +0 -0
  284. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/bunnycdn.py +0 -0
  285. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/businessinsider.py +0 -0
  286. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/buzzfeed.py +0 -0
  287. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/byutv.py +0 -0
  288. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/c56.py +0 -0
  289. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/caffeinetv.py +0 -0
  290. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/callin.py +0 -0
  291. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/caltrans.py +0 -0
  292. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cam4.py +0 -0
  293. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/camdemy.py +0 -0
  294. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/camfm.py +0 -0
  295. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cammodels.py +0 -0
  296. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/camsoda.py +0 -0
  297. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/camtasia.py +0 -0
  298. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/canal1.py +0 -0
  299. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/canalalpha.py +0 -0
  300. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/canalc2.py +0 -0
  301. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/canalplus.py +0 -0
  302. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/canalsurmas.py +0 -0
  303. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/caracoltv.py +0 -0
  304. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cbc.py +0 -0
  305. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cbs.py +0 -0
  306. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cbsnews.py +0 -0
  307. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cbssports.py +0 -0
  308. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ccc.py +0 -0
  309. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ccma.py +0 -0
  310. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cctv.py +0 -0
  311. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cda.py +0 -0
  312. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cellebrite.py +0 -0
  313. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ceskatelevize.py +0 -0
  314. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cgtn.py +0 -0
  315. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/charlierose.py +0 -0
  316. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/chaturbate.py +0 -0
  317. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/chilloutzone.py +0 -0
  318. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/chzzk.py +0 -0
  319. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cinemax.py +0 -0
  320. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cinetecamilano.py +0 -0
  321. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cineverse.py +0 -0
  322. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ciscolive.py +0 -0
  323. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ciscowebex.py +0 -0
  324. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cjsw.py +0 -0
  325. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/clipchamp.py +0 -0
  326. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/clippit.py +0 -0
  327. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cliprs.py +0 -0
  328. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/closertotruth.py +0 -0
  329. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cloudflarestream.py +0 -0
  330. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cloudycdn.py +0 -0
  331. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/clubic.py +0 -0
  332. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/clyp.py +0 -0
  333. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cnbc.py +0 -0
  334. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cnn.py +0 -0
  335. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/comedycentral.py +0 -0
  336. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/common.py +0 -0
  337. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/commonmistakes.py +0 -0
  338. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/commonprotocols.py +0 -0
  339. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/condenast.py +0 -0
  340. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/contv.py +0 -0
  341. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/corus.py +0 -0
  342. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/coub.py +0 -0
  343. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cozytv.py +0 -0
  344. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cpac.py +0 -0
  345. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cracked.py +0 -0
  346. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/craftsy.py +0 -0
  347. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/croatianfilm.py +0 -0
  348. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/crooksandliars.py +0 -0
  349. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/crowdbunker.py +0 -0
  350. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/crtvg.py +0 -0
  351. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cspan.py +0 -0
  352. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ctsnews.py +0 -0
  353. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ctvnews.py +0 -0
  354. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cultureunplugged.py +0 -0
  355. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/curiositystream.py +0 -0
  356. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/cybrary.py +0 -0
  357. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dacast.py +0 -0
  358. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dailymail.py +0 -0
  359. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dailymotion.py +0 -0
  360. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dailywire.py +0 -0
  361. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/damtomo.py +0 -0
  362. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dangalplay.py +0 -0
  363. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/daum.py +0 -0
  364. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/daystar.py +0 -0
  365. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dbtv.py +0 -0
  366. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dctp.py +0 -0
  367. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/democracynow.py +0 -0
  368. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/detik.py +0 -0
  369. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/deuxm.py +0 -0
  370. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dfb.py +0 -0
  371. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dhm.py +0 -0
  372. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/digitalconcerthall.py +0 -0
  373. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/digiteka.py +0 -0
  374. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/digiview.py +0 -0
  375. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/discogs.py +0 -0
  376. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/disney.py +0 -0
  377. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dispeak.py +0 -0
  378. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dlf.py +0 -0
  379. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dlive.py +0 -0
  380. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/douyutv.py +0 -0
  381. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dplay.py +0 -0
  382. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/drbonanza.py +0 -0
  383. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dreisat.py +0 -0
  384. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/drooble.py +0 -0
  385. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dropbox.py +0 -0
  386. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dropout.py +0 -0
  387. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/drtalks.py +0 -0
  388. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/drtuber.py +0 -0
  389. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/drtv.py +0 -0
  390. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dtube.py +0 -0
  391. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/duboku.py +0 -0
  392. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dumpert.py +0 -0
  393. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/duoplay.py +0 -0
  394. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dvtv.py +0 -0
  395. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/dw.py +0 -0
  396. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ebaumsworld.py +0 -0
  397. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ebay.py +0 -0
  398. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/egghead.py +0 -0
  399. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/eggs.py +0 -0
  400. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/eighttracks.py +0 -0
  401. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/eitb.py +0 -0
  402. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/elementorembed.py +0 -0
  403. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/elonet.py +0 -0
  404. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/elpais.py +0 -0
  405. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/eltrecetv.py +0 -0
  406. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/embedly.py +0 -0
  407. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/epicon.py +0 -0
  408. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/epidemicsound.py +0 -0
  409. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/eplus.py +0 -0
  410. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/epoch.py +0 -0
  411. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/eporner.py +0 -0
  412. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/erocast.py +0 -0
  413. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/eroprofile.py +0 -0
  414. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/err.py +0 -0
  415. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ertgr.py +0 -0
  416. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/espn.py +0 -0
  417. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ettutv.py +0 -0
  418. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/europa.py +0 -0
  419. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/europeantour.py +0 -0
  420. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/eurosport.py +0 -0
  421. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/euscreen.py +0 -0
  422. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/expressen.py +0 -0
  423. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/extractors.py +0 -0
  424. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/eyedotv.py +0 -0
  425. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/facebook.py +0 -0
  426. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fancode.py +0 -0
  427. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fathom.py +0 -0
  428. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/faulio.py +0 -0
  429. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/faz.py +0 -0
  430. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fc2.py +0 -0
  431. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fczenit.py +0 -0
  432. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fifa.py +0 -0
  433. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/filmarchiv.py +0 -0
  434. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/filmon.py +0 -0
  435. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/filmweb.py +0 -0
  436. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/firsttv.py +0 -0
  437. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fivetv.py +0 -0
  438. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/flextv.py +0 -0
  439. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/flickr.py +0 -0
  440. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/floatplane.py +0 -0
  441. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/folketinget.py +0 -0
  442. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/footyroom.py +0 -0
  443. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/formula1.py +0 -0
  444. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fourtube.py +0 -0
  445. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fox.py +0 -0
  446. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fox9.py +0 -0
  447. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/foxnews.py +0 -0
  448. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/foxsports.py +0 -0
  449. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fptplay.py +0 -0
  450. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/francaisfacile.py +0 -0
  451. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/franceinter.py +0 -0
  452. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/francetv.py +0 -0
  453. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/freesound.py +0 -0
  454. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/freespeech.py +0 -0
  455. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/freetv.py +0 -0
  456. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/frontendmasters.py +0 -0
  457. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/frontro.py +0 -0
  458. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fujitv.py +0 -0
  459. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/funk.py +0 -0
  460. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/funker530.py +0 -0
  461. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/fuyintv.py +0 -0
  462. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gab.py +0 -0
  463. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gaia.py +0 -0
  464. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gamedevtv.py +0 -0
  465. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gamejolt.py +0 -0
  466. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gamespot.py +0 -0
  467. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gamestar.py +0 -0
  468. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gaskrank.py +0 -0
  469. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gazeta.py +0 -0
  470. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gbnews.py +0 -0
  471. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gdcvault.py +0 -0
  472. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gedidigital.py +0 -0
  473. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/generic.py +0 -0
  474. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/genericembeds.py +0 -0
  475. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/genius.py +0 -0
  476. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/germanupa.py +0 -0
  477. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/getcourseru.py +0 -0
  478. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gettr.py +0 -0
  479. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/giantbomb.py +0 -0
  480. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/glide.py +0 -0
  481. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/globalplayer.py +0 -0
  482. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/globo.py +0 -0
  483. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/glomex.py +0 -0
  484. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gmanetwork.py +0 -0
  485. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/go.py +0 -0
  486. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/godresource.py +0 -0
  487. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/godtube.py +0 -0
  488. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gofile.py +0 -0
  489. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/golem.py +0 -0
  490. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/goodgame.py +0 -0
  491. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/googledrive.py +0 -0
  492. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/googlepodcasts.py +0 -0
  493. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/googlesearch.py +0 -0
  494. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/goplay.py +0 -0
  495. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gopro.py +0 -0
  496. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/goshgay.py +0 -0
  497. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gotostage.py +0 -0
  498. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gputechconf.py +0 -0
  499. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/graspop.py +0 -0
  500. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/gronkh.py +0 -0
  501. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/groupon.py +0 -0
  502. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/harpodeon.py +0 -0
  503. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hbo.py +0 -0
  504. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hearthisat.py +0 -0
  505. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/heise.py +0 -0
  506. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hellporno.py +0 -0
  507. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hgtv.py +0 -0
  508. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hidive.py +0 -0
  509. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/historicfilms.py +0 -0
  510. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hitrecord.py +0 -0
  511. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hketv.py +0 -0
  512. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hollywoodreporter.py +0 -0
  513. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/holodex.py +0 -0
  514. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hotnewhiphop.py +0 -0
  515. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hotstar.py +0 -0
  516. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hrefli.py +0 -0
  517. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hrfensehen.py +0 -0
  518. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hrti.py +0 -0
  519. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hse.py +0 -0
  520. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/huajiao.py +0 -0
  521. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/huffpost.py +0 -0
  522. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hungama.py +0 -0
  523. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/huya.py +0 -0
  524. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hypem.py +0 -0
  525. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hypergryph.py +0 -0
  526. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/hytale.py +0 -0
  527. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/icareus.py +0 -0
  528. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ichinanalive.py +0 -0
  529. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/idagio.py +0 -0
  530. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/idolplus.py +0 -0
  531. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ign.py +0 -0
  532. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/iheart.py +0 -0
  533. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ilpost.py +0 -0
  534. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/iltalehti.py +0 -0
  535. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/imdb.py +0 -0
  536. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/imggaming.py +0 -0
  537. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/imgur.py +0 -0
  538. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ina.py +0 -0
  539. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/inc.py +0 -0
  540. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/indavideo.py +0 -0
  541. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/infoq.py +0 -0
  542. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/instagram.py +0 -0
  543. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/internazionale.py +0 -0
  544. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/internetvideoarchive.py +0 -0
  545. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/iprima.py +0 -0
  546. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/iqiyi.py +0 -0
  547. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/islamchannel.py +0 -0
  548. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/israelnationalnews.py +0 -0
  549. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/itprotv.py +0 -0
  550. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/itv.py +0 -0
  551. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ivi.py +0 -0
  552. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ivideon.py +0 -0
  553. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ivoox.py +0 -0
  554. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/iwara.py +0 -0
  555. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ixigua.py +0 -0
  556. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/izlesene.py +0 -0
  557. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/jamendo.py +0 -0
  558. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/japandiet.py +0 -0
  559. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/jeuxvideo.py +0 -0
  560. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/jiosaavn.py +0 -0
  561. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/jixie.py +0 -0
  562. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/joj.py +0 -0
  563. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/jove.py +0 -0
  564. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/jstream.py +0 -0
  565. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/jtbc.py +0 -0
  566. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/jwplatform.py +0 -0
  567. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kakao.py +0 -0
  568. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kaltura.py +0 -0
  569. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kankanews.py +0 -0
  570. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/karaoketv.py +0 -0
  571. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kelbyone.py +0 -0
  572. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kenh14.py +0 -0
  573. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/khanacademy.py +0 -0
  574. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kick.py +0 -0
  575. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kicker.py +0 -0
  576. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kickstarter.py +0 -0
  577. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kika.py +0 -0
  578. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kinja.py +0 -0
  579. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kinopoisk.py +0 -0
  580. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kommunetv.py +0 -0
  581. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kompas.py +0 -0
  582. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/koo.py +0 -0
  583. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/krasview.py +0 -0
  584. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kth.py +0 -0
  585. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ku6.py +0 -0
  586. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kukululive.py +0 -0
  587. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/kuwo.py +0 -0
  588. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/la7.py +0 -0
  589. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/laracasts.py +0 -0
  590. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lastfm.py +0 -0
  591. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/laxarxames.py +0 -0
  592. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lbry.py +0 -0
  593. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lci.py +0 -0
  594. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lcp.py +0 -0
  595. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/learningonscreen.py +0 -0
  596. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lecture2go.py +0 -0
  597. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lecturio.py +0 -0
  598. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/leeco.py +0 -0
  599. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lefigaro.py +0 -0
  600. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lego.py +0 -0
  601. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lemonde.py +0 -0
  602. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lenta.py +0 -0
  603. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/libraryofcongress.py +0 -0
  604. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/libsyn.py +0 -0
  605. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lifenews.py +0 -0
  606. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/likee.py +0 -0
  607. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/linkedin.py +0 -0
  608. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/liputan6.py +0 -0
  609. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/listennotes.py +0 -0
  610. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/litv.py +0 -0
  611. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/livejournal.py +0 -0
  612. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/livestream.py +0 -0
  613. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/livestreamfails.py +0 -0
  614. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lnk.py +0 -0
  615. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/loco.py +0 -0
  616. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/loom.py +0 -0
  617. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lovehomeporn.py +0 -0
  618. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lrt.py +0 -0
  619. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lsm.py +0 -0
  620. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lumni.py +0 -0
  621. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/lynda.py +0 -0
  622. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/maariv.py +0 -0
  623. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/magellantv.py +0 -0
  624. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/magentamusik.py +0 -0
  625. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mailru.py +0 -0
  626. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mainstreaming.py +0 -0
  627. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mangomolo.py +0 -0
  628. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/manyvids.py +0 -0
  629. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/maoritv.py +0 -0
  630. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/markiza.py +0 -0
  631. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/massengeschmacktv.py +0 -0
  632. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/masters.py +0 -0
  633. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/matchtv.py +0 -0
  634. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mave.py +0 -0
  635. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mbn.py +0 -0
  636. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mdr.py +0 -0
  637. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/medaltv.py +0 -0
  638. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mediaite.py +0 -0
  639. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mediaklikk.py +0 -0
  640. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/medialaan.py +0 -0
  641. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mediaset.py +0 -0
  642. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mediasite.py +0 -0
  643. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mediastream.py +0 -0
  644. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mediaworksnz.py +0 -0
  645. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/medici.py +0 -0
  646. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/megaphone.py +0 -0
  647. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/megatvcom.py +0 -0
  648. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/meipai.py +0 -0
  649. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/melonvod.py +0 -0
  650. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/metacritic.py +0 -0
  651. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mgtv.py +0 -0
  652. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/microsoftembed.py +0 -0
  653. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/microsoftstream.py +0 -0
  654. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/minds.py +0 -0
  655. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/minoto.py +0 -0
  656. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mir24tv.py +0 -0
  657. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mirrativ.py +0 -0
  658. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mirrorcouk.py +0 -0
  659. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mit.py +0 -0
  660. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mixch.py +0 -0
  661. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mixcloud.py +0 -0
  662. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mixlr.py +0 -0
  663. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mlb.py +0 -0
  664. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mlssoccer.py +0 -0
  665. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mocha.py +0 -0
  666. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mojevideo.py +0 -0
  667. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mojvideo.py +0 -0
  668. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/monstercat.py +0 -0
  669. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/motherless.py +0 -0
  670. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/motorsport.py +0 -0
  671. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/moviepilot.py +0 -0
  672. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/moview.py +0 -0
  673. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/moviezine.py +0 -0
  674. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/movingimage.py +0 -0
  675. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/msn.py +0 -0
  676. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mtv.py +0 -0
  677. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/muenchentv.py +0 -0
  678. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/murrtube.py +0 -0
  679. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/museai.py +0 -0
  680. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/musescore.py +0 -0
  681. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/musicdex.py +0 -0
  682. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mux.py +0 -0
  683. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mx3.py +0 -0
  684. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mxplayer.py +0 -0
  685. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/myspace.py +0 -0
  686. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/myspass.py +0 -0
  687. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/myvideoge.py +0 -0
  688. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/myvidster.py +0 -0
  689. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/mzaalo.py +0 -0
  690. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/n1.py +0 -0
  691. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nascar.py +0 -0
  692. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nate.py +0 -0
  693. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nationalgeographic.py +0 -0
  694. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/naver.py +0 -0
  695. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nba.py +0 -0
  696. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nbc.py +0 -0
  697. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ndr.py +0 -0
  698. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ndtv.py +0 -0
  699. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nebula.py +0 -0
  700. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nekohacker.py +0 -0
  701. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nerdcubed.py +0 -0
  702. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nest.py +0 -0
  703. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/netapp.py +0 -0
  704. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/neteasemusic.py +0 -0
  705. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/netverse.py +0 -0
  706. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/netzkino.py +0 -0
  707. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/newgrounds.py +0 -0
  708. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/newspicks.py +0 -0
  709. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/newsy.py +0 -0
  710. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nexx.py +0 -0
  711. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nfb.py +0 -0
  712. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nfhsnetwork.py +0 -0
  713. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nfl.py +0 -0
  714. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nhk.py +0 -0
  715. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nhl.py +0 -0
  716. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nick.py +0 -0
  717. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/niconico.py +0 -0
  718. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/niconicochannelplus.py +0 -0
  719. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ninaprotocol.py +0 -0
  720. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ninecninemedia.py +0 -0
  721. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ninegag.py +0 -0
  722. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ninenews.py +0 -0
  723. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ninenow.py +0 -0
  724. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nintendo.py +0 -0
  725. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nitter.py +0 -0
  726. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nobelprize.py +0 -0
  727. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/noice.py +0 -0
  728. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nonktube.py +0 -0
  729. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/noodlemagazine.py +0 -0
  730. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nosnl.py +0 -0
  731. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nova.py +0 -0
  732. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/novaplay.py +0 -0
  733. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nowcanal.py +0 -0
  734. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nowness.py +0 -0
  735. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/noz.py +0 -0
  736. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/npo.py +0 -0
  737. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/npr.py +0 -0
  738. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nrk.py +0 -0
  739. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nrl.py +0 -0
  740. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nts.py +0 -0
  741. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ntvcojp.py +0 -0
  742. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ntvde.py +0 -0
  743. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ntvru.py +0 -0
  744. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nubilesporn.py +0 -0
  745. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nuevo.py +0 -0
  746. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nuum.py +0 -0
  747. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nuvid.py +0 -0
  748. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nytimes.py +0 -0
  749. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nzherald.py +0 -0
  750. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nzonscreen.py +0 -0
  751. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/nzz.py +0 -0
  752. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/odkmedia.py +0 -0
  753. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/odnoklassniki.py +0 -0
  754. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/oftv.py +0 -0
  755. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/oktoberfesttv.py +0 -0
  756. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/olympics.py +0 -0
  757. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/on24.py +0 -0
  758. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ondemandkorea.py +0 -0
  759. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/onefootball.py +0 -0
  760. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/onenewsnz.py +0 -0
  761. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/oneplace.py +0 -0
  762. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/onet.py +0 -0
  763. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/onionstudios.py +0 -0
  764. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/onsen.py +0 -0
  765. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/opencast.py +0 -0
  766. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/openload.py +0 -0
  767. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/openrec.py +0 -0
  768. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ora.py +0 -0
  769. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/orf.py +0 -0
  770. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/outsidetv.py +0 -0
  771. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/owncloud.py +0 -0
  772. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/packtpub.py +0 -0
  773. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/palcomp3.py +0 -0
  774. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pandatv.py +0 -0
  775. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/panopto.py +0 -0
  776. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/parler.py +0 -0
  777. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/parlview.py +0 -0
  778. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/parti.py +0 -0
  779. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/patreon.py +0 -0
  780. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pbs.py +0 -0
  781. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pearvideo.py +0 -0
  782. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/peekvids.py +0 -0
  783. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/peertube.py +0 -0
  784. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/peertv.py +0 -0
  785. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/peloton.py +0 -0
  786. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/performgroup.py +0 -0
  787. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/periscope.py +0 -0
  788. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pgatour.py +0 -0
  789. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/philharmoniedeparis.py +0 -0
  790. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/phoenix.py +0 -0
  791. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/photobucket.py +0 -0
  792. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pialive.py +0 -0
  793. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/piapro.py +0 -0
  794. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/picarto.py +0 -0
  795. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/piksel.py +0 -0
  796. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pinkbike.py +0 -0
  797. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pinterest.py +0 -0
  798. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/piramidetv.py +0 -0
  799. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/planetmarathi.py +0 -0
  800. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/platzi.py +0 -0
  801. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/playerfm.py +0 -0
  802. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/playplustv.py +0 -0
  803. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/playsuisse.py +0 -0
  804. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/playtvak.py +0 -0
  805. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/playwire.py +0 -0
  806. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pluralsight.py +0 -0
  807. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/plutotv.py +0 -0
  808. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/plvideo.py +0 -0
  809. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/plyr.py +0 -0
  810. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/podbayfm.py +0 -0
  811. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/podchaser.py +0 -0
  812. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/podomatic.py +0 -0
  813. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pokergo.py +0 -0
  814. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/polsatgo.py +0 -0
  815. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/polskieradio.py +0 -0
  816. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/popcorntimes.py +0 -0
  817. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/popcorntv.py +0 -0
  818. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pornbox.py +0 -0
  819. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pornflip.py +0 -0
  820. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pornhub.py +0 -0
  821. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pornotube.py +0 -0
  822. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pornovoisines.py +0 -0
  823. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pornoxo.py +0 -0
  824. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pr0gramm.py +0 -0
  825. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/prankcast.py +0 -0
  826. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/premiershiprugby.py +0 -0
  827. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/presstv.py +0 -0
  828. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/projectveritas.py +0 -0
  829. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/prosiebensat1.py +0 -0
  830. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/prx.py +0 -0
  831. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/puhutv.py +0 -0
  832. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/puls4.py +0 -0
  833. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/pyvideo.py +0 -0
  834. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/qdance.py +0 -0
  835. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/qingting.py +0 -0
  836. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/qqmusic.py +0 -0
  837. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/r7.py +0 -0
  838. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radiko.py +0 -0
  839. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radiocanada.py +0 -0
  840. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radiocomercial.py +0 -0
  841. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radiode.py +0 -0
  842. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radiofrance.py +0 -0
  843. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radiojavan.py +0 -0
  844. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radiokapital.py +0 -0
  845. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radioradicale.py +0 -0
  846. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radiozet.py +0 -0
  847. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/radlive.py +0 -0
  848. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rai.py +0 -0
  849. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/raywenderlich.py +0 -0
  850. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rbgtum.py +0 -0
  851. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rcs.py +0 -0
  852. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rcti.py +0 -0
  853. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rds.py +0 -0
  854. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/redbee.py +0 -0
  855. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/redbulltv.py +0 -0
  856. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/reddit.py +0 -0
  857. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/redge.py +0 -0
  858. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/redgifs.py +0 -0
  859. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/redtube.py +0 -0
  860. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rentv.py +0 -0
  861. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/restudy.py +0 -0
  862. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/reuters.py +0 -0
  863. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/reverbnation.py +0 -0
  864. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rheinmaintv.py +0 -0
  865. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ridehome.py +0 -0
  866. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rinsefm.py +0 -0
  867. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rmcdecouverte.py +0 -0
  868. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rockstargames.py +0 -0
  869. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rokfin.py +0 -0
  870. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/roosterteeth.py +0 -0
  871. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rottentomatoes.py +0 -0
  872. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/roya.py +0 -0
  873. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rozhlas.py +0 -0
  874. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rte.py +0 -0
  875. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rtl2.py +0 -0
  876. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rtlnl.py +0 -0
  877. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rtnews.py +0 -0
  878. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rtp.py +0 -0
  879. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rtrfm.py +0 -0
  880. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rts.py +0 -0
  881. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rtvcplay.py +0 -0
  882. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rtve.py +0 -0
  883. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rtvs.py +0 -0
  884. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rtvslo.py +0 -0
  885. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rudovideo.py +0 -0
  886. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rule34video.py +0 -0
  887. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rumble.py +0 -0
  888. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/rutube.py +0 -0
  889. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ruutu.py +0 -0
  890. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ruv.py +0 -0
  891. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/s4c.py +0 -0
  892. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/safari.py +0 -0
  893. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/saitosan.py +0 -0
  894. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/samplefocus.py +0 -0
  895. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sapo.py +0 -0
  896. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sauceplus.py +0 -0
  897. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sbs.py +0 -0
  898. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sbscokr.py +0 -0
  899. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/screen9.py +0 -0
  900. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/screencast.py +0 -0
  901. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/screencastify.py +0 -0
  902. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/screencastomatic.py +0 -0
  903. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/screenrec.py +0 -0
  904. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/scrippsnetworks.py +0 -0
  905. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/scrolller.py +0 -0
  906. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sejmpl.py +0 -0
  907. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sen.py +0 -0
  908. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/senalcolombia.py +0 -0
  909. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/senategov.py +0 -0
  910. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sendtonews.py +0 -0
  911. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/servus.py +0 -0
  912. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sevenplus.py +0 -0
  913. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sexu.py +0 -0
  914. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/seznamzpravy.py +0 -0
  915. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/shahid.py +0 -0
  916. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sharepoint.py +0 -0
  917. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sharevideos.py +0 -0
  918. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/shemaroome.py +0 -0
  919. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/shiey.py +0 -0
  920. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/showroomlive.py +0 -0
  921. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sibnet.py +0 -0
  922. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/simplecast.py +0 -0
  923. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sina.py +0 -0
  924. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/skeb.py +0 -0
  925. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sky.py +0 -0
  926. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/skyit.py +0 -0
  927. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/skylinewebcams.py +0 -0
  928. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/skynewsarabia.py +0 -0
  929. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/skynewsau.py +0 -0
  930. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/slideshare.py +0 -0
  931. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/slideslive.py +0 -0
  932. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/slutload.py +0 -0
  933. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/smotrim.py +0 -0
  934. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/snapchat.py +0 -0
  935. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/snotr.py +0 -0
  936. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/softwhiteunderbelly.py +0 -0
  937. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sohu.py +0 -0
  938. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sonyliv.py +0 -0
  939. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/soundcloud.py +0 -0
  940. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/soundgasm.py +0 -0
  941. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/southpark.py +0 -0
  942. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sovietscloset.py +0 -0
  943. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/spankbang.py +0 -0
  944. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/spiegel.py +0 -0
  945. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sport5.py +0 -0
  946. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sportbox.py +0 -0
  947. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sportdeutschland.py +0 -0
  948. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/spreaker.py +0 -0
  949. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/springboardplatform.py +0 -0
  950. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sproutvideo.py +0 -0
  951. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/srgssr.py +0 -0
  952. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/srmediathek.py +0 -0
  953. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/stacommu.py +0 -0
  954. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/stageplus.py +0 -0
  955. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/stanfordoc.py +0 -0
  956. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/startrek.py +0 -0
  957. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/startv.py +0 -0
  958. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/steam.py +0 -0
  959. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/stitcher.py +0 -0
  960. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/storyfire.py +0 -0
  961. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/streaks.py +0 -0
  962. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/streamable.py +0 -0
  963. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/streamcz.py +0 -0
  964. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/streetvoice.py +0 -0
  965. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/stretchinternet.py +0 -0
  966. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/stripchat.py +0 -0
  967. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/stv.py +0 -0
  968. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/subsplash.py +0 -0
  969. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/substack.py +0 -0
  970. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sunporno.py +0 -0
  971. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sverigesradio.py +0 -0
  972. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/svt.py +0 -0
  973. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/swearnet.py +0 -0
  974. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/syvdk.py +0 -0
  975. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/sztvhu.py +0 -0
  976. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tagesschau.py +0 -0
  977. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/taptap.py +0 -0
  978. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tarangplus.py +0 -0
  979. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tass.py +0 -0
  980. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tbs.py +0 -0
  981. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tbsjp.py +0 -0
  982. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/teachable.py +0 -0
  983. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/teachertube.py +0 -0
  984. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/teachingchannel.py +0 -0
  985. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/teamcoco.py +0 -0
  986. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/teamtreehouse.py +0 -0
  987. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ted.py +0 -0
  988. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tele13.py +0 -0
  989. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tele5.py +0 -0
  990. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/telebruxelles.py +0 -0
  991. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/telecaribe.py +0 -0
  992. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/telecinco.py +0 -0
  993. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/telegraaf.py +0 -0
  994. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/telegram.py +0 -0
  995. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/telemb.py +0 -0
  996. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/telemundo.py +0 -0
  997. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/telequebec.py +0 -0
  998. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/teletask.py +0 -0
  999. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/telewebion.py +0 -0
  1000. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tempo.py +0 -0
  1001. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tencent.py +0 -0
  1002. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tennistv.py +0 -0
  1003. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tenplay.py +0 -0
  1004. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/testurl.py +0 -0
  1005. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tf1.py +0 -0
  1006. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tfo.py +0 -0
  1007. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/theguardian.py +0 -0
  1008. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/thehighwire.py +0 -0
  1009. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/theholetv.py +0 -0
  1010. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/theintercept.py +0 -0
  1011. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/theplatform.py +0 -0
  1012. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/thestar.py +0 -0
  1013. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/thesun.py +0 -0
  1014. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/theweatherchannel.py +0 -0
  1015. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/thisamericanlife.py +0 -0
  1016. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/thisoldhouse.py +0 -0
  1017. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/thisvid.py +0 -0
  1018. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/threeqsdn.py +0 -0
  1019. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/threespeak.py +0 -0
  1020. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tiktok.py +0 -0
  1021. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tmz.py +0 -0
  1022. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tnaflix.py +0 -0
  1023. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/toggle.py +0 -0
  1024. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/toggo.py +0 -0
  1025. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tonline.py +0 -0
  1026. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/toongoggles.py +0 -0
  1027. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/toutiao.py +0 -0
  1028. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/toutv.py +0 -0
  1029. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/toypics.py +0 -0
  1030. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/traileraddict.py +0 -0
  1031. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/triller.py +0 -0
  1032. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/trovo.py +0 -0
  1033. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/trtcocuk.py +0 -0
  1034. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/trtworld.py +0 -0
  1035. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/trueid.py +0 -0
  1036. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/trunews.py +0 -0
  1037. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/truth.py +0 -0
  1038. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tube8.py +0 -0
  1039. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tubetugraz.py +0 -0
  1040. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tubitv.py +0 -0
  1041. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tumblr.py +0 -0
  1042. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tunein.py +0 -0
  1043. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/turner.py +0 -0
  1044. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tv2.py +0 -0
  1045. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tv24ua.py +0 -0
  1046. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tv2dk.py +0 -0
  1047. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tv2hu.py +0 -0
  1048. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tv4.py +0 -0
  1049. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tv5mondeplus.py +0 -0
  1050. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tv5unis.py +0 -0
  1051. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tva.py +0 -0
  1052. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvanouvelles.py +0 -0
  1053. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvc.py +0 -0
  1054. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tver.py +0 -0
  1055. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvigle.py +0 -0
  1056. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tviplayer.py +0 -0
  1057. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvn24.py +0 -0
  1058. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvnoe.py +0 -0
  1059. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvopengr.py +0 -0
  1060. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvp.py +0 -0
  1061. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvplay.py +0 -0
  1062. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvplayer.py +0 -0
  1063. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tvw.py +0 -0
  1064. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/tweakers.py +0 -0
  1065. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/twentymin.py +0 -0
  1066. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/twentythreevideo.py +0 -0
  1067. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/twitcasting.py +0 -0
  1068. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/twitch.py +0 -0
  1069. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/twitter.py +0 -0
  1070. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/txxx.py +0 -0
  1071. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/udemy.py +0 -0
  1072. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/udn.py +0 -0
  1073. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ufctv.py +0 -0
  1074. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ukcolumn.py +0 -0
  1075. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/uktvplay.py +0 -0
  1076. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/uliza.py +0 -0
  1077. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/umg.py +0 -0
  1078. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/unistra.py +0 -0
  1079. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/unitednations.py +0 -0
  1080. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/unity.py +0 -0
  1081. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/uol.py +0 -0
  1082. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/uplynk.py +0 -0
  1083. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/urort.py +0 -0
  1084. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/urplay.py +0 -0
  1085. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/usanetwork.py +0 -0
  1086. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/usatoday.py +0 -0
  1087. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ustream.py +0 -0
  1088. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ustudio.py +0 -0
  1089. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/utreon.py +0 -0
  1090. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/varzesh3.py +0 -0
  1091. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vbox7.py +0 -0
  1092. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/veo.py +0 -0
  1093. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vevo.py +0 -0
  1094. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vgtv.py +0 -0
  1095. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vh1.py +0 -0
  1096. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vice.py +0 -0
  1097. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/viddler.py +0 -0
  1098. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/videa.py +0 -0
  1099. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/videocampus_sachsen.py +0 -0
  1100. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/videodetective.py +0 -0
  1101. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/videofyme.py +0 -0
  1102. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/videoken.py +0 -0
  1103. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/videomore.py +0 -0
  1104. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/videopress.py +0 -0
  1105. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vidflex.py +0 -0
  1106. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vidio.py +0 -0
  1107. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vidlii.py +0 -0
  1108. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vidly.py +0 -0
  1109. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vidyard.py +0 -0
  1110. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/viewlift.py +0 -0
  1111. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/viidea.py +0 -0
  1112. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vimeo.py +0 -0
  1113. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vimm.py +0 -0
  1114. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/viously.py +0 -0
  1115. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/viqeo.py +0 -0
  1116. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/viu.py +0 -0
  1117. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vk.py +0 -0
  1118. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vocaroo.py +0 -0
  1119. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vodpl.py +0 -0
  1120. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vodplatform.py +0 -0
  1121. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/voicy.py +0 -0
  1122. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/volejtv.py +0 -0
  1123. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/voxmedia.py +0 -0
  1124. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vrsquare.py +0 -0
  1125. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vrt.py +0 -0
  1126. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vtm.py +0 -0
  1127. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vtv.py +0 -0
  1128. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vuclip.py +0 -0
  1129. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/vvvvid.py +0 -0
  1130. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/walla.py +0 -0
  1131. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/washingtonpost.py +0 -0
  1132. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wat.py +0 -0
  1133. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wdr.py +0 -0
  1134. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/webcamerapl.py +0 -0
  1135. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/webcaster.py +0 -0
  1136. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/webofstories.py +0 -0
  1137. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/weibo.py +0 -0
  1138. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/weiqitv.py +0 -0
  1139. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/weverse.py +0 -0
  1140. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wevidi.py +0 -0
  1141. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/weyyak.py +0 -0
  1142. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/whowatch.py +0 -0
  1143. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wikimedia.py +0 -0
  1144. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wimbledon.py +0 -0
  1145. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wimtv.py +0 -0
  1146. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wistia.py +0 -0
  1147. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wordpress.py +0 -0
  1148. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/worldstarhiphop.py +0 -0
  1149. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wppilot.py +0 -0
  1150. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wrestleuniverse.py +0 -0
  1151. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wsj.py +0 -0
  1152. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wwe.py +0 -0
  1153. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/wykop.py +0 -0
  1154. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/xboxclips.py +0 -0
  1155. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/xhamster.py +0 -0
  1156. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/xiaohongshu.py +0 -0
  1157. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/ximalaya.py +0 -0
  1158. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/xinpianchang.py +0 -0
  1159. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/xminus.py +0 -0
  1160. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/xnxx.py +0 -0
  1161. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/xstream.py +0 -0
  1162. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/xvideos.py +0 -0
  1163. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/xxxymovies.py +0 -0
  1164. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/yahoo.py +0 -0
  1165. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/yandexdisk.py +0 -0
  1166. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/yandexmusic.py +0 -0
  1167. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/yandexvideo.py +0 -0
  1168. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/yapfiles.py +0 -0
  1169. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/yappy.py +0 -0
  1170. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/yfanefa.py +0 -0
  1171. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/yle_areena.py +0 -0
  1172. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youjizz.py +0 -0
  1173. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youku.py +0 -0
  1174. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/younow.py +0 -0
  1175. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youporn.py +0 -0
  1176. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/__init__.py +0 -0
  1177. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/_clip.py +0 -0
  1178. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/_mistakes.py +0 -0
  1179. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/_notifications.py +0 -0
  1180. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/_redirect.py +0 -0
  1181. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/_search.py +0 -0
  1182. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/_tab.py +0 -0
  1183. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/README.md +0 -0
  1184. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/__init__.py +0 -0
  1185. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/__init__.py +0 -0
  1186. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/bun.py +0 -0
  1187. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/deno.py +0 -0
  1188. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/ejs.py +0 -0
  1189. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/node.py +0 -0
  1190. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/quickjs.py +0 -0
  1191. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/vendor/__init__.py +0 -0
  1192. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/vendor/_info.py +0 -0
  1193. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/vendor/yt.solver.bun.lib.js +0 -0
  1194. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/vendor/yt.solver.core.js +0 -0
  1195. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_builtin/vendor/yt.solver.deno.lib.js +0 -0
  1196. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_director.py +0 -0
  1197. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/_registry.py +0 -0
  1198. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/jsc/provider.py +0 -0
  1199. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/README.md +0 -0
  1200. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/__init__.py +0 -0
  1201. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/_builtin/__init__.py +0 -0
  1202. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/_builtin/memory_cache.py +0 -0
  1203. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/_builtin/webpo_cachespec.py +0 -0
  1204. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/_director.py +0 -0
  1205. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/_provider.py +0 -0
  1206. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/_registry.py +0 -0
  1207. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/cache.py +0 -0
  1208. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/provider.py +0 -0
  1209. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/youtube/pot/utils.py +0 -0
  1210. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zaiko.py +0 -0
  1211. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zapiks.py +0 -0
  1212. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zattoo.py +0 -0
  1213. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zdf.py +0 -0
  1214. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zee5.py +0 -0
  1215. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zeenews.py +0 -0
  1216. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zenporn.py +0 -0
  1217. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zetland.py +0 -0
  1218. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zhihu.py +0 -0
  1219. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zingmp3.py +0 -0
  1220. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zoom.py +0 -0
  1221. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/extractor/zype.py +0 -0
  1222. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/globals.py +0 -0
  1223. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/jsinterp.py +0 -0
  1224. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/minicurses.py +0 -0
  1225. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/__init__.py +0 -0
  1226. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/_curlcffi.py +0 -0
  1227. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/_helper.py +0 -0
  1228. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/_requests.py +0 -0
  1229. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/_urllib.py +0 -0
  1230. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/_websockets.py +0 -0
  1231. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/common.py +0 -0
  1232. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/exceptions.py +0 -0
  1233. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/impersonate.py +0 -0
  1234. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/networking/websocket.py +0 -0
  1235. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/options.py +0 -0
  1236. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/plugins.py +0 -0
  1237. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/__init__.py +0 -0
  1238. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/common.py +0 -0
  1239. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/embedthumbnail.py +0 -0
  1240. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/exec.py +0 -0
  1241. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/ffmpeg.py +0 -0
  1242. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/metadataparser.py +0 -0
  1243. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/modify_chapters.py +0 -0
  1244. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/movefilesafterdownload.py +0 -0
  1245. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/sponsorblock.py +0 -0
  1246. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/postprocessor/xattrpp.py +0 -0
  1247. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/socks.py +0 -0
  1248. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/update.py +0 -0
  1249. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/__init__.py +0 -0
  1250. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/_deprecated.py +0 -0
  1251. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/_jsruntime.py +0 -0
  1252. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/_legacy.py +0 -0
  1253. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/_utils.py +0 -0
  1254. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/jslib/__init__.py +0 -0
  1255. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/jslib/devalue.py +0 -0
  1256. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/networking.py +0 -0
  1257. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/progress.py +0 -0
  1258. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/utils/traversal.py +0 -0
  1259. {yt_dlp-2026.1.29.165626.dev0 → yt_dlp-2026.1.31}/yt_dlp/webvtt.py +0 -0
@@ -1171,6 +1171,7 @@ atomizer
1171
1171
  aviperes
1172
1172
  axelerometer
1173
1173
  aystroganov@gmail.com
1174
+ azdlonky
1174
1175
  azeem
1175
1176
  barsnick
1176
1177
  bashonly
@@ -1613,6 +1614,7 @@ thc202
1613
1614
  theGeekPirate
1614
1615
  thedenv
1615
1616
  thegymguy
1617
+ thematuu
1616
1618
  theychx
1617
1619
  thomasmllt
1618
1620
  tiktok
@@ -4,7 +4,21 @@
4
4
  # To create a release, dispatch the https://github.com/yt-dlp/yt-dlp/actions/workflows/release.yml workflow on master
5
5
  -->
6
6
 
7
- ### 2026.01.29.165626
7
+ ### 2026.01.31
8
+
9
+ #### Extractor changes
10
+ - **soop**: [Support subscription-only VODs](https://github.com/yt-dlp/yt-dlp/commit/d0bf3d0fc3455d411ae44c0a5dc974dd1481e3aa) ([#15523](https://github.com/yt-dlp/yt-dlp/issues/15523)) by [thematuu](https://github.com/thematuu)
11
+ - **unsupported**: [Update unsupported URLs](https://github.com/yt-dlp/yt-dlp/commit/bf5d8c2a663ac690711262aebc733c1b06a54b26) ([#15410](https://github.com/yt-dlp/yt-dlp/issues/15410)) by [bashonly](https://github.com/bashonly)
12
+ - **whyp**: [Extract more metadata](https://github.com/yt-dlp/yt-dlp/commit/0d8ee637e83d62edaf22aa85833a51c70d560389) ([#15757](https://github.com/yt-dlp/yt-dlp/issues/15757)) by [azdlonky](https://github.com/azdlonky)
13
+ - **youtube**
14
+ - [Add `web_embedded` fallback for `android_vr` client](https://github.com/yt-dlp/yt-dlp/commit/bb1c05752c288a81e0e281f1caf5395411936376) ([#15785](https://github.com/yt-dlp/yt-dlp/issues/15785)) by [bashonly](https://github.com/bashonly)
15
+ - [Remove broken `ios_downgraded` player client](https://github.com/yt-dlp/yt-dlp/commit/c3674575faa23b20e97be8b73f68b9f7b4cea9ab) ([#15786](https://github.com/yt-dlp/yt-dlp/issues/15786)) by [bashonly](https://github.com/bashonly)
16
+ - [Remove broken `tv_embedded` player client](https://github.com/yt-dlp/yt-dlp/commit/8eb794366eb69e7377ff88eed7929c00195c8d74) ([#15787](https://github.com/yt-dlp/yt-dlp/issues/15787)) by [bashonly](https://github.com/bashonly)
17
+
18
+ #### Misc. changes
19
+ - **cleanup**: Miscellaneous: [9a9a6b6](https://github.com/yt-dlp/yt-dlp/commit/9a9a6b6fe44a30458c1754ef064f354f04a84004) by [bashonly](https://github.com/bashonly)
20
+
21
+ ### 2026.01.29
8
22
 
9
23
  #### Core changes
10
24
  - [Accept float values for `--sleep-subtitles`](https://github.com/yt-dlp/yt-dlp/commit/f6dc7d5279bcb7f29839c700d54ac148b332d208) ([#15282](https://github.com/yt-dlp/yt-dlp/issues/15282)) by [0xvd](https://github.com/0xvd)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yt-dlp
3
- Version: 2026.1.29.165626.dev0
3
+ Version: 2026.1.31
4
4
  Summary: A feature-rich command-line audio/video downloader
5
5
  Project-URL: Documentation, https://github.com/yt-dlp/yt-dlp#readme
6
6
  Project-URL: Repository, https://github.com/yt-dlp/yt-dlp
@@ -388,7 +388,7 @@ Tip: Use `CTRL`+`F` (or `Command`+`F`) to search by keywords
388
388
  --no-update Do not check for updates (default)
389
389
  --update-to [CHANNEL]@[TAG] Upgrade/downgrade to a specific version.
390
390
  CHANNEL can be a repository as well. CHANNEL
391
- and TAG default to "nightly" and "latest"
391
+ and TAG default to "stable" and "latest"
392
392
  respectively if omitted; See "UPDATE" for
393
393
  details. Supported channels: stable,
394
394
  nightly, master
@@ -1934,7 +1934,7 @@ The following extractors use this feature:
1934
1934
  #### youtube
1935
1935
  * `lang`: Prefer translated metadata (`title`, `description` etc) of this language code (case-sensitive). By default, the video primary language metadata is preferred, with a fallback to `en` translated. See [youtube/_base.py](https://github.com/yt-dlp/yt-dlp/blob/415b4c9f955b1a0391204bd24a7132590e7b3bdb/yt_dlp/extractor/youtube/_base.py#L402-L409) for the list of supported content language codes
1936
1936
  * `skip`: One or more of `hls`, `dash` or `translated_subs` to skip extraction of the m3u8 manifests, dash manifests and [auto-translated subtitles](https://github.com/yt-dlp/yt-dlp/issues/4090#issuecomment-1158102032) respectively
1937
- * `player_client`: Clients to extract video data from. The currently available clients are `web`, `web_safari`, `web_embedded`, `web_music`, `web_creator`, `mweb`, `ios`, `ios_downgraded`, `android`, `android_vr`, `tv`, `tv_simply`, `tv_downgraded`, and `tv_embedded`. By default, `android_vr,ios_downgraded,web,web_safari` is used. If no JavaScript runtime/engine is available, then `android_vr,ios_downgraded` is used. If logged-in cookies are passed to yt-dlp, then `tv_downgraded,web,web_safari` is used for free accounts and `tv_downgraded,web_creator,web` is used for premium accounts. The `web_music` client is added for `music.youtube.com` URLs when logged-in cookies are used. The `web_embedded` client is added for age-restricted videos but only works if the video is embeddable. The `tv_embedded` and `web_creator` clients are added for age-restricted videos if account age-verification is required. Some clients, such as `web` and `web_music`, require a `po_token` for their formats to be downloadable. Some clients, such as `web_creator`, will only work with authentication. Not all clients support authentication via cookies. You can use `default` for the default clients, or you can use `all` for all clients (not recommended). You can prefix a client with `-` to exclude it, e.g. `youtube:player_client=default,-ios`
1937
+ * `player_client`: Clients to extract video data from. The currently available clients are `web`, `web_safari`, `web_embedded`, `web_music`, `web_creator`, `mweb`, `ios`, `android`, `android_vr`, `tv`, `tv_downgraded`, and `tv_simply`. By default, `android_vr,web,web_safari` is used. If no JavaScript runtime/engine is available, then only `android_vr` is used. If logged-in cookies are passed to yt-dlp, then `tv_downgraded,web,web_safari` is used for free accounts and `tv_downgraded,web_creator,web` is used for premium accounts. The `web_music` client is added for `music.youtube.com` URLs when logged-in cookies are used. The `web_embedded` client is added for age-restricted videos but only successfully works around the age-restriction sometimes (e.g. if the video is embeddable), and may be added as a fallback if `android_vr` is unable to access a video. The `web_creator` client is added for age-restricted videos if account age-verification is required. Some clients, such as `web_creator` and `web_music`, require a `po_token` for their formats to be downloadable. Some clients, such as `web_creator`, will only work with authentication. Not all clients support authentication via cookies. You can use `default` for the default clients, or you can use `all` for all clients (not recommended). You can prefix a client with `-` to exclude it, e.g. `youtube:player_client=default,-web`
1938
1938
  * `player_skip`: Skip some network requests that are generally needed for robust extraction. One or more of `configs` (skip client configs), `webpage` (skip initial webpage), `js` (skip js player), `initial_data` (skip initial data/next ep request). While these options can help reduce the number of requests needed or avoid some rate-limiting, they could cause issues such as missing formats or metadata. See [#860](https://github.com/yt-dlp/yt-dlp/pull/860) and [#12826](https://github.com/yt-dlp/yt-dlp/issues/12826) for more details
1939
1939
  * `webpage_skip`: Skip extraction of embedded webpage data. One or both of `player_response`, `initial_data`. These options are for testing purposes and don't skip any network requests
1940
1940
  * `player_params`: YouTube player parameters to use for player requests. Will overwrite any default ones set by yt-dlp.
@@ -318,7 +318,7 @@ Tip: Use `CTRL`+`F` (or `Command`+`F`) to search by keywords
318
318
  --no-update Do not check for updates (default)
319
319
  --update-to [CHANNEL]@[TAG] Upgrade/downgrade to a specific version.
320
320
  CHANNEL can be a repository as well. CHANNEL
321
- and TAG default to "nightly" and "latest"
321
+ and TAG default to "stable" and "latest"
322
322
  respectively if omitted; See "UPDATE" for
323
323
  details. Supported channels: stable,
324
324
  nightly, master
@@ -1864,7 +1864,7 @@ The following extractors use this feature:
1864
1864
  #### youtube
1865
1865
  * `lang`: Prefer translated metadata (`title`, `description` etc) of this language code (case-sensitive). By default, the video primary language metadata is preferred, with a fallback to `en` translated. See [youtube/_base.py](https://github.com/yt-dlp/yt-dlp/blob/415b4c9f955b1a0391204bd24a7132590e7b3bdb/yt_dlp/extractor/youtube/_base.py#L402-L409) for the list of supported content language codes
1866
1866
  * `skip`: One or more of `hls`, `dash` or `translated_subs` to skip extraction of the m3u8 manifests, dash manifests and [auto-translated subtitles](https://github.com/yt-dlp/yt-dlp/issues/4090#issuecomment-1158102032) respectively
1867
- * `player_client`: Clients to extract video data from. The currently available clients are `web`, `web_safari`, `web_embedded`, `web_music`, `web_creator`, `mweb`, `ios`, `ios_downgraded`, `android`, `android_vr`, `tv`, `tv_simply`, `tv_downgraded`, and `tv_embedded`. By default, `android_vr,ios_downgraded,web,web_safari` is used. If no JavaScript runtime/engine is available, then `android_vr,ios_downgraded` is used. If logged-in cookies are passed to yt-dlp, then `tv_downgraded,web,web_safari` is used for free accounts and `tv_downgraded,web_creator,web` is used for premium accounts. The `web_music` client is added for `music.youtube.com` URLs when logged-in cookies are used. The `web_embedded` client is added for age-restricted videos but only works if the video is embeddable. The `tv_embedded` and `web_creator` clients are added for age-restricted videos if account age-verification is required. Some clients, such as `web` and `web_music`, require a `po_token` for their formats to be downloadable. Some clients, such as `web_creator`, will only work with authentication. Not all clients support authentication via cookies. You can use `default` for the default clients, or you can use `all` for all clients (not recommended). You can prefix a client with `-` to exclude it, e.g. `youtube:player_client=default,-ios`
1867
+ * `player_client`: Clients to extract video data from. The currently available clients are `web`, `web_safari`, `web_embedded`, `web_music`, `web_creator`, `mweb`, `ios`, `android`, `android_vr`, `tv`, `tv_downgraded`, and `tv_simply`. By default, `android_vr,web,web_safari` is used. If no JavaScript runtime/engine is available, then only `android_vr` is used. If logged-in cookies are passed to yt-dlp, then `tv_downgraded,web,web_safari` is used for free accounts and `tv_downgraded,web_creator,web` is used for premium accounts. The `web_music` client is added for `music.youtube.com` URLs when logged-in cookies are used. The `web_embedded` client is added for age-restricted videos but only successfully works around the age-restriction sometimes (e.g. if the video is embeddable), and may be added as a fallback if `android_vr` is unable to access a video. The `web_creator` client is added for age-restricted videos if account age-verification is required. Some clients, such as `web_creator` and `web_music`, require a `po_token` for their formats to be downloadable. Some clients, such as `web_creator`, will only work with authentication. Not all clients support authentication via cookies. You can use `default` for the default clients, or you can use `all` for all clients (not recommended). You can prefix a client with `-` to exclude it, e.g. `youtube:player_client=default,-web`
1868
1868
  * `player_skip`: Skip some network requests that are generally needed for robust extraction. One or more of `configs` (skip client configs), `webpage` (skip initial webpage), `js` (skip js player), `initial_data` (skip initial data/next ep request). While these options can help reduce the number of requests needed or avoid some rate-limiting, they could cause issues such as missing formats or metadata. See [#860](https://github.com/yt-dlp/yt-dlp/pull/860) and [#12826](https://github.com/yt-dlp/yt-dlp/issues/12826) for more details
1869
1869
  * `webpage_skip`: Skip extraction of embedded webpage data. One or both of `player_response`, `initial_data`. These options are for testing purposes and don't skip any network requests
1870
1870
  * `player_params`: YouTube player parameters to use for player requests. Will overwrite any default ones set by yt-dlp.
@@ -409,7 +409,7 @@ General Options:
409
409
  --no-update Do not check for updates (default)
410
410
  --update-to [CHANNEL]@[TAG] Upgrade/downgrade to a specific version.
411
411
  CHANNEL can be a repository as well. CHANNEL
412
- and TAG default to "nightly" and "latest"
412
+ and TAG default to "stable" and "latest"
413
413
  respectively if omitted; See "UPDATE" for
414
414
  details. Supported channels: stable,
415
415
  nightly, master
@@ -2312,24 +2312,25 @@ youtube
2312
2312
  respectively
2313
2313
  - player_client: Clients to extract video data from. The currently
2314
2314
  available clients are web, web_safari, web_embedded, web_music,
2315
- web_creator, mweb, ios, ios_downgraded, android, android_vr, tv,
2316
- tv_simply, tv_downgraded, and tv_embedded. By default,
2317
- android_vr,ios_downgraded,web,web_safari is used. If no JavaScript
2318
- runtime/engine is available, then android_vr,ios_downgraded is used.
2319
- If logged-in cookies are passed to yt-dlp, then
2315
+ web_creator, mweb, ios, android, android_vr, tv, tv_downgraded, and
2316
+ tv_simply. By default, android_vr,web,web_safari is used. If no
2317
+ JavaScript runtime/engine is available, then only android_vr is
2318
+ used. If logged-in cookies are passed to yt-dlp, then
2320
2319
  tv_downgraded,web,web_safari is used for free accounts and
2321
2320
  tv_downgraded,web_creator,web is used for premium accounts. The
2322
2321
  web_music client is added for music.youtube.com URLs when logged-in
2323
2322
  cookies are used. The web_embedded client is added for
2324
- age-restricted videos but only works if the video is embeddable. The
2325
- tv_embedded and web_creator clients are added for age-restricted
2326
- videos if account age-verification is required. Some clients, such
2327
- as web and web_music, require a po_token for their formats to be
2328
- downloadable. Some clients, such as web_creator, will only work with
2323
+ age-restricted videos but only successfully works around the
2324
+ age-restriction sometimes (e.g. if the video is embeddable), and may
2325
+ be added as a fallback if android_vr is unable to access a video.
2326
+ The web_creator client is added for age-restricted videos if account
2327
+ age-verification is required. Some clients, such as web_creator and
2328
+ web_music, require a po_token for their formats to be downloadable.
2329
+ Some clients, such as web_creator, will only work with
2329
2330
  authentication. Not all clients support authentication via cookies.
2330
2331
  You can use default for the default clients, or you can use all for
2331
2332
  all clients (not recommended). You can prefix a client with - to
2332
- exclude it, e.g. youtube:player_client=default,-ios
2333
+ exclude it, e.g. youtube:player_client=default,-web
2333
2334
  - player_skip: Skip some network requests that are generally needed
2334
2335
  for robust extraction. One or more of configs (skip client configs),
2335
2336
  webpage (skip initial webpage), js (skip js player), initial_data
@@ -3,7 +3,7 @@ complete --command yt-dlp --long-option help --short-option h --description 'Pri
3
3
  complete --command yt-dlp --long-option version --description 'Print program version and exit'
4
4
  complete --command yt-dlp --long-option update --short-option U --description 'Check if updates are available. You installed yt-dlp from a manual build or with a package manager; Use that to update'
5
5
  complete --command yt-dlp --long-option no-update --description 'Do not check for updates (default)'
6
- complete --command yt-dlp --long-option update-to --description 'Upgrade/downgrade to a specific version. CHANNEL can be a repository as well. CHANNEL and TAG default to "nightly" and "latest" respectively if omitted; See "UPDATE" for details. Supported channels: stable, nightly, master'
6
+ complete --command yt-dlp --long-option update-to --description 'Upgrade/downgrade to a specific version. CHANNEL can be a repository as well. CHANNEL and TAG default to "stable" and "latest" respectively if omitted; See "UPDATE" for details. Supported channels: stable, nightly, master'
7
7
  complete --command yt-dlp --long-option ignore-errors --short-option i --description 'Ignore download and postprocessing errors. The download will be considered successful even if the postprocessing fails'
8
8
  complete --command yt-dlp --long-option no-abort-on-error --description 'Continue with next video on download errors; e.g. to skip unavailable videos in a playlist (default)'
9
9
  complete --command yt-dlp --long-option abort-on-error --description 'Abort downloading of further videos if an error occurs (Alias: --no-ignore-errors)'
@@ -36,7 +36,6 @@ class Variant(enum.Enum):
36
36
  tv = 'tv-player-ias.vflset/tv-player-ias.js'
37
37
  tv_es6 = 'tv-player-es6.vflset/tv-player-es6.js'
38
38
  phone = 'player-plasma-ias-phone-en_US.vflset/base.js'
39
- tablet = 'player-plasma-ias-tablet-en_US.vflset/base.js'
40
39
 
41
40
 
42
41
  @dataclasses.dataclass
@@ -48,7 +48,7 @@ Do not check for updates (default)
48
48
  --update-to \f[I][CHANNEL]\[at][TAG]\f[R]
49
49
  Upgrade/downgrade to a specific version.
50
50
  CHANNEL can be a repository as well.
51
- CHANNEL and TAG default to \[dq]nightly\[dq] and \[dq]latest\[dq]
51
+ CHANNEL and TAG default to \[dq]stable\[dq] and \[dq]latest\[dq]
52
52
  respectively if omitted; See \[dq]UPDATE\[dq] for details.
53
53
  Supported channels: stable, nightly, master
54
54
  .TP
@@ -2713,30 +2713,31 @@ respectively
2713
2713
  \f[V]player_client\f[R]: Clients to extract video data from.
2714
2714
  The currently available clients are \f[V]web\f[R], \f[V]web_safari\f[R],
2715
2715
  \f[V]web_embedded\f[R], \f[V]web_music\f[R], \f[V]web_creator\f[R],
2716
- \f[V]mweb\f[R], \f[V]ios\f[R], \f[V]ios_downgraded\f[R],
2717
- \f[V]android\f[R], \f[V]android_vr\f[R], \f[V]tv\f[R],
2718
- \f[V]tv_simply\f[R], \f[V]tv_downgraded\f[R], and \f[V]tv_embedded\f[R].
2719
- By default, \f[V]android_vr,ios_downgraded,web,web_safari\f[R] is used.
2720
- If no JavaScript runtime/engine is available, then
2721
- \f[V]android_vr,ios_downgraded\f[R] is used.
2716
+ \f[V]mweb\f[R], \f[V]ios\f[R], \f[V]android\f[R], \f[V]android_vr\f[R],
2717
+ \f[V]tv\f[R], \f[V]tv_downgraded\f[R], and \f[V]tv_simply\f[R].
2718
+ By default, \f[V]android_vr,web,web_safari\f[R] is used.
2719
+ If no JavaScript runtime/engine is available, then only
2720
+ \f[V]android_vr\f[R] is used.
2722
2721
  If logged-in cookies are passed to yt-dlp, then
2723
2722
  \f[V]tv_downgraded,web,web_safari\f[R] is used for free accounts and
2724
2723
  \f[V]tv_downgraded,web_creator,web\f[R] is used for premium accounts.
2725
2724
  The \f[V]web_music\f[R] client is added for \f[V]music.youtube.com\f[R]
2726
2725
  URLs when logged-in cookies are used.
2727
2726
  The \f[V]web_embedded\f[R] client is added for age-restricted videos but
2728
- only works if the video is embeddable.
2729
- The \f[V]tv_embedded\f[R] and \f[V]web_creator\f[R] clients are added
2730
- for age-restricted videos if account age-verification is required.
2731
- Some clients, such as \f[V]web\f[R] and \f[V]web_music\f[R], require a
2732
- \f[V]po_token\f[R] for their formats to be downloadable.
2727
+ only successfully works around the age-restriction sometimes (e.g.
2728
+ if the video is embeddable), and may be added as a fallback if
2729
+ \f[V]android_vr\f[R] is unable to access a video.
2730
+ The \f[V]web_creator\f[R] client is added for age-restricted videos if
2731
+ account age-verification is required.
2732
+ Some clients, such as \f[V]web_creator\f[R] and \f[V]web_music\f[R],
2733
+ require a \f[V]po_token\f[R] for their formats to be downloadable.
2733
2734
  Some clients, such as \f[V]web_creator\f[R], will only work with
2734
2735
  authentication.
2735
2736
  Not all clients support authentication via cookies.
2736
2737
  You can use \f[V]default\f[R] for the default clients, or you can use
2737
2738
  \f[V]all\f[R] for all clients (not recommended).
2738
2739
  You can prefix a client with \f[V]-\f[R] to exclude it, e.g.
2739
- \f[V]youtube:player_client=default,-ios\f[R]
2740
+ \f[V]youtube:player_client=default,-web\f[R]
2740
2741
  .IP \[bu] 2
2741
2742
  \f[V]player_skip\f[R]: Skip some network requests that are generally
2742
2743
  needed for robust extraction.
@@ -36,6 +36,7 @@ from .rtsp import RtspFD
36
36
  from .websocket import WebSocketFragmentFD
37
37
  from .youtube_live_chat import YoutubeLiveChatFD
38
38
  from .bunnycdn import BunnyCdnFD
39
+ from .soop import SoopVodFD
39
40
 
40
41
  PROTOCOL_MAP = {
41
42
  'rtmp': RtmpFD,
@@ -56,6 +57,7 @@ PROTOCOL_MAP = {
56
57
  'youtube_live_chat': YoutubeLiveChatFD,
57
58
  'youtube_live_chat_replay': YoutubeLiveChatFD,
58
59
  'bunnycdn': BunnyCdnFD,
60
+ 'soopvod': SoopVodFD,
59
61
  }
60
62
 
61
63
 
@@ -0,0 +1,61 @@
1
+ import threading
2
+ import time
3
+
4
+ from .common import FileDownloader
5
+ from . import HlsFD
6
+ from ..extractor.afreecatv import _cloudfront_auth_request
7
+ from ..networking.exceptions import network_exceptions
8
+
9
+
10
+ class SoopVodFD(FileDownloader):
11
+ """
12
+ Downloads Soop subscription VODs with required cookie refresh requests
13
+ Note, this is not a part of public API, and will be removed without notice.
14
+ DO NOT USE
15
+ """
16
+
17
+ def real_download(self, filename, info_dict):
18
+ self.to_screen(f'[{self.FD_NAME}] Downloading Soop subscription VOD HLS')
19
+ fd = HlsFD(self.ydl, self.params)
20
+ refresh_params = info_dict['_cookie_refresh_params']
21
+ referer_url = info_dict['webpage_url']
22
+
23
+ stop_event = threading.Event()
24
+ refresh_thread = threading.Thread(
25
+ target=self._cookie_refresh_thread,
26
+ args=(stop_event, refresh_params, referer_url),
27
+ )
28
+ refresh_thread.start()
29
+
30
+ try:
31
+ return fd.real_download(filename, info_dict)
32
+ finally:
33
+ stop_event.set()
34
+
35
+ def _cookie_refresh_thread(self, stop_event, refresh_params, referer_url):
36
+ m3u8_url = refresh_params['m3u8_url']
37
+ strm_id = refresh_params['strm_id']
38
+ video_id = refresh_params['video_id']
39
+
40
+ def _get_cloudfront_cookie_expiration(m3u8_url):
41
+ cookies = self.ydl.cookiejar.get_cookies_for_url(m3u8_url)
42
+ return min((cookie.expires for cookie in cookies if 'CloudFront' in cookie.name and cookie.expires), default=0)
43
+
44
+ while not stop_event.wait(5):
45
+ current_time = time.time()
46
+ expiration_time = _get_cloudfront_cookie_expiration(m3u8_url)
47
+ last_refresh_check = refresh_params.get('_last_refresh', 0)
48
+
49
+ # Cookie TTL is 90 seconds, but let's give ourselves a 15-second cushion
50
+ should_refresh = (
51
+ (expiration_time and current_time >= expiration_time - 15)
52
+ or (not expiration_time and current_time - last_refresh_check >= 75)
53
+ )
54
+
55
+ if should_refresh:
56
+ try:
57
+ self.ydl.urlopen(_cloudfront_auth_request(
58
+ m3u8_url, strm_id, video_id, referer_url)).read()
59
+ refresh_params['_last_refresh'] = current_time
60
+ except network_exceptions as e:
61
+ self.to_screen(f'[{self.FD_NAME}] Cookie refresh attempt failed: {e}')
@@ -1,5 +1,6 @@
1
1
  import datetime as dt
2
2
  import functools
3
+ import time
3
4
 
4
5
  from .common import InfoExtractor
5
6
  from ..networking import Request
@@ -16,7 +17,23 @@ from ..utils import (
16
17
  urlencode_postdata,
17
18
  urljoin,
18
19
  )
19
- from ..utils.traversal import traverse_obj
20
+ from ..utils.traversal import require, traverse_obj
21
+
22
+
23
+ def _cloudfront_auth_request(m3u8_url, strm_id, video_id, referer_url):
24
+ return Request(
25
+ 'https://live.sooplive.co.kr/api/private_auth.php',
26
+ method='POST',
27
+ headers={
28
+ 'Referer': referer_url,
29
+ 'Origin': 'https://vod.sooplive.co.kr',
30
+ },
31
+ data=urlencode_postdata({
32
+ 'type': 'vod',
33
+ 'strm_id': strm_id,
34
+ 'title_no': video_id,
35
+ 'url': m3u8_url,
36
+ }))
20
37
 
21
38
 
22
39
  class AfreecaTVBaseIE(InfoExtractor):
@@ -153,6 +170,13 @@ class AfreecaTVIE(AfreecaTVBaseIE):
153
170
  'nApiLevel': 10,
154
171
  }))['data']
155
172
 
173
+ initial_refresh_time = 0
174
+ strm_id = None
175
+ # For subscriber-only VODs, we need to call private_auth.php to get CloudFront cookies
176
+ needs_private_auth = traverse_obj(data, ('sub_upload_type', {str}))
177
+ if needs_private_auth:
178
+ strm_id = traverse_obj(data, ('bj_id', {str}, {require('stream ID')}))
179
+
156
180
  error_code = traverse_obj(data, ('code', {int}))
157
181
  if error_code == -6221:
158
182
  raise ExtractorError('The VOD does not exist', expected=True)
@@ -172,9 +196,23 @@ class AfreecaTVIE(AfreecaTVBaseIE):
172
196
  traverse_obj(data, ('files', lambda _, v: url_or_none(v['file']))), start=1):
173
197
  file_url = file_element['file']
174
198
  if determine_ext(file_url) == 'm3u8':
199
+ if needs_private_auth:
200
+ self._request_webpage(
201
+ _cloudfront_auth_request(file_url, strm_id, video_id, url),
202
+ video_id, 'Requesting CloudFront cookies', 'Failed to get CloudFront cookies')
203
+ initial_refresh_time = time.time()
175
204
  formats = self._extract_m3u8_formats(
176
205
  file_url, video_id, 'mp4', m3u8_id='hls',
177
206
  note=f'Downloading part {file_num} m3u8 information')
207
+ if needs_private_auth:
208
+ for fmt in formats:
209
+ fmt['protocol'] = 'soopvod'
210
+ fmt['_cookie_refresh_params'] = {
211
+ 'm3u8_url': file_url,
212
+ 'strm_id': strm_id,
213
+ 'video_id': video_id,
214
+ '_last_refresh': initial_refresh_time,
215
+ }
178
216
  else:
179
217
  formats = [{
180
218
  'url': file_url,
@@ -5862,7 +5862,7 @@ class UnsupportedInfoExtractor(LazyLoadExtractor):
5862
5862
  class KnownDRMIE(UnsupportedInfoExtractor):
5863
5863
  _module = 'yt_dlp.extractor.unsupported'
5864
5864
  IE_NAME = 'DRM'
5865
- _VALID_URL = 'https?://(?:www\\.)?(?:play\\.hbomax\\.com|channel(?:4|5)\\.com|peacocktv\\.com|(?:[\\w.]+\\.)?disneyplus\\.com|open\\.spotify\\.com|tvnz\\.co\\.nz|oneplus\\.ch|artstation\\.com/learning/courses|philo\\.com|(?:[\\w.]+\\.)?mech-plus\\.com|aha\\.video|mubi\\.com|vootkids\\.com|nowtv\\.it/watch|tv\\.apple\\.com|primevideo\\.com|hulu\\.com|resource\\.inkryptvideos\\.com|joyn\\.de|amazon\\.(?:\\w{2}\\.)?\\w+/gp/video|music\\.amazon\\.(?:\\w{2}\\.)?\\w+|(?:watch|front)\\.njpwworld\\.com|qub\\.ca/vrai|(?:beta\\.)?crunchyroll\\.com|viki\\.com|deezer\\.com|b-ch\\.com|ctv\\.ca|noovo\\.ca|tsn\\.ca|paramountplus\\.com|(?:m\\.)?(?:sony)?crackle\\.com|cw(?:tv(?:pr)?|seed)\\.com|6play\\.fr|rtlplay\\.be|play\\.rtl\\.hr|rtlmost\\.hu|plus\\.rtl\\.de(?!/podcast/)|mediasetinfinity\\.es)'
5865
+ _VALID_URL = 'https?://(?:www\\.)?(?:play\\.hbomax\\.com|channel(?:4|5)\\.com|peacocktv\\.com|(?:[\\w.]+\\.)?disneyplus\\.com|open\\.spotify\\.com|tvnz\\.co\\.nz|oneplus\\.ch|artstation\\.com/learning/courses|philo\\.com|(?:[\\w.]+\\.)?mech-plus\\.com|aha\\.video|mubi\\.com|vootkids\\.com|nowtv\\.it/watch|tv\\.apple\\.com|primevideo\\.com|hulu\\.com|resource\\.inkryptvideos\\.com|joyn\\.de|amazon\\.(?:\\w{2}\\.)?\\w+/gp/video|music\\.amazon\\.(?:\\w{2}\\.)?\\w+|(?:watch|front)\\.njpwworld\\.com|qub\\.ca/vrai|(?:beta\\.)?crunchyroll\\.com|viki\\.com|deezer\\.com|b-ch\\.com|ctv\\.ca|noovo\\.ca|tsn\\.ca|paramountplus\\.com|(?:m\\.)?(?:sony)?crackle\\.com|cw(?:tv(?:pr)?|seed)\\.com|6play\\.fr|rtlplay\\.be|play\\.rtl\\.hr|rtlmost\\.hu|plus\\.rtl\\.de(?!/podcast/)|mediasetinfinity\\.es|tv5mondeplus\\.com)'
5866
5866
  IE_DESC = False
5867
5867
 
5868
5868
 
@@ -66,6 +66,7 @@ class KnownDRMIE(UnsupportedInfoExtractor):
66
66
  r'rtlmost\.hu',
67
67
  r'plus\.rtl\.de(?!/podcast/)',
68
68
  r'mediasetinfinity\.es',
69
+ r'tv5mondeplus\.com',
69
70
  )
70
71
 
71
72
  _TESTS = [{
@@ -226,6 +227,10 @@ class KnownDRMIE(UnsupportedInfoExtractor):
226
227
  }, {
227
228
  'url': 'https://www.mediasetinfinity.es/',
228
229
  'only_matching': True,
230
+ }, {
231
+ # https://github.com/yt-dlp/yt-dlp/issues/14743
232
+ 'url': 'https://www.tv5mondeplus.com/',
233
+ 'only_matching': True,
229
234
  }]
230
235
 
231
236
  def _real_extract(self, url):
@@ -2,6 +2,7 @@ from .common import InfoExtractor
2
2
  from ..utils import (
3
3
  float_or_none,
4
4
  int_or_none,
5
+ parse_iso8601,
5
6
  str_or_none,
6
7
  traverse_obj,
7
8
  url_or_none,
@@ -16,9 +17,12 @@ class WhypIE(InfoExtractor):
16
17
  'info_dict': {
17
18
  'id': '18337',
18
19
  'title': 'Example Track',
20
+ 'display_id': 'example-track',
19
21
  'description': 'md5:e0b1bcf1d267dc1a0f15efff09c8f297',
20
22
  'ext': 'flac',
21
23
  'duration': 135.63,
24
+ 'timestamp': 1643216583,
25
+ 'upload_date': '20220126',
22
26
  'uploader': 'Brad',
23
27
  'uploader_id': '1',
24
28
  'thumbnail': 'https://cdn.whyp.it/6ad0bbd9-577d-42bb-9b61-2a4f57f647eb.jpg',
@@ -44,10 +48,12 @@ class WhypIE(InfoExtractor):
44
48
  'http_headers': {'Referer': 'https://whyp.it/'},
45
49
  } for prefix in ('audio', 'lossy', 'lossless') if url_or_none(data.get(f'{prefix}_url'))],
46
50
  **traverse_obj(data, {
47
- 'title': 'title',
51
+ 'title': ('title', {str}),
52
+ 'display_id': ('slug', {str}),
48
53
  'description': 'description',
49
54
  'duration': ('duration', {float_or_none}),
50
- 'uploader': ('user', 'username'),
55
+ 'timestamp': ('created_at', {parse_iso8601}),
56
+ 'uploader': ('user', 'username', {str}),
51
57
  'uploader_id': ('user', 'id', {str_or_none}),
52
58
  'thumbnail': ('artwork_url', {url_or_none}),
53
59
  }),
@@ -271,34 +271,6 @@ INNERTUBE_CLIENTS = {
271
271
  'PLAYER_PO_TOKEN_POLICY': PlayerPoTokenPolicy(required=False, recommended=True),
272
272
  'REQUIRE_JS_PLAYER': False,
273
273
  },
274
- 'ios_downgraded': {
275
- 'INNERTUBE_CONTEXT': {
276
- 'client': {
277
- 'clientName': 'IOS',
278
- 'clientVersion': '19.49.7',
279
- 'deviceMake': 'Apple',
280
- 'deviceModel': 'iPhone16,2',
281
- 'userAgent': 'com.google.ios.youtube/19.49.7 (iPhone16,2; U; CPU iOS 17_5_1 like Mac OS X;)',
282
- 'osName': 'iPhone',
283
- 'osVersion': '17.5.1.21F90',
284
- },
285
- },
286
- 'INNERTUBE_CONTEXT_CLIENT_NAME': 5,
287
- 'GVS_PO_TOKEN_POLICY': {
288
- StreamingProtocol.HTTPS: GvsPoTokenPolicy(
289
- required=True,
290
- recommended=True,
291
- not_required_with_player_token=True,
292
- ),
293
- StreamingProtocol.HLS: GvsPoTokenPolicy(
294
- required=False,
295
- recommended=True,
296
- not_required_with_player_token=True,
297
- ),
298
- },
299
- 'PLAYER_PO_TOKEN_POLICY': PlayerPoTokenPolicy(required=False, recommended=True),
300
- 'REQUIRE_JS_PLAYER': False,
301
- },
302
274
  # mweb has 'ultralow' formats
303
275
  # See: https://github.com/yt-dlp/yt-dlp/pull/557
304
276
  'mweb': {
@@ -379,20 +351,6 @@ INNERTUBE_CLIENTS = {
379
351
  },
380
352
  'INNERTUBE_CONTEXT_CLIENT_NAME': 75,
381
353
  },
382
- # This client now requires sign-in for every video
383
- # It was previously an age-gate workaround for videos that were `playable_in_embed`
384
- # It may still be useful if signed into an EU account that is not age-verified
385
- 'tv_embedded': {
386
- 'INNERTUBE_CONTEXT': {
387
- 'client': {
388
- 'clientName': 'TVHTML5_SIMPLY_EMBEDDED_PLAYER',
389
- 'clientVersion': '2.0',
390
- },
391
- },
392
- 'INNERTUBE_CONTEXT_CLIENT_NAME': 85,
393
- 'REQUIRE_AUTH': True,
394
- 'SUPPORTS_COOKIES': True,
395
- },
396
354
  }
397
355
 
398
356
 
@@ -145,8 +145,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
145
145
  r'\b(?P<id>vfl[a-zA-Z0-9_-]+)\b.*?\.js$',
146
146
  )
147
147
  _SUBTITLE_FORMATS = ('json3', 'srv1', 'srv2', 'srv3', 'ttml', 'srt', 'vtt')
148
- _DEFAULT_CLIENTS = ('android_vr', 'ios_downgraded', 'web', 'web_safari')
149
- _DEFAULT_JSLESS_CLIENTS = ('android_vr', 'ios_downgraded')
148
+ _DEFAULT_CLIENTS = ('android_vr', 'web', 'web_safari')
149
+ _DEFAULT_JSLESS_CLIENTS = ('android_vr',)
150
150
  _DEFAULT_AUTHED_CLIENTS = ('tv_downgraded', 'web', 'web_safari')
151
151
  # Premium does not require POT (except for subtitles)
152
152
  _DEFAULT_PREMIUM_CLIENTS = ('tv_downgraded', 'web_creator', 'web')
@@ -1443,7 +1443,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
1443
1443
  'view_count': int,
1444
1444
  },
1445
1445
  'params': {
1446
- 'extractor_args': {'youtube': {'player_client': ['tv_embedded']}},
1447
1446
  'format': '251-drc',
1448
1447
  'skip_download': True,
1449
1448
  },
@@ -3118,6 +3117,15 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
3118
3117
  else:
3119
3118
  prs.append(pr)
3120
3119
 
3120
+ if (
3121
+ # Is this a "made for kids" video that can't be downloaded with android_vr?
3122
+ client == 'android_vr' and self._is_unplayable(pr)
3123
+ and webpage and 'made for kids' in webpage
3124
+ # ...and is a JS runtime is available?
3125
+ and any(p.is_available() for p in self._jsc_director.providers.values())
3126
+ ):
3127
+ append_client('web_embedded')
3128
+
3121
3129
  # web_embedded can work around age-gate and age-verification for some embeddable videos
3122
3130
  if self._is_agegated(pr) and variant != 'web_embedded':
3123
3131
  append_client(f'web_embedded.{base_client}')
@@ -3134,9 +3142,8 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
3134
3142
  self.to_screen(
3135
3143
  f'{video_id}: This video is age-restricted and YouTube is requiring '
3136
3144
  'account age-verification; some formats may be missing', only_once=True)
3137
- # tv_embedded can work around the age-verification requirement for embeddable videos
3138
3145
  # web_creator may work around age-verification for all videos but requires PO token
3139
- append_client('tv_embedded', 'web_creator')
3146
+ append_client('web_creator')
3140
3147
 
3141
3148
  status = traverse_obj(pr, ('playabilityStatus', 'status', {str}))
3142
3149
  if status not in ('OK', 'LIVE_STREAM_OFFLINE', 'AGE_CHECK_REQUIRED', 'AGE_VERIFICATION_REQUIRED'):
@@ -3595,10 +3602,6 @@ class YoutubeIE(YoutubeBaseInfoExtractor):
3595
3602
  if client_name == 'web_safari' and proto == 'hls' and live_status != 'is_live':
3596
3603
  f['source_preference'] -= 1
3597
3604
 
3598
- # Safeguard against inevitable ios_downgraded client breakage
3599
- if client_name == 'ios_downgraded' and proto == 'hls' and live_status != 'is_live':
3600
- f['__needs_testing'] = True
3601
-
3602
3605
  if missing_pot:
3603
3606
  f['format_note'] = join_nonempty(f.get('format_note'), 'MISSING POT', delim=' ')
3604
3607
  f['source_preference'] -= 20
@@ -0,0 +1,15 @@
1
+ # Autogenerated by devscripts/update-version.py
2
+
3
+ __version__ = '2026.01.31'
4
+
5
+ RELEASE_GIT_HEAD = '9a9a6b6fe44a30458c1754ef064f354f04a84004'
6
+
7
+ VARIANT = 'pip'
8
+
9
+ UPDATE_HINT = 'You installed yt-dlp with pip or using the wheel from PyPi; Use that to update'
10
+
11
+ CHANNEL = 'stable'
12
+
13
+ ORIGIN = 'yt-dlp/yt-dlp'
14
+
15
+ _pkg_version = '2026.01.31'
@@ -1,15 +0,0 @@
1
- # Autogenerated by devscripts/update-version.py
2
-
3
- __version__ = '2026.01.29.165626'
4
-
5
- RELEASE_GIT_HEAD = '8b275536d945c4b3d07b6c520677922c67a7c10f'
6
-
7
- VARIANT = 'pip'
8
-
9
- UPDATE_HINT = 'You installed yt-dlp with pip or using the wheel from PyPi; Use that to update'
10
-
11
- CHANNEL = 'nightly'
12
-
13
- ORIGIN = 'yt-dlp/yt-dlp-nightly-builds'
14
-
15
- _pkg_version = '2026.01.29.165626dev'