yt-dlp 2025.11.12.5349.dev0__py3-none-any.whl → 2025.11.14.235840.dev0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
yt_dlp/extractor/jtbc.py CHANGED
@@ -98,7 +98,7 @@ class JTBCIE(InfoExtractor):
98
98
 
99
99
  formats = []
100
100
  for stream_url in traverse_obj(playback_data, ('sources', 'HLS', ..., 'file', {url_or_none})):
101
- stream_url = re.sub(r'/playlist(?:_pd\d+)?\.m3u8', '/index.m3u8', stream_url)
101
+ stream_url = re.sub(r'/playlist_pd\d+\.m3u8', '/playlist.m3u8', stream_url)
102
102
  formats.extend(self._extract_m3u8_formats(stream_url, video_id, fatal=False))
103
103
 
104
104
  metadata = self._download_json(
@@ -3,12 +3,14 @@ from ..utils import (
3
3
  MEDIA_EXTENSIONS,
4
4
  determine_ext,
5
5
  parse_iso8601,
6
- traverse_obj,
7
6
  url_or_none,
8
7
  )
8
+ from ..utils.traversal import traverse_obj
9
9
 
10
10
 
11
11
  class RinseFMBaseIE(InfoExtractor):
12
+ _API_BASE = 'https://rinse.fm/api/query/v1'
13
+
12
14
  @staticmethod
13
15
  def _parse_entry(entry):
14
16
  return {
@@ -45,8 +47,10 @@ class RinseFMIE(RinseFMBaseIE):
45
47
 
46
48
  def _real_extract(self, url):
47
49
  display_id = self._match_id(url)
48
- webpage = self._download_webpage(url, display_id)
49
- entry = self._search_nextjs_data(webpage, display_id)['props']['pageProps']['entry']
50
+
51
+ entry = self._download_json(
52
+ f'{self._API_BASE}/episodes/{display_id}', display_id,
53
+ note='Downloading episode data from API')['entry']
50
54
 
51
55
  return self._parse_entry(entry)
52
56
 
@@ -58,32 +62,35 @@ class RinseFMArtistPlaylistIE(RinseFMBaseIE):
58
62
  'info_dict': {
59
63
  'id': 'resources',
60
64
  'title': '[re]sources',
61
- 'description': '[re]sources est un label parisien piloté par le DJ et producteur Tommy Kid.',
65
+ 'description': 'md5:fd6a7254e8273510e6d49fbf50edf392',
62
66
  },
63
67
  'playlist_mincount': 40,
64
68
  }, {
65
- 'url': 'https://rinse.fm/shows/ivy/',
69
+ 'url': 'https://www.rinse.fm/shows/esk',
66
70
  'info_dict': {
67
- 'id': 'ivy',
68
- 'title': '[IVY]',
69
- 'description': 'A dedicated space for DNB/Turbo House and 4x4.',
71
+ 'id': 'esk',
72
+ 'title': 'Esk',
73
+ 'description': 'md5:5893d7c1d411ae8dea7fba12f109aa98',
70
74
  },
71
- 'playlist_mincount': 7,
75
+ 'playlist_mincount': 139,
72
76
  }]
73
77
 
74
78
  def _entries(self, data):
75
79
  for episode in traverse_obj(data, (
76
- 'props', 'pageProps', 'episodes', lambda _, v: determine_ext(v['fileUrl']) in MEDIA_EXTENSIONS.audio),
80
+ 'episodes', lambda _, v: determine_ext(v['fileUrl']) in MEDIA_EXTENSIONS.audio),
77
81
  ):
78
82
  yield self._parse_entry(episode)
79
83
 
80
84
  def _real_extract(self, url):
81
85
  playlist_id = self._match_id(url)
82
- webpage = self._download_webpage(url, playlist_id)
83
- title = self._og_search_title(webpage) or self._html_search_meta('title', webpage)
84
- description = self._og_search_description(webpage) or self._html_search_meta(
85
- 'description', webpage)
86
- data = self._search_nextjs_data(webpage, playlist_id)
86
+
87
+ api_data = self._download_json(
88
+ f'{self._API_BASE}/shows/{playlist_id}', playlist_id,
89
+ note='Downloading show data from API')
87
90
 
88
91
  return self.playlist_result(
89
- self._entries(data), playlist_id, title, description=description)
92
+ self._entries(api_data), playlist_id,
93
+ **traverse_obj(api_data, ('entry', {
94
+ 'title': ('title', {str}),
95
+ 'description': ('description', {str}),
96
+ })))
yt_dlp/version.py CHANGED
@@ -1,8 +1,8 @@
1
1
  # Autogenerated by devscripts/update-version.py
2
2
 
3
- __version__ = '2025.11.12.005349'
3
+ __version__ = '2025.11.14.235840'
4
4
 
5
- RELEASE_GIT_HEAD = '5977782142ca7e41240f07202cc9b8dcc087b401'
5
+ RELEASE_GIT_HEAD = 'd6aa8c235d2e7d9374f79ec73af23a3859c76bea'
6
6
 
7
7
  VARIANT = 'pip'
8
8
 
@@ -12,4 +12,4 @@ CHANNEL = 'nightly'
12
12
 
13
13
  ORIGIN = 'yt-dlp/yt-dlp-nightly-builds'
14
14
 
15
- _pkg_version = '2025.11.12.005349dev'
15
+ _pkg_version = '2025.11.14.235840dev'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: yt-dlp
3
- Version: 2025.11.12.5349.dev0
3
+ Version: 2025.11.14.235840.dev0
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
@@ -11,7 +11,7 @@ yt_dlp/options.py,sha256=Icc0JRiKOzITWoMujE_ihEmkCS-uCcie42XhIh8LvS4,100388
11
11
  yt_dlp/plugins.py,sha256=EGmR0ydaahNspGrgszTNX4-YjHe93WOOhcw1gf6PZSs,8215
12
12
  yt_dlp/socks.py,sha256=oAuAfWM6jxI8A5hHDLEKq2U2-k9NyMB_z6nrKzNE9fg,8936
13
13
  yt_dlp/update.py,sha256=sY7gNFBQorzs7sEjRrqL5QOsTBNmGGa_FnpTtbxY1vA,25280
14
- yt_dlp/version.py,sha256=WwM2TZg9_2Mf0FNeue-h4JXt5ml-N8hhP0eymj46L4Y,360
14
+ yt_dlp/version.py,sha256=nvgsm8Mz1dAhSNPZGonCnZW1Db6mcYKfDS6jFiRhcrI,360
15
15
  yt_dlp/webvtt.py,sha256=ONkXaaNCZcX8pQhJn3iwIKyaQ34BtVDrMEdG6wRNZwM,11451
16
16
  yt_dlp/__pyinstaller/__init__.py,sha256=-c4Zo8nQGKAm8wc_LDscxMtK7zr_YhZwRnC9CMruUBE,72
17
17
  yt_dlp/__pyinstaller/hook-yt_dlp.py,sha256=5Rd0zV2pDskjY1KtT0wsjxv4hStx67sLCjUexsFvFus,1339
@@ -428,7 +428,7 @@ yt_dlp/extractor/jixie.py,sha256=NT41naouD4h1XlxGIcJ4YbNF1p4XnSo7FRByt212OQo,219
428
428
  yt_dlp/extractor/joj.py,sha256=2MKpBdjlgIIQgpEHrJBW35Y_RXyDzMdQ5EhE6NCaQJo,4190
429
429
  yt_dlp/extractor/jove.py,sha256=fR0ym8u_9_p6kFv_muRDHU0WfRB0hP3VN9-nNbGHuFQ,3009
430
430
  yt_dlp/extractor/jstream.py,sha256=GLu3a_mBCtTLKpBnsYkgDwzRnULZ-CyIG-qlbJ_rp6U,3341
431
- yt_dlp/extractor/jtbc.py,sha256=sZ-QYae5R5oGPMjJnINFPwQKPhnNxM_JtLL3Vxh_nYk,6333
431
+ yt_dlp/extractor/jtbc.py,sha256=nRTU_gLBgVynDkjprVHRnyMfaR-QSE4AF8gdbEvqozg,6331
432
432
  yt_dlp/extractor/jwplatform.py,sha256=afgH2yCk4zMFSCMf9oUk34FefTrZTWFGhl6X6ezC2FY,4268
433
433
  yt_dlp/extractor/kakao.py,sha256=K8IqmEXqnrfedR5lSiawMpfbGFGp0ccSnsQLKmSqnSU,5914
434
434
  yt_dlp/extractor/kaltura.py,sha256=75Xq0EIqawDQ0_G4IUjPjW6rB2XGG3yPLhCO_WTTjzs,25253
@@ -729,7 +729,7 @@ yt_dlp/extractor/reuters.py,sha256=JE6MCTD7YLIBcS0xcI-xpxtTf6bl1BloA6-G9wcHjoA,2
729
729
  yt_dlp/extractor/reverbnation.py,sha256=OhIpWMAfsjA65qFgENApV4J6CafxU6Nc-YcNs25XzDA,1583
730
730
  yt_dlp/extractor/rheinmaintv.py,sha256=EOt626snVJe7DjuHn4KzRS2F_Z8DdntSEOppiCtrwVI,4653
731
731
  yt_dlp/extractor/ridehome.py,sha256=dtg74YRBL2Hm5bKLEXQr5lQLAG-U1MUmlSRKDk42qgU,4419
732
- yt_dlp/extractor/rinsefm.py,sha256=ax99cDirBdEWvcvgnuqWHSEHz-UnA2u5DpUV4Kalcn0,3199
732
+ yt_dlp/extractor/rinsefm.py,sha256=PVfA-u_CYk65fgx_B03C0zOjKNhMfLD7XcNgonMdbvs,3181
733
733
  yt_dlp/extractor/rmcdecouverte.py,sha256=IYGKdgsUj8wSL1Lf1AWTvKPrWoiiRXWqBxmqdHSW9aw,2736
734
734
  yt_dlp/extractor/rockstargames.py,sha256=_yV0LaqybuCnXCpY0s801bTgiazwHFj9GUtHSGAQ3Hs,2160
735
735
  yt_dlp/extractor/rokfin.py,sha256=CSrmNOaUo9b73Cs1y1USyMod1uMhHorAPKGAbLIVXHo,21052
@@ -1116,13 +1116,13 @@ yt_dlp/utils/progress.py,sha256=t9kVvJ0oWuEqRzo9fdFbIhHUBtO_8mg348QwZ1faqLo,3261
1116
1116
  yt_dlp/utils/traversal.py,sha256=64E3RcZ56iSX50RI_HbKdDNftkETMLBaEPX791_b7yQ,18265
1117
1117
  yt_dlp/utils/jslib/__init__.py,sha256=CbdJiRA7Eh5PnjF2V4lDTcg0J0XjBMaaq0H4pCfq9Tk,87
1118
1118
  yt_dlp/utils/jslib/devalue.py,sha256=7DCGK_zUN0ZeV5hwPT06zaRMUxX_hyUyFWqs79rxw24,5621
1119
- yt_dlp-2025.11.12.5349.dev0.data/data/share/bash-completion/completions/yt-dlp,sha256=b0pb9GLseKD27CjnLE6LlhVxhfmQjmyqV6r_CRbd6ko,5989
1120
- yt_dlp-2025.11.12.5349.dev0.data/data/share/doc/yt_dlp/README.txt,sha256=1p-zv2tZPh1gscLG3ceL7GGCzC4TQU8mS9wiqPS-oXE,164662
1121
- yt_dlp-2025.11.12.5349.dev0.data/data/share/fish/vendor_completions.d/yt-dlp.fish,sha256=hLa6lZnm7keENpNCjml9A88hbvefdsdoOpAiaNCVyHo,51488
1122
- yt_dlp-2025.11.12.5349.dev0.data/data/share/man/man1/yt-dlp.1,sha256=C33_xKvu5DD5SScnivPeV2EJEYSeJ1tPXYZnlJBDayc,159125
1123
- yt_dlp-2025.11.12.5349.dev0.data/data/share/zsh/site-functions/_yt-dlp,sha256=pNhu8tT4ZKrksLRI2mXLqarzGGhnOlm_hkCBVhSxLzg,5985
1124
- yt_dlp-2025.11.12.5349.dev0.dist-info/METADATA,sha256=1-vNGjzcsbcfWOXFkN0OkCGF7WmxM5AeCyWBbGNGpfU,180052
1125
- yt_dlp-2025.11.12.5349.dev0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1126
- yt_dlp-2025.11.12.5349.dev0.dist-info/entry_points.txt,sha256=vWfetvzYgZIwDfMW6BjCe0Cy4pmTZEXRNzxAkfYlRJA,103
1127
- yt_dlp-2025.11.12.5349.dev0.dist-info/licenses/LICENSE,sha256=fhLl30uuEsshWBuhV87SDhmGoFCN0Q0Oikq5pM-U6Fw,1211
1128
- yt_dlp-2025.11.12.5349.dev0.dist-info/RECORD,,
1119
+ yt_dlp-2025.11.14.235840.dev0.data/data/share/bash-completion/completions/yt-dlp,sha256=b0pb9GLseKD27CjnLE6LlhVxhfmQjmyqV6r_CRbd6ko,5989
1120
+ yt_dlp-2025.11.14.235840.dev0.data/data/share/doc/yt_dlp/README.txt,sha256=1p-zv2tZPh1gscLG3ceL7GGCzC4TQU8mS9wiqPS-oXE,164662
1121
+ yt_dlp-2025.11.14.235840.dev0.data/data/share/fish/vendor_completions.d/yt-dlp.fish,sha256=hLa6lZnm7keENpNCjml9A88hbvefdsdoOpAiaNCVyHo,51488
1122
+ yt_dlp-2025.11.14.235840.dev0.data/data/share/man/man1/yt-dlp.1,sha256=C33_xKvu5DD5SScnivPeV2EJEYSeJ1tPXYZnlJBDayc,159125
1123
+ yt_dlp-2025.11.14.235840.dev0.data/data/share/zsh/site-functions/_yt-dlp,sha256=pNhu8tT4ZKrksLRI2mXLqarzGGhnOlm_hkCBVhSxLzg,5985
1124
+ yt_dlp-2025.11.14.235840.dev0.dist-info/METADATA,sha256=3_KYCMCyc_VhbHvbK3Nk_MWjJ1Khz5jUDoO4MmG7me4,180054
1125
+ yt_dlp-2025.11.14.235840.dev0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
1126
+ yt_dlp-2025.11.14.235840.dev0.dist-info/entry_points.txt,sha256=vWfetvzYgZIwDfMW6BjCe0Cy4pmTZEXRNzxAkfYlRJA,103
1127
+ yt_dlp-2025.11.14.235840.dev0.dist-info/licenses/LICENSE,sha256=fhLl30uuEsshWBuhV87SDhmGoFCN0Q0Oikq5pM-U6Fw,1211
1128
+ yt_dlp-2025.11.14.235840.dev0.dist-info/RECORD,,