[mixcloud] Detect restrictions (#2169)

Authored by; llacb47
This commit is contained in:
LE 2021-12-31 15:11:35 -05:00 committed by GitHub
parent 6134fbeb65
commit 9040e2d6e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -12,6 +12,7 @@
compat_zip compat_zip
) )
from ..utils import ( from ..utils import (
ExtractorError,
int_or_none, int_or_none,
parse_iso8601, parse_iso8601,
strip_or_none, strip_or_none,
@ -125,7 +126,20 @@ def _real_extract(self, url):
tag { tag {
name name
} }
}''', track_id, username, slug) }
restrictedReason
id''', track_id, username, slug)
if not cloudcast:
raise ExtractorError('Track not found', expected=True)
reason = cloudcast.get('restrictedReason')
if reason == 'tracklist':
raise ExtractorError('Track unavailable in your country due to licensing restrictions', expected=True)
elif reason == 'repeat_play':
raise ExtractorError('You have reached your play limit for this track', expected=True)
elif reason:
raise ExtractorError('Track is restricted', expected=True)
title = cloudcast['name'] title = cloudcast['name']