X-Git-Url: http://git.cielonegro.org/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=youtube_dl%2Fextractor%2Fcrunchyroll.py;h=90a64303d3282c925d1620787922622e99a8b612;hb=59eaf69e3300ad7f780d0f976052fcc3416284c1;hp=dd753c7c3c9e0e0f96c970df3cb2e45c1d02215e;hpb=e757fb3d053a195da4084c08a59a7b17b08ba598;p=youtube-dl.git
diff --git a/youtube_dl/extractor/crunchyroll.py b/youtube_dl/extractor/crunchyroll.py
index dd753c7c3..90a64303d 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,21 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
r']+href="/publisher/[^"]+"[^>]*>([^<]+)', webpage,
'video_uploader', fatal=False)
- formats = []
+ available_fmts = []
+ for a, fmt in re.findall(r'(]+token=["\']showmedia\.([0-9]{3,4})p["\'][^>]+>)', webpage):
+ attrs = extract_attributes(a)
+ href = attrs.get('href')
+ if href and '/freetrial' in href:
+ continue
+ available_fmts.append(fmt)
+ if not available_fmts:
+ for p in (r'token=["\']showmedia\.([0-9]{3,4})p"', r'showmedia\.([0-9]{3,4})p'):
+ available_fmts = re.findall(p, webpage)
+ if available_fmts:
+ break
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(
@@ -354,6 +367,7 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
'ext': 'flv',
})
formats.append(format_info)
+ self._sort_formats(formats)
metadata = self._download_xml(
'http://www.crunchyroll.com/xml', video_id,