mirror of https://github.com/yt-dlp/yt-dlp.git
[ie/soundcloud] Various fixes (#11820)
- Fix original/download formats so that they are considered bestaudio - Raise appropriate error if track is DRM-protected Authored by: bashonly
This commit is contained in:
parent
09a6c68712
commit
d298693b1b
|
@ -210,6 +210,7 @@ class SoundcloudBaseIE(InfoExtractor):
|
||||||
|
|
||||||
format_urls = set()
|
format_urls = set()
|
||||||
formats = []
|
formats = []
|
||||||
|
has_drm = False
|
||||||
query = {'client_id': self._CLIENT_ID}
|
query = {'client_id': self._CLIENT_ID}
|
||||||
if secret_token:
|
if secret_token:
|
||||||
query['secret_token'] = secret_token
|
query['secret_token'] = secret_token
|
||||||
|
@ -245,6 +246,7 @@ class SoundcloudBaseIE(InfoExtractor):
|
||||||
'url': format_url,
|
'url': format_url,
|
||||||
'quality': 10,
|
'quality': 10,
|
||||||
'format_note': 'Original',
|
'format_note': 'Original',
|
||||||
|
'vcodec': 'none',
|
||||||
})
|
})
|
||||||
|
|
||||||
def invalid_url(url):
|
def invalid_url(url):
|
||||||
|
@ -260,6 +262,7 @@ class SoundcloudBaseIE(InfoExtractor):
|
||||||
|
|
||||||
protocol = traverse_obj(t, ('format', 'protocol', {str})) or 'http'
|
protocol = traverse_obj(t, ('format', 'protocol', {str})) or 'http'
|
||||||
if protocol.startswith(('ctr-', 'cbc-')):
|
if protocol.startswith(('ctr-', 'cbc-')):
|
||||||
|
has_drm = True
|
||||||
continue
|
continue
|
||||||
if protocol == 'progressive':
|
if protocol == 'progressive':
|
||||||
protocol = 'http'
|
protocol = 'http'
|
||||||
|
@ -317,8 +320,11 @@ class SoundcloudBaseIE(InfoExtractor):
|
||||||
'preference': -10 if is_preview else None,
|
'preference': -10 if is_preview else None,
|
||||||
})
|
})
|
||||||
|
|
||||||
if not formats and info.get('policy') == 'BLOCK':
|
if not formats:
|
||||||
self.raise_geo_restricted(metadata_available=True)
|
if has_drm:
|
||||||
|
self.report_drm(track_id)
|
||||||
|
if info.get('policy') == 'BLOCK':
|
||||||
|
self.raise_geo_restricted(metadata_available=True)
|
||||||
|
|
||||||
user = info.get('user') or {}
|
user = info.get('user') or {}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue