aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorremitamine <remitamine@gmail.com>2016-04-29 11:46:42 +0100
committerremitamine <remitamine@gmail.com>2016-04-29 11:46:42 +0100
commit065216d94f59953a228d2683d3bafe4241fd1e29 (patch)
tree559fd8073bbfba0021c1af9f4a6d805144846963
parent67167920db50e818c9fca20579c8a05eb2218f86 (diff)
[crunchyroll] reduce requests for formats extraction
-rw-r--r--youtube_dl/extractor/crunchyroll.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/youtube_dl/extractor/crunchyroll.py b/youtube_dl/extractor/crunchyroll.py
index dd753c7c3..184ba6896 100644
--- a/youtube_dl/extractor/crunchyroll.py
+++ b/youtube_dl/extractor/crunchyroll.py
@@ -26,6 +26,7 @@ from ..utils import (
unified_strdate,
urlencode_postdata,
xpath_text,
+ extract_attributes,
)
from ..aes import (
aes_cbc_decrypt,
@@ -305,9 +306,18 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
r'<a[^>]+href="/publisher/[^"]+"[^>]*>([^<]+)</a>', webpage,
'video_uploader', fatal=False)
- formats = []
+ available_fmts = []
+ for a, fmt in re.findall(r'(<a[^>]+token="showmedia\.([0-9]{3,4})p"[^>]+>.*?</a>)', webpage):
+ attrs = extract_attributes(a)
+ href = attrs.get('href')
+ if href and '/freetrial' in href:
+ continue
+ available_fmts.append(fmt)
+ if not available_fmts:
+ available_fmts = re.findall(r'token="showmedia\.([0-9]{3,4})p"', webpage)
video_encode_ids = []
- for fmt in re.findall(r'token="showmedia\.([0-9]{3,4})p"', webpage):
+ formats = []
+ for fmt in available_fmts:
stream_quality, stream_format = self._FORMAT_IDS[fmt]
video_format = fmt + 'p'
streamdata_req = sanitized_Request(