streamlink 6.2.0__tar.gz → 6.2.1__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 (587) hide show
  1. {streamlink-6.2.0 → streamlink-6.2.1}/CHANGELOG.md +11 -0
  2. {streamlink-6.2.0 → streamlink-6.2.1}/MANIFEST.in +1 -0
  3. {streamlink-6.2.0 → streamlink-6.2.1}/PKG-INFO +2 -1
  4. streamlink-6.2.1/build_backend/__init__.py +79 -0
  5. streamlink-6.2.1/build_backend/test_build_backend.py +41 -0
  6. {streamlink-6.2.0 → streamlink-6.2.1}/dev-requirements.txt +2 -1
  7. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_build/man/streamlink.1 +1 -1
  8. {streamlink-6.2.0 → streamlink-6.2.1}/docs/changelog.md +11 -0
  9. {streamlink-6.2.0 → streamlink-6.2.1}/docs/install.rst +29 -5
  10. {streamlink-6.2.0 → streamlink-6.2.1}/pyproject.toml +19 -4
  11. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/_version.py +1 -1
  12. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/api/useragents.py +6 -6
  13. streamlink-6.2.1/src/streamlink/plugins/goodgame.py +89 -0
  14. streamlink-6.2.1/src/streamlink/plugins/nos.py +61 -0
  15. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/pandalive.py +5 -1
  16. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/wwenetwork.py +15 -41
  17. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/dash.py +1 -1
  18. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/file.py +1 -1
  19. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/hls.py +1 -1
  20. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/http.py +1 -1
  21. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/stream.py +1 -1
  22. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/l10n.py +6 -0
  23. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink.egg-info/PKG-INFO +2 -1
  24. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink.egg-info/SOURCES.txt +2 -0
  25. {streamlink-6.2.0 → streamlink-6.2.1}/tests/conftest.py +1 -0
  26. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/conftest.py +1 -1
  27. streamlink-6.2.1/tests/plugins/test_goodgame.py +23 -0
  28. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_nos.py +8 -6
  29. streamlink-6.2.1/tests/plugins/test_pandalive.py +11 -0
  30. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_wwenetwork.py +5 -2
  31. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_l10n.py +14 -0
  32. streamlink-6.2.0/src/streamlink/plugins/goodgame.py +0 -71
  33. streamlink-6.2.0/src/streamlink/plugins/nos.py +0 -103
  34. streamlink-6.2.0/tests/plugins/test_goodgame.py +0 -13
  35. streamlink-6.2.0/tests/plugins/test_pandalive.py +0 -17
  36. {streamlink-6.2.0 → streamlink-6.2.1}/AUTHORS +0 -0
  37. {streamlink-6.2.0 → streamlink-6.2.1}/LICENSE +0 -0
  38. {streamlink-6.2.0 → streamlink-6.2.1}/README.md +0 -0
  39. {streamlink-6.2.0 → streamlink-6.2.1}/completions/bash/streamlink +0 -0
  40. {streamlink-6.2.0 → streamlink-6.2.1}/completions/zsh/_streamlink +0 -0
  41. {streamlink-6.2.0 → streamlink-6.2.1}/docs/Makefile +0 -0
  42. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_applications.rst +0 -0
  43. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_man.rst +0 -0
  44. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/apple-touch-icon.png +0 -0
  45. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/favicon-16x16.png +0 -0
  46. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/favicon-32x32.png +0 -0
  47. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/favicon.ico +0 -0
  48. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/icon-ffmpeg.svg +0 -0
  49. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/icon-python.svg +0 -0
  50. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/icon.svg +0 -0
  51. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/opengraph-image.png +0 -0
  52. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/site.webmanifest +0 -0
  53. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_static/styles/custom.css +0 -0
  54. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_templates/base.html +0 -0
  55. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_templates/page.html +0 -0
  56. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_templates/sidebar/brand.html +0 -0
  57. {streamlink-6.2.0 → streamlink-6.2.1}/docs/_templates/sidebar/github-buttons.html +0 -0
  58. {streamlink-6.2.0 → streamlink-6.2.1}/docs/api/exceptions.rst +0 -0
  59. {streamlink-6.2.0 → streamlink-6.2.1}/docs/api/options.rst +0 -0
  60. {streamlink-6.2.0 → streamlink-6.2.1}/docs/api/plugin.rst +0 -0
  61. {streamlink-6.2.0 → streamlink-6.2.1}/docs/api/session.rst +0 -0
  62. {streamlink-6.2.0 → streamlink-6.2.1}/docs/api/stream.rst +0 -0
  63. {streamlink-6.2.0 → streamlink-6.2.1}/docs/api/streamlink.rst +0 -0
  64. {streamlink-6.2.0 → streamlink-6.2.1}/docs/api/webbrowser.rst +0 -0
  65. {streamlink-6.2.0 → streamlink-6.2.1}/docs/api.rst +0 -0
  66. {streamlink-6.2.0 → streamlink-6.2.1}/docs/api_guide.rst +0 -0
  67. {streamlink-6.2.0 → streamlink-6.2.1}/docs/applications.rst +0 -0
  68. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli/config.rst +0 -0
  69. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli/metadata.rst +0 -0
  70. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli/plugin-sideloading.rst +0 -0
  71. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli/plugins/crunchyroll.rst +0 -0
  72. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli/plugins/twitch.rst +0 -0
  73. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli/plugins.rst +0 -0
  74. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli/protocols.rst +0 -0
  75. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli/proxy.rst +0 -0
  76. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli/tutorial.rst +0 -0
  77. {streamlink-6.2.0 → streamlink-6.2.1}/docs/cli.rst +0 -0
  78. {streamlink-6.2.0 → streamlink-6.2.1}/docs/conf.py +0 -0
  79. {streamlink-6.2.0 → streamlink-6.2.1}/docs/deprecations.rst +0 -0
  80. {streamlink-6.2.0 → streamlink-6.2.1}/docs/developing.rst +0 -0
  81. {streamlink-6.2.0 → streamlink-6.2.1}/docs/docutils.conf +0 -0
  82. {streamlink-6.2.0 → streamlink-6.2.1}/docs/donate.rst +0 -0
  83. {streamlink-6.2.0 → streamlink-6.2.1}/docs/ext_argparse.py +0 -0
  84. {streamlink-6.2.0 → streamlink-6.2.1}/docs/ext_github.py +0 -0
  85. {streamlink-6.2.0 → streamlink-6.2.1}/docs/ext_html_template_vars.py +0 -0
  86. {streamlink-6.2.0 → streamlink-6.2.1}/docs/ext_plugins.py +0 -0
  87. {streamlink-6.2.0 → streamlink-6.2.1}/docs/ext_releaseref.py +0 -0
  88. {streamlink-6.2.0 → streamlink-6.2.1}/docs/index.rst +0 -0
  89. {streamlink-6.2.0 → streamlink-6.2.1}/docs/issues.rst +0 -0
  90. {streamlink-6.2.0 → streamlink-6.2.1}/docs/migrations.rst +0 -0
  91. {streamlink-6.2.0 → streamlink-6.2.1}/docs/players.rst +0 -0
  92. {streamlink-6.2.0 → streamlink-6.2.1}/docs/plugins.rst +0 -0
  93. {streamlink-6.2.0 → streamlink-6.2.1}/docs/thirdparty.rst +0 -0
  94. {streamlink-6.2.0 → streamlink-6.2.1}/docs-requirements.txt +0 -0
  95. {streamlink-6.2.0 → streamlink-6.2.1}/icon.svg +0 -0
  96. {streamlink-6.2.0 → streamlink-6.2.1}/setup.cfg +0 -0
  97. {streamlink-6.2.0 → streamlink-6.2.1}/setup.py +0 -0
  98. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/__init__.py +0 -0
  99. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/__main__.py +0 -0
  100. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/api.py +0 -0
  101. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/buffers.py +0 -0
  102. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/cache.py +0 -0
  103. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/compat.py +0 -0
  104. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/exceptions.py +0 -0
  105. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/logger.py +0 -0
  106. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/options.py +0 -0
  107. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/packages/__init__.py +0 -0
  108. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/packages/requests_file.py +0 -0
  109. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/__init__.py +0 -0
  110. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/api/__init__.py +0 -0
  111. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/api/http_session.py +0 -0
  112. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/api/validate/__init__.py +0 -0
  113. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/api/validate/_exception.py +0 -0
  114. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/api/validate/_schemas.py +0 -0
  115. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/api/validate/_validate.py +0 -0
  116. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/api/validate/_validators.py +0 -0
  117. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/api/websocket.py +0 -0
  118. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugin/plugin.py +0 -0
  119. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/__init__.py +0 -0
  120. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/abematv.py +0 -0
  121. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/adultswim.py +0 -0
  122. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/afreeca.py +0 -0
  123. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/albavision.py +0 -0
  124. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/aloula.py +0 -0
  125. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/app17.py +0 -0
  126. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/ard_live.py +0 -0
  127. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/ard_mediathek.py +0 -0
  128. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/artetv.py +0 -0
  129. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/atpchallenger.py +0 -0
  130. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/atresplayer.py +0 -0
  131. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/bbciplayer.py +0 -0
  132. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/bfmtv.py +0 -0
  133. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/bigo.py +0 -0
  134. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/bilibili.py +0 -0
  135. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/blazetv.py +0 -0
  136. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/bloomberg.py +0 -0
  137. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/booyah.py +0 -0
  138. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/brightcove.py +0 -0
  139. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/btv.py +0 -0
  140. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/cbsnews.py +0 -0
  141. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/cdnbg.py +0 -0
  142. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/ceskatelevize.py +0 -0
  143. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/cinergroup.py +0 -0
  144. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/clubbingtv.py +0 -0
  145. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/cmmedia.py +0 -0
  146. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/cnews.py +0 -0
  147. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/crunchyroll.py +0 -0
  148. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/dailymotion.py +0 -0
  149. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/dash.py +0 -0
  150. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/delfi.py +0 -0
  151. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/deutschewelle.py +0 -0
  152. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/dlive.py +0 -0
  153. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/dogan.py +0 -0
  154. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/dogus.py +0 -0
  155. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/drdk.py +0 -0
  156. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/earthcam.py +0 -0
  157. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/euronews.py +0 -0
  158. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/facebook.py +0 -0
  159. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/filmon.py +0 -0
  160. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/foxtr.py +0 -0
  161. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/galatasaraytv.py +0 -0
  162. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/goltelevision.py +0 -0
  163. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/googledrive.py +0 -0
  164. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/gulli.py +0 -0
  165. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/hiplayer.py +0 -0
  166. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/hls.py +0 -0
  167. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/http.py +0 -0
  168. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/htv.py +0 -0
  169. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/huajiao.py +0 -0
  170. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/huya.py +0 -0
  171. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/idf1.py +0 -0
  172. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/indihometv.py +0 -0
  173. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/invintus.py +0 -0
  174. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/kugou.py +0 -0
  175. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/linelive.py +0 -0
  176. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/livestream.py +0 -0
  177. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/lnk.py +0 -0
  178. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/lrt.py +0 -0
  179. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/ltv_lsm_lv.py +0 -0
  180. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/mdstrm.py +0 -0
  181. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/mediaklikk.py +0 -0
  182. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/mediavitrina.py +0 -0
  183. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/mildom.py +0 -0
  184. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/mitele.py +0 -0
  185. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/mixcloud.py +0 -0
  186. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/mjunoon.py +0 -0
  187. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/mrtmk.py +0 -0
  188. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/n13tv.py +0 -0
  189. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/nhkworld.py +0 -0
  190. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/nicolive.py +0 -0
  191. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/nimotv.py +0 -0
  192. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/nownews.py +0 -0
  193. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/nrk.py +0 -0
  194. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/ntv.py +0 -0
  195. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/okru.py +0 -0
  196. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/olympicchannel.py +0 -0
  197. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/oneplusone.py +0 -0
  198. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/onetv.py +0 -0
  199. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/openrectv.py +0 -0
  200. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/piaulizaportal.py +0 -0
  201. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/picarto.py +0 -0
  202. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/piczel.py +0 -0
  203. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/pixiv.py +0 -0
  204. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/pluto.py +0 -0
  205. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/pluzz.py +0 -0
  206. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/qq.py +0 -0
  207. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/radiko.py +0 -0
  208. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/radionet.py +0 -0
  209. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/raiplay.py +0 -0
  210. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/reuters.py +0 -0
  211. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/rtbf.py +0 -0
  212. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/rtpa.py +0 -0
  213. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/rtpplay.py +0 -0
  214. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/rtve.py +0 -0
  215. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/rtvs.py +0 -0
  216. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/ruv.py +0 -0
  217. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/sbscokr.py +0 -0
  218. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/showroom.py +0 -0
  219. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/sportal.py +0 -0
  220. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/sportschau.py +0 -0
  221. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/ssh101.py +0 -0
  222. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/stadium.py +0 -0
  223. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/steam.py +0 -0
  224. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/streamable.py +0 -0
  225. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/streann.py +0 -0
  226. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/stv.py +0 -0
  227. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/svtplay.py +0 -0
  228. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/swisstxt.py +0 -0
  229. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/telefe.py +0 -0
  230. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/telemadrid.py +0 -0
  231. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tf1.py +0 -0
  232. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/trovo.py +0 -0
  233. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/turkuvaz.py +0 -0
  234. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tv360.py +0 -0
  235. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tv3cat.py +0 -0
  236. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tv4play.py +0 -0
  237. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tv5monde.py +0 -0
  238. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tv8.py +0 -0
  239. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tv999.py +0 -0
  240. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tvibo.py +0 -0
  241. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tviplayer.py +0 -0
  242. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tvp.py +0 -0
  243. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tvrby.py +0 -0
  244. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tvrplus.py +0 -0
  245. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/tvtoya.py +0 -0
  246. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/twitcasting.py +0 -0
  247. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/twitch.py +0 -0
  248. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/ustreamtv.py +0 -0
  249. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/ustvnow.py +0 -0
  250. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/vidio.py +0 -0
  251. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/vimeo.py +0 -0
  252. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/vinhlongtv.py +0 -0
  253. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/vk.py +0 -0
  254. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/vkplay.py +0 -0
  255. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/vlive.py +0 -0
  256. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/vtvgo.py +0 -0
  257. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/wasd.py +0 -0
  258. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/webtv.py +0 -0
  259. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/welt.py +0 -0
  260. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/youtube.py +0 -0
  261. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/yupptv.py +0 -0
  262. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/zattoo.py +0 -0
  263. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/zdf_mediathek.py +0 -0
  264. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/zeenews.py +0 -0
  265. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/zengatv.py +0 -0
  266. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/plugins/zhanqi.py +0 -0
  267. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/py.typed +0 -0
  268. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/session.py +0 -0
  269. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/__init__.py +0 -0
  270. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/dash_manifest.py +0 -0
  271. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/ffmpegmux.py +0 -0
  272. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/filtered.py +0 -0
  273. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/hls_playlist.py +0 -0
  274. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/segmented.py +0 -0
  275. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/stream/wrappers.py +0 -0
  276. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/user_input.py +0 -0
  277. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/__init__.py +0 -0
  278. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/args.py +0 -0
  279. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/cache.py +0 -0
  280. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/crypto.py +0 -0
  281. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/data.py +0 -0
  282. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/formatter.py +0 -0
  283. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/module.py +0 -0
  284. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/named_pipe.py +0 -0
  285. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/parse.py +0 -0
  286. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/path.py +0 -0
  287. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/processoutput.py +0 -0
  288. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/random.py +0 -0
  289. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/socket.py +0 -0
  290. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/times.py +0 -0
  291. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/utils/url.py +0 -0
  292. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/__init__.py +0 -0
  293. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/__init__.py +0 -0
  294. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/client.py +0 -0
  295. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/connection.py +0 -0
  296. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/__init__.py +0 -0
  297. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/browser.py +0 -0
  298. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/debugger.py +0 -0
  299. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/dom.py +0 -0
  300. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/emulation.py +0 -0
  301. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/fetch.py +0 -0
  302. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/input_.py +0 -0
  303. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/inspector.py +0 -0
  304. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/io.py +0 -0
  305. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/network.py +0 -0
  306. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/page.py +0 -0
  307. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/runtime.py +0 -0
  308. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/security.py +0 -0
  309. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/target.py +0 -0
  310. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/devtools/util.py +0 -0
  311. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/cdp/exceptions.py +0 -0
  312. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/chromium.py +0 -0
  313. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/exceptions.py +0 -0
  314. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink/webbrowser/webbrowser.py +0 -0
  315. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink.egg-info/dependency_links.txt +0 -0
  316. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink.egg-info/entry_points.txt +0 -0
  317. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink.egg-info/requires.txt +0 -0
  318. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink.egg-info/top_level.txt +0 -0
  319. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/__init__.py +0 -0
  320. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/__main__.py +0 -0
  321. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/argparser.py +0 -0
  322. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/compat.py +0 -0
  323. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/console.py +0 -0
  324. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/constants.py +0 -0
  325. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/main.py +0 -0
  326. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/output/__init__.py +0 -0
  327. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/output/abc.py +0 -0
  328. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/output/file.py +0 -0
  329. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/output/http.py +0 -0
  330. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/output/player.py +0 -0
  331. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/streamrunner.py +0 -0
  332. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/utils/__init__.py +0 -0
  333. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/utils/formatter.py +0 -0
  334. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/utils/path.py +0 -0
  335. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/utils/player.py +0 -0
  336. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/utils/progress.py +0 -0
  337. {streamlink-6.2.0 → streamlink-6.2.1}/src/streamlink_cli/utils/versioncheck.py +0 -0
  338. {streamlink-6.2.0 → streamlink-6.2.1}/tests/__init__.py +0 -0
  339. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/__init__.py +0 -0
  340. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/output/__init__.py +0 -0
  341. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/output/test_file.py +0 -0
  342. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/output/test_player.py +0 -0
  343. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/test_argparser.py +0 -0
  344. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/test_cmdline.py +0 -0
  345. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/test_cmdline_title.py +0 -0
  346. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/test_console.py +0 -0
  347. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/test_main.py +0 -0
  348. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/test_main_formatter.py +0 -0
  349. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/test_main_setup_config_args.py +0 -0
  350. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/test_plugin_args_and_options.py +0 -0
  351. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/test_streamrunner.py +0 -0
  352. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/utils/__init__.py +0 -0
  353. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/utils/test_formatter.py +0 -0
  354. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/utils/test_path.py +0 -0
  355. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/utils/test_player.py +0 -0
  356. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/utils/test_progress.py +0 -0
  357. {streamlink-6.2.0 → streamlink-6.2.1}/tests/cli/utils/test_versioncheck.py +0 -0
  358. {streamlink-6.2.0 → streamlink-6.2.1}/tests/mixins/__init__.py +0 -0
  359. {streamlink-6.2.0 → streamlink-6.2.1}/tests/mixins/stream_hls.py +0 -0
  360. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugin/__init__.py +0 -0
  361. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugin/override/testplugin.py +0 -0
  362. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugin/testplugin.py +0 -0
  363. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugin/testplugin_invalid.py +0 -0
  364. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugin/testplugin_missing.py +0 -0
  365. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/__init__.py +0 -0
  366. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_abematv.py +0 -0
  367. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_adultswim.py +0 -0
  368. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_afreeca.py +0 -0
  369. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_albavision.py +0 -0
  370. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_aloula.py +0 -0
  371. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_app17.py +0 -0
  372. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_ard_live.py +0 -0
  373. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_ard_mediathek.py +0 -0
  374. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_artetv.py +0 -0
  375. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_atpchallenger.py +0 -0
  376. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_atresplayer.py +0 -0
  377. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_bbciplayer.py +0 -0
  378. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_bfmtv.py +0 -0
  379. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_bigo.py +0 -0
  380. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_bilibili.py +0 -0
  381. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_blazetv.py +0 -0
  382. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_bloomberg.py +0 -0
  383. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_booyah.py +0 -0
  384. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_brightcove.py +0 -0
  385. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_btv.py +0 -0
  386. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_cbsnews.py +0 -0
  387. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_cdnbg.py +0 -0
  388. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_ceskatelevize.py +0 -0
  389. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_cinergroup.py +0 -0
  390. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_clubbingtv.py +0 -0
  391. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_cmmedia.py +0 -0
  392. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_cnews.py +0 -0
  393. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_crunchyroll.py +0 -0
  394. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_dailymotion.py +0 -0
  395. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_dash.py +0 -0
  396. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_delfi.py +0 -0
  397. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_deutschewelle.py +0 -0
  398. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_dlive.py +0 -0
  399. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_dogan.py +0 -0
  400. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_dogus.py +0 -0
  401. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_drdk.py +0 -0
  402. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_earthcam.py +0 -0
  403. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_euronews.py +0 -0
  404. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_facebook.py +0 -0
  405. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_filmon.py +0 -0
  406. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_foxtr.py +0 -0
  407. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_galatasaraytv.py +0 -0
  408. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_goltelevision.py +0 -0
  409. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_googledrive.py +0 -0
  410. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_gulli.py +0 -0
  411. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_hiplayer.py +0 -0
  412. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_hls.py +0 -0
  413. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_http.py +0 -0
  414. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_htv.py +0 -0
  415. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_huajiao.py +0 -0
  416. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_huya.py +0 -0
  417. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_idf1.py +0 -0
  418. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_indihometv.py +0 -0
  419. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_invintus.py +0 -0
  420. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_kugou.py +0 -0
  421. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_linelive.py +0 -0
  422. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_livestream.py +0 -0
  423. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_lnk.py +0 -0
  424. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_lrt.py +0 -0
  425. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_ltv_lsm_lv.py +0 -0
  426. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_mdstrm.py +0 -0
  427. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_mediaklikk.py +0 -0
  428. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_mediavitrina.py +0 -0
  429. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_mildom.py +0 -0
  430. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_mitele.py +0 -0
  431. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_mixcloud.py +0 -0
  432. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_mjunoon.py +0 -0
  433. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_mrtmk.py +0 -0
  434. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_n13tv.py +0 -0
  435. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_nhkworld.py +0 -0
  436. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_nicolive.py +0 -0
  437. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_nimotv.py +0 -0
  438. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_nownews.py +0 -0
  439. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_nrk.py +0 -0
  440. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_ntv.py +0 -0
  441. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_okru.py +0 -0
  442. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_olympicchannel.py +0 -0
  443. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_oneplusone.py +0 -0
  444. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_onetv.py +0 -0
  445. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_openrectv.py +0 -0
  446. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_piaulizaportal.py +0 -0
  447. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_picarto.py +0 -0
  448. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_piczel.py +0 -0
  449. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_pixiv.py +0 -0
  450. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_pluto.py +0 -0
  451. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_pluzz.py +0 -0
  452. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_qq.py +0 -0
  453. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_radiko.py +0 -0
  454. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_radionet.py +0 -0
  455. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_raiplay.py +0 -0
  456. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_reuters.py +0 -0
  457. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_rtbf.py +0 -0
  458. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_rtpa.py +0 -0
  459. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_rtpplay.py +0 -0
  460. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_rtve.py +0 -0
  461. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_rtvs.py +0 -0
  462. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_ruv.py +0 -0
  463. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_sbscokr.py +0 -0
  464. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_showroom.py +0 -0
  465. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_sportal.py +0 -0
  466. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_sportschau.py +0 -0
  467. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_ssh101.py +0 -0
  468. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_stadium.py +0 -0
  469. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_steam.py +0 -0
  470. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_streamable.py +0 -0
  471. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_streann.py +0 -0
  472. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_stv.py +0 -0
  473. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_svtplay.py +0 -0
  474. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_swisstxt.py +0 -0
  475. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_telefe.py +0 -0
  476. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_telemadrid.py +0 -0
  477. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tf1.py +0 -0
  478. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_trovo.py +0 -0
  479. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_turkuvaz.py +0 -0
  480. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tv360.py +0 -0
  481. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tv3cat.py +0 -0
  482. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tv4play.py +0 -0
  483. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tv5monde.py +0 -0
  484. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tv8.py +0 -0
  485. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tv999.py +0 -0
  486. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tvibo.py +0 -0
  487. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tviplayer.py +0 -0
  488. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tvp.py +0 -0
  489. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tvrby.py +0 -0
  490. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tvrplus.py +0 -0
  491. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_tvtoya.py +0 -0
  492. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_twitcasting.py +0 -0
  493. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_twitch.py +0 -0
  494. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_ustreamtv.py +0 -0
  495. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_ustvnow.py +0 -0
  496. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_vidio.py +0 -0
  497. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_vimeo.py +0 -0
  498. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_vinhlongtv.py +0 -0
  499. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_vk.py +0 -0
  500. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_vkplay.py +0 -0
  501. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_vlive.py +0 -0
  502. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_vtvgo.py +0 -0
  503. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_wasd.py +0 -0
  504. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_webtv.py +0 -0
  505. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_welt.py +0 -0
  506. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_youtube.py +0 -0
  507. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_yupptv.py +0 -0
  508. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_zattoo.py +0 -0
  509. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_zdf_mediathek.py +0 -0
  510. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_zeenews.py +0 -0
  511. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_zengatv.py +0 -0
  512. {streamlink-6.2.0 → streamlink-6.2.1}/tests/plugins/test_zhanqi.py +0 -0
  513. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/__init__.py +0 -0
  514. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/cli/config/custom +0 -0
  515. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/cli/config/primary +0 -0
  516. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/cli/config/primary.testplugin +0 -0
  517. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/cli/config/secondary +0 -0
  518. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/cli/config/secondary.testplugin +0 -0
  519. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_1.mpd +0 -0
  520. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_10.mpd +0 -0
  521. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_11_static.mpd +0 -0
  522. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_2.mpd +0 -0
  523. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_3.mpd +0 -0
  524. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_8.mpd +0 -0
  525. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_9.mpd +0 -0
  526. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_dynamic_timeline_continued_p1.mpd +0 -0
  527. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_dynamic_timeline_continued_p2.mpd +0 -0
  528. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_nested_baseurls.mpd +0 -0
  529. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_no_segment_list_or_template.mpd +0 -0
  530. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_segment_list.mpd +0 -0
  531. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_segments_byterange.mpd +0 -0
  532. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_segments_dynamic_number.mpd +0 -0
  533. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_static_no_publish_time.mpd +0 -0
  534. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/dash/test_timeline_ids.mpd +0 -0
  535. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/hls/test_1.m3u8 +0 -0
  536. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/hls/test_2.m3u8 +0 -0
  537. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/hls/test_date.m3u8 +0 -0
  538. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/hls/test_master.m3u8 +0 -0
  539. {streamlink-6.2.0 → streamlink-6.2.1}/tests/resources/hls/test_master_twitch_vod.m3u8 +0 -0
  540. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/__init__.py +0 -0
  541. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_dash.py +0 -0
  542. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_dash_parser.py +0 -0
  543. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_ffmpegmux.py +0 -0
  544. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_file.py +0 -0
  545. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_hls.py +0 -0
  546. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_hls_filtered.py +0 -0
  547. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_hls_playlist.py +0 -0
  548. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_stream_json.py +0 -0
  549. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_stream_to_url.py +0 -0
  550. {streamlink-6.2.0 → streamlink-6.2.1}/tests/stream/test_stream_wrappers.py +0 -0
  551. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_api_http_session.py +0 -0
  552. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_api_validate.py +0 -0
  553. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_api_websocket.py +0 -0
  554. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_buffers.py +0 -0
  555. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_cache.py +0 -0
  556. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_logger.py +0 -0
  557. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_options.py +0 -0
  558. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_plugin.py +0 -0
  559. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_plugin_userinput.py +0 -0
  560. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_plugins.py +0 -0
  561. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_session.py +0 -0
  562. {streamlink-6.2.0 → streamlink-6.2.1}/tests/test_streamlink_api.py +0 -0
  563. {streamlink-6.2.0 → streamlink-6.2.1}/tests/testutils/__init__.py +0 -0
  564. {streamlink-6.2.0 → streamlink-6.2.1}/tests/testutils/handshake.py +0 -0
  565. {streamlink-6.2.0 → streamlink-6.2.1}/tests/testutils/test_handshake.py +0 -0
  566. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/__init__.py +0 -0
  567. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_args.py +0 -0
  568. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_cache.py +0 -0
  569. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_crypto.py +0 -0
  570. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_data.py +0 -0
  571. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_formatter.py +0 -0
  572. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_module.py +0 -0
  573. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_named_pipe.py +0 -0
  574. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_parse.py +0 -0
  575. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_path.py +0 -0
  576. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_processoutput.py +0 -0
  577. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_random.py +0 -0
  578. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_times.py +0 -0
  579. {streamlink-6.2.0 → streamlink-6.2.1}/tests/utils/test_url.py +0 -0
  580. {streamlink-6.2.0 → streamlink-6.2.1}/tests/webbrowser/__init__.py +0 -0
  581. {streamlink-6.2.0 → streamlink-6.2.1}/tests/webbrowser/cdp/__init__.py +0 -0
  582. {streamlink-6.2.0 → streamlink-6.2.1}/tests/webbrowser/cdp/conftest.py +0 -0
  583. {streamlink-6.2.0 → streamlink-6.2.1}/tests/webbrowser/cdp/test_client.py +0 -0
  584. {streamlink-6.2.0 → streamlink-6.2.1}/tests/webbrowser/cdp/test_connection.py +0 -0
  585. {streamlink-6.2.0 → streamlink-6.2.1}/tests/webbrowser/conftest.py +0 -0
  586. {streamlink-6.2.0 → streamlink-6.2.1}/tests/webbrowser/test_chromium.py +0 -0
  587. {streamlink-6.2.0 → streamlink-6.2.1}/tests/webbrowser/test_webbrowser.py +0 -0
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## streamlink 6.2.1 (2023-10-03)
4
+
5
+ Patch release:
6
+
7
+ - Added: official support for Python 3.12 ([#5576](https://github.com/streamlink/streamlink/pull/5576))
8
+ - Fixed plugins: goodgame ([#5557](https://github.com/streamlink/streamlink/pull/5557)), nos ([#5565](https://github.com/streamlink/streamlink/pull/5565)), pandalive ([#5569](https://github.com/streamlink/streamlink/pull/5569)), wwenetwork ([#5559](https://github.com/streamlink/streamlink/pull/5559))
9
+ - Build: added custom setuptools build-backend override which fixes issues with building Windows-specific wheels ([#5558](https://github.com/streamlink/streamlink/pull/5558))
10
+
11
+ [Full changelog](https://github.com/streamlink/streamlink/compare/6.2.0...6.2.1)
12
+
13
+
3
14
  ## streamlink 6.2.0 (2023-09-14)
4
15
 
5
16
  Release highlights:
@@ -5,6 +5,7 @@ include LICENSE*
5
5
  include *requirements.txt
6
6
  include icon.svg
7
7
 
8
+ recursive-include build_backend *
8
9
  recursive-include completions *
9
10
  recursive-include docs *
10
11
  recursive-include tests *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: streamlink
3
- Version: 6.2.0
3
+ Version: 6.2.1
4
4
  Summary: Streamlink is a command-line utility that extracts streams from various services and pipes them into a video player of choice.
5
5
  Author: Streamlink
6
6
  Author-email: streamlink@protonmail.com
@@ -23,6 +23,7 @@ Classifier: Programming Language :: Python :: 3.8
23
23
  Classifier: Programming Language :: Python :: 3.9
24
24
  Classifier: Programming Language :: Python :: 3.10
25
25
  Classifier: Programming Language :: Python :: 3.11
26
+ Classifier: Programming Language :: Python :: 3.12
26
27
  Classifier: Topic :: Internet :: WWW/HTTP
27
28
  Classifier: Topic :: Multimedia :: Sound/Audio
28
29
  Classifier: Topic :: Multimedia :: Video
@@ -0,0 +1,79 @@
1
+ import shlex
2
+ from typing import List, Optional, Tuple
3
+
4
+ from setuptools import build_meta as _build_meta
5
+
6
+ # re-export everything from `setuptools.build_meta`, so that we don't have to worry about any hooks which we don't override
7
+ # https://peps.python.org/pep-0517/
8
+ # https://peps.python.org/pep-0660/
9
+ # noinspection PyUnresolvedReferences
10
+ from setuptools.build_meta import * # noqa: F403
11
+ from setuptools.command.egg_info import egg_info as _egg_info
12
+
13
+
14
+ # ----
15
+
16
+
17
+ def get_requires_for_build_wheel( # type: ignore[no-redef]
18
+ config_settings: Optional[dict] = None,
19
+ ) -> List[str]: # pragma: no cover
20
+ # Streamlink publishes three wheels on PyPI: the generic "any" wheel, the "win32" wheel and the "win-amd64" wheel:
21
+ # The Windows-wheels are special, because they include a "gui_scripts" entry point, which is used by the `pip` frontend
22
+ # to generate the "streamlinkw" launcher, which doesn't open a terminal window when launching it from a GUI application.
23
+ #
24
+ # In order to build these special Windows-wheels, the `--plat-name=...` CLI argument needs to get passed
25
+ # to the `bdist_wheel` setuptools command (provided by the `wheel` package). With the introduction of PEP517 however,
26
+ # setuptools's CLI is not used directly anymore, and instead, we have to build the wheels using the `build` package
27
+ # and the `--wheel --config-setting=--build-option=...` args, which are then forwarded to setuptools via the PEP517 hooks.
28
+ #
29
+ # Since `build==1.0.0` though, the `--config-setting` data now gets passed to all build-backend hooks involved,
30
+ # even `get_requires_for_build_wheel()`. This results in the build failing, as it executes setuptools's `egg_info` command,
31
+ # which doesn't accept the `--plat-name` argument or any other `bdist_wheel` command options.
32
+ #
33
+ # As a consequence of this, we need to override the build-backend and the `get_requires_for_build_wheel()` hook, so that
34
+ # we can filter out arguments which are not relevant to the `egg_info` command.
35
+ _filter_cmd_option_args(config_settings, "--build-option", _egg_info.user_options)
36
+
37
+ return _build_meta.get_requires_for_build_wheel(config_settings)
38
+
39
+
40
+ # ----
41
+
42
+
43
+ def _filter_cmd_option_args(
44
+ config_settings: Optional[dict],
45
+ key: str,
46
+ options: List[Tuple[str, Optional[str], str]],
47
+ ) -> None:
48
+ """Filter out args which are not recognized by a specific command and its options"""
49
+
50
+ if not config_settings or not config_settings.get(key):
51
+ return
52
+
53
+ parsed = shlex.split(config_settings[key])
54
+
55
+ result = []
56
+ val_next = False
57
+ for item in parsed:
58
+ if val_next:
59
+ val_next = False
60
+ result.append(item)
61
+ continue
62
+ for full, shorthand, *_ in options:
63
+ is_boolean = full[-1] != "="
64
+ is_shorthand = shorthand is not None and item == f"-{shorthand}"
65
+ if not is_boolean and (is_shorthand or item == f"--{full[:-1]}"):
66
+ val_next = True
67
+ result.append(item)
68
+ break
69
+ if (
70
+ is_boolean and (is_shorthand or item == f"--{full}")
71
+ or not is_boolean and item.startswith(f"--{full}")
72
+ ):
73
+ result.append(item)
74
+ break
75
+
76
+ if result:
77
+ config_settings[key] = shlex.join(result)
78
+ else:
79
+ del config_settings[key]
@@ -0,0 +1,41 @@
1
+ import pytest
2
+ from setuptools.command.egg_info import egg_info
3
+
4
+ from build_backend import _filter_cmd_option_args
5
+
6
+
7
+ @pytest.mark.parametrize(("config_settings", "expected", "options"), [
8
+ pytest.param(
9
+ None,
10
+ None,
11
+ egg_info.user_options,
12
+ id="Empty config_settings",
13
+ ),
14
+ pytest.param(
15
+ {"foo": "bar"},
16
+ {"foo": "bar"},
17
+ egg_info.user_options,
18
+ id="No --build-option key",
19
+ ),
20
+ pytest.param(
21
+ {"--build-option": "--egg-base=foo/bar -e baz/qux --tag-build foo -b bar --tag-date --no-date -D"},
22
+ {"--build-option": "--egg-base=foo/bar -e baz/qux --tag-build foo -b bar --tag-date --no-date -D"},
23
+ egg_info.user_options,
24
+ id="All egg_info options",
25
+ ),
26
+ pytest.param(
27
+ {"--build-option": "--foo --bar --baz"},
28
+ {},
29
+ egg_info.user_options,
30
+ id="Options unknown to egg_info",
31
+ ),
32
+ pytest.param(
33
+ {"--build-option": "-p win32 --plat-name win32 --plat-name=win32"},
34
+ {},
35
+ egg_info.user_options,
36
+ id="bdist_wheel --plat-name option",
37
+ ),
38
+ ])
39
+ def test_filter_cmd_option_args(config_settings: dict, expected: str, options: list):
40
+ _filter_cmd_option_args(config_settings, "--build-option", options)
41
+ assert config_settings == expected
@@ -14,7 +14,7 @@ pytest-cov
14
14
  coverage[toml]
15
15
 
16
16
  # code-linting
17
- ruff ==0.0.287
17
+ ruff ==0.0.291
18
18
 
19
19
  # typing
20
20
  mypy
@@ -22,6 +22,7 @@ lxml-stubs
22
22
  trio-typing
23
23
  types-freezegun
24
24
  types-requests
25
+ types-setuptools
25
26
  types-urllib3
26
27
 
27
28
  # scripts
@@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
27
27
  .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
28
28
  .in \\n[rst2man-indent\\n[rst2man-indent-level]]u
29
29
  ..
30
- .TH "STREAMLINK" "1" "Sep 14, 2023" "6.2.0" "Streamlink"
30
+ .TH "STREAMLINK" "1" "Oct 03, 2023" "6.2.1" "Streamlink"
31
31
  .SH NAME
32
32
  streamlink \- extracts streams from various services and pipes them into a video player of choice
33
33
  .SH SYNOPSIS
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## streamlink 6.2.1 (2023-10-03)
4
+
5
+ Patch release:
6
+
7
+ - Added: official support for Python 3.12 ([#5576](https://github.com/streamlink/streamlink/pull/5576))
8
+ - Fixed plugins: goodgame ([#5557](https://github.com/streamlink/streamlink/pull/5557)), nos ([#5565](https://github.com/streamlink/streamlink/pull/5565)), pandalive ([#5569](https://github.com/streamlink/streamlink/pull/5569)), wwenetwork ([#5559](https://github.com/streamlink/streamlink/pull/5559))
9
+ - Build: added custom setuptools build-backend override which fixes issues with building Windows-specific wheels ([#5558](https://github.com/streamlink/streamlink/pull/5558))
10
+
11
+ [Full changelog](https://github.com/streamlink/streamlink/compare/6.2.0...6.2.1)
12
+
13
+
3
14
  ## streamlink 6.2.0 (2023-09-14)
4
15
 
5
16
  Release highlights:
@@ -136,6 +136,12 @@ Linux and BSD
136
136
  - See the `Linux AppImages`_ section below
137
137
  * - :octicon:`verified` Python pip
138
138
  - See the `PyPI package and source code`_ section below
139
+ * - :octicon:`package-dependents` `Alpine Linux (edge, testing)`_
140
+ - .. code-block:: bash
141
+
142
+ sudo apk add streamlink
143
+
144
+ `Enabling the edge/testing repository`_
139
145
  * - :octicon:`package-dependents` `Arch Linux`_
140
146
  - .. code-block:: bash
141
147
 
@@ -167,6 +173,16 @@ Linux and BSD
167
173
  - .. code-block:: bash
168
174
 
169
175
  sudo dnf install streamlink
176
+ * - :octicon:`package-dependents` `FreeBSD (pkg)`_
177
+ - .. code-block:: bash
178
+
179
+ pkg install multimedia/streamlink
180
+
181
+ * - :octicon:`package-dependents` `FreeBSD (ports)`_
182
+ - .. code-block:: bash
183
+
184
+ cd /usr/ports/multimedia/streamlink
185
+ make config install clean
170
186
  * - :octicon:`package-dependents` `Gentoo Linux`_
171
187
  - .. code-block:: bash
172
188
 
@@ -195,20 +211,24 @@ Linux and BSD
195
211
 
196
212
  sudo xbps-install streamlink
197
213
 
214
+ .. _Alpine Linux (edge, testing): https://pkgs.alpinelinux.org/packages?name=streamlink
198
215
  .. _Arch Linux: https://archlinux.org/packages/extra/any/streamlink/
199
216
  .. _Arch Linux (aur, git): https://aur.archlinux.org/packages/streamlink-git/
200
- .. _Debian (sid, testing): https://packages.debian.org/unstable/streamlink
201
- .. _Debian (stable): https://packages.debian.org/unstable/streamlink
217
+ .. _Debian (sid, testing): https://packages.debian.org/sid/streamlink
218
+ .. _Debian (stable): https://packages.debian.org/bullseye-backports/streamlink
202
219
  .. _Fedora: https://src.fedoraproject.org/rpms/python-streamlink
220
+ .. _FreeBSD (pkg): https://ports.freebsd.org/cgi/ports.cgi?query=streamlink&stype=name
221
+ .. _FreeBSD (ports): https://www.freshports.org/multimedia/streamlink
203
222
  .. _Gentoo Linux: https://packages.gentoo.org/package/net-misc/streamlink
204
223
  .. _NetBSD (pkgsrc): https://pkgsrc.se/multimedia/streamlink
205
224
  .. _NixOS: https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/video/streamlink
206
225
  .. _openSUSE: https://build.opensuse.org/package/show/multimedia:apps/streamlink
207
- .. _Solus: https://github.com/solus-packages/streamlink
226
+ .. _Solus: https://github.com/getsolus/packages/tree/main/packages/s/streamlink
208
227
  .. _Void: https://github.com/void-linux/void-packages/tree/master/srcpkgs/streamlink
209
228
 
210
- .. _Installing AUR packages: https://wiki.archlinux.org/index.php/Arch_User_Repository#Installing_packages
211
- .. _Installing Debian backported packages: https://wiki.debian.org/Backports#Using_the_command_line
229
+ .. _Enabling the edge/testing repository: https://wiki.alpinelinux.org/wiki/Repositories#Edge
230
+ .. _Installing AUR packages: https://wiki.archlinux.org/index.php/Arch_User_Repository
231
+ .. _Installing Debian backported packages: https://wiki.debian.org/Backports
212
232
  .. _NixOS channel: https://search.nixos.org/packages?show=streamlink&query=streamlink
213
233
 
214
234
 
@@ -221,6 +241,8 @@ Package maintainers
221
241
 
222
242
  * - Distribution / Platform
223
243
  - Maintainer
244
+ * - Alpine Linux
245
+ - Robert Sacks <robert at sacks.email>
224
246
  * - Arch
225
247
  - Giancarlo Razzolini <grazzolini at archlinux.org>
226
248
  * - Arch (aur, git)
@@ -231,6 +253,8 @@ Package maintainers
231
253
  - Alexis Murzeau <amubtdx at gmail.com>
232
254
  * - Fedora
233
255
  - Mohamed El Morabity <melmorabity at fedoraproject.org>
256
+ * - FreeBSD
257
+ - Takefu <takefu at airport.fm>
234
258
  * - Gentoo
235
259
  - soredake <fdsfgs at krutt.org>
236
260
  * - NetBSD
@@ -1,10 +1,13 @@
1
1
  [build-system]
2
- build-backend = "setuptools.build_meta"
3
2
  requires = [
4
3
  "setuptools >=64",
5
4
  "wheel",
6
5
  "versioningit >=2.0.0, <3",
7
6
  ]
7
+ # setuptools build-backend override
8
+ # https://setuptools.pypa.io/en/stable/build_meta.html
9
+ backend-path = ["build_backend"]
10
+ build-backend = "__init__"
8
11
 
9
12
 
10
13
  # https://peps.python.org/pep-0621/
@@ -34,6 +37,7 @@ classifiers = [
34
37
  "Programming Language :: Python :: 3.9",
35
38
  "Programming Language :: Python :: 3.10",
36
39
  "Programming Language :: Python :: 3.11",
40
+ "Programming Language :: Python :: 3.12",
37
41
  "Topic :: Internet :: WWW/HTTP",
38
42
  "Topic :: Multimedia :: Sound/Audio",
39
43
  "Topic :: Multimedia :: Video",
@@ -110,6 +114,10 @@ build-file = "streamlink/_version.py"
110
114
  # https://docs.pytest.org/en/latest/reference/customize.html#configuration
111
115
  # https://docs.pytest.org/en/latest/reference/reference.html#ini-options-ref
112
116
  [tool.pytest.ini_options]
117
+ testpaths = [
118
+ "build_backend",
119
+ "tests",
120
+ ]
113
121
  filterwarnings = [
114
122
  "always",
115
123
  "ignore:::pkg_resources",
@@ -121,6 +129,7 @@ filterwarnings = [
121
129
  [tool.coverage.run]
122
130
  branch = true
123
131
  source = [
132
+ "build_backend",
124
133
  "src",
125
134
  "tests",
126
135
  ]
@@ -140,15 +149,20 @@ exclude_lines = [
140
149
  ]
141
150
 
142
151
 
143
- # https://beta.ruff.rs/docs/configuration/
152
+ # https://docs.astral.sh/ruff/configuration/
144
153
  [tool.ruff]
145
- src = ["src", "tests"]
154
+ src = [
155
+ "build_backend",
156
+ "src",
157
+ "tests",
158
+ ]
146
159
  target-version = "py38"
147
160
  fix = false
148
161
  ignore-init-module-imports = true
149
162
  line-length = 128
150
163
  show-source = true
151
- format = "grouped"
164
+ output-format = "grouped"
165
+ preview = true
152
166
  select = [
153
167
  # pycodestyle
154
168
  "E",
@@ -233,6 +247,7 @@ show_error_context = true
233
247
  show_column_numbers = true
234
248
  warn_no_return = false
235
249
  files = [
250
+ "build_backend",
236
251
  "src/streamlink/",
237
252
  "src/streamlink_cli/",
238
253
  "tests/",
@@ -12,4 +12,4 @@ def _get_version() -> str:
12
12
 
13
13
  # The following _get_version() call will get replaced by versioningit with a static version string when building streamlink
14
14
  # `pip install .` / `pip wheel .` / `python setup.py build` / `python setup.py bdist_wheel` / etc.
15
- __version__ = "6.2.0"
15
+ __version__ = "6.2.1"
@@ -1,11 +1,11 @@
1
- ANDROID = "Mozilla/5.0 (Linux; Android 13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.5845.163 Mobile Safari/537.36"
2
- CHROME = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36"
1
+ ANDROID = "Mozilla/5.0 (Linux; Android 13) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.5938.140 Mobile Safari/537.36"
2
+ CHROME = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
3
3
  CHROME_OS = "Mozilla/5.0 (X11; CrOS x86_64 15359.58.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.5615.134 Safari/537.36"
4
- FIREFOX = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0"
4
+ FIREFOX = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/118.0"
5
5
  IE_11 = "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"
6
- IPHONE = "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Mobile/15E148 Safari/604.1"
7
- OPERA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36 OPR/102.0.0.0"
8
- SAFARI = "Mozilla/5.0 (Macintosh; Intel Mac OS X 13_5_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15"
6
+ IPHONE = "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Mobile/15E148 Safari/604.1"
7
+ OPERA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 OPR/102.0.0.0"
8
+ SAFARI = "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_0) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.5 Safari/605.1.15"
9
9
 
10
10
  # Backwards compatibility
11
11
  EDGE = CHROME
@@ -0,0 +1,89 @@
1
+ """
2
+ $description Russian live-streaming platform for live video game broadcasts.
3
+ $url goodgame.ru
4
+ $type live
5
+ $metadata id
6
+ $metadata author
7
+ $metadata category
8
+ $metadata title
9
+ """
10
+
11
+ import logging
12
+ import re
13
+ import sys
14
+ from urllib.parse import urlparse, urlunparse
15
+
16
+ from streamlink.plugin import Plugin, pluginmatcher
17
+ from streamlink.plugin.api import validate
18
+ from streamlink.stream.hls import HLSStream
19
+
20
+
21
+ log = logging.getLogger(__name__)
22
+
23
+
24
+ @pluginmatcher(re.compile(
25
+ r"https?://(?:www\.)?goodgame\.ru/(?:channel/)?(?P<user>[^/]+)",
26
+ ))
27
+ class GoodGame(Plugin):
28
+ @classmethod
29
+ def stream_weight(cls, stream):
30
+ if stream == "source":
31
+ return sys.maxsize, stream
32
+ return super().stream_weight(stream)
33
+
34
+ def __init__(self, *args, **kwargs):
35
+ super().__init__(*args, **kwargs)
36
+
37
+ # `/channel/user` returns different JSON data with less useful information
38
+ url = urlparse(self.url)
39
+ self.url = urlunparse(url._replace(path=re.sub(r"^/channel/", "/", url.path)))
40
+
41
+ def _get_streams(self):
42
+ data = self.session.http.get(
43
+ self.url,
44
+ schema=validate.Schema(
45
+ validate.parse_html(),
46
+ validate.xml_xpath_string(".//script[contains(text(),'channel:{')][1]/text()"),
47
+ re.compile(r"channel:(?P<json>{.+?}),?\n"),
48
+ validate.none_or_all(
49
+ validate.get("json"),
50
+ validate.parse_json(),
51
+ {
52
+ "status": bool,
53
+ "id": int,
54
+ "streamer": {"username": str},
55
+ "game": str,
56
+ "title": str,
57
+ "sources": validate.all(
58
+ {str: validate.url()},
59
+ validate.filter(lambda k, v: ".m3u8" in v),
60
+ ),
61
+ },
62
+ validate.union_get(
63
+ "status",
64
+ "id",
65
+ ("streamer", "username"),
66
+ "game",
67
+ "title",
68
+ "sources",
69
+ ),
70
+ ),
71
+ ),
72
+ )
73
+
74
+ if not data:
75
+ log.error("Could not find channel info")
76
+ return
77
+
78
+ status, self.id, self.author, self.category, self.title, sources = data
79
+
80
+ if not status:
81
+ log.debug("Channel appears to be offline")
82
+ return
83
+
84
+ for name, url in sources.items():
85
+ name = f"{name}{'p' if name.isnumeric() else ''}"
86
+ yield name, HLSStream(self.session, url)
87
+
88
+
89
+ __plugin__ = GoodGame
@@ -0,0 +1,61 @@
1
+ """
2
+ $description Live TV channels and video on-demand service from NOS, a Dutch public, state-owned broadcaster.
3
+ $url nos.nl
4
+ $type live, vod
5
+ $metadata id
6
+ $metadata title
7
+ $region Netherlands
8
+ """
9
+
10
+ import logging
11
+ import re
12
+
13
+ from streamlink.plugin import Plugin, pluginmatcher
14
+ from streamlink.plugin.api import validate
15
+ from streamlink.stream.hls import HLSStream
16
+
17
+
18
+ log = logging.getLogger(__name__)
19
+
20
+
21
+ @pluginmatcher(re.compile(
22
+ r"https?://(?:\w+\.)?nos\.nl/(?:live|video|collectie)",
23
+ ))
24
+ class NOS(Plugin):
25
+ def _get_streams(self):
26
+ data = self.session.http.get(
27
+ self.url,
28
+ schema=validate.Schema(
29
+ validate.parse_html(),
30
+ validate.xml_xpath_string(".//script[@type='application/ld+json'][1]/text()"),
31
+ validate.none_or_all(
32
+ validate.parse_json(),
33
+ {
34
+ "@type": "VideoObject",
35
+ "encodingFormat": "application/vnd.apple.mpegurl",
36
+ "contentUrl": validate.url(),
37
+ "identifier": validate.any(int, str),
38
+ "name": str,
39
+ },
40
+ validate.union_get(
41
+ "contentUrl",
42
+ "identifier",
43
+ "name",
44
+ ),
45
+ ),
46
+ ),
47
+ )
48
+ if not data:
49
+ return
50
+
51
+ hls_url, self.id, self.title = data
52
+
53
+ res = self.session.http.get(hls_url, raise_for_status=False)
54
+ if res.status_code >= 400:
55
+ log.error("Content is inaccessible or may have expired")
56
+ return
57
+
58
+ return HLSStream.parse_variant_playlist(self.session, hls_url)
59
+
60
+
61
+ __plugin__ = NOS
@@ -18,7 +18,7 @@ log = logging.getLogger(__name__)
18
18
 
19
19
 
20
20
  @pluginmatcher(re.compile(
21
- r"https?://(?:www\.)?pandalive\.co\.kr/",
21
+ r"https?://(?:www\.)?pandalive\.co\.kr/live/play/[^/]+",
22
22
  ))
23
23
  class Pandalive(Plugin):
24
24
  def _get_streams(self):
@@ -34,10 +34,14 @@ class Pandalive(Plugin):
34
34
 
35
35
  json = self.session.http.post(
36
36
  "https://api.pandalive.co.kr/v1/live/play",
37
+ headers={
38
+ "Referer": self.url,
39
+ },
37
40
  data={
38
41
  "action": "watch",
39
42
  "userId": media_code,
40
43
  },
44
+ acceptable_status=(200, 400),
41
45
  schema=validate.Schema(
42
46
  validate.parse_json(),
43
47
  validate.any(