diff --git a/youtube_dl/extractor/picarto.py b/youtube_dl/extractor/picarto.py index d3596893b..3b58f6cab 100644 --- a/youtube_dl/extractor/picarto.py +++ b/youtube_dl/extractor/picarto.py @@ -1,9 +1,10 @@ # coding: utf-8 +import re + from __future__ import unicode_literals from .common import InfoExtractor - class PicartoVodIE(InfoExtractor): _VALID_URL = r'https?://(?:www\.)?picarto\.tv/videopopout/(?P[a-zA-Z_\-.0-9]+).flv' _TEST = { @@ -21,18 +22,20 @@ class PicartoVodIE(InfoExtractor): video_id = self._match_id(url) webpage = self._download_webpage(url, video_id) - vod_regex = "[^<]*riot.mount\(([^<]+)\)[^<]*<\/" - vod_script = self._html_search_regex(vod_regex, webpage, "vod_script") - vod_url = self._search_regex('vod: \\"([^\\"]*)\\"', vod_script, "vod_url") - vod_thumb = self._search_regex('vodThumb: \\"([^\\"]*)\\"', vod_script, "vod_thumb") - + vod_regex = r'[^<]*riot\.mount\([^<]+({[^<]+})\)[^<]*<\/script>' + script = self._html_search_regex(vod_regex, webpage, 'vod_script') + + print("penis", script) + + params = self._parse_json(script, video_id, lambda x : re.sub(r'(\w+)(:\s+)', '"$1"$2', x)); + title = video_id + url = params.vod + thumb = params.vodThumb return { 'id': video_id, 'title': title, - 'description': "", - 'uploader': "", - 'url' : vod_url, - 'thumbnail' : vod_thumb + 'url' : url, + 'thumbnail' : thumb }