def handler(cls, url): try: html = abstract_grab(url) vid_regex = 'var vid = "(.*?)";' vid = re.search(vid_regex, html, flags=re.S).group(1) app_key_regex = 'var modeServerAppKey = "(.*?)";' app_key = re.search(app_key_regex, html, flags=re.S).group(1) data = abstract_grab(cls.RESOURCE_API % (vid, app_key)) data = json.loads(data)['data'] result = HandlerOutput(video_info=HandlerOutput.VideoInfo( title=data['title'], cover=data['cover'], ), ) for item in data['resource']['progressive']: result.options.append( HandlerOutput.Option( quality=item['profile'], urls=[HandlerOutput.Url(item['url'])], )) except Exception as err: raise Error.ERROR_HANDLER(debug_message=cls.NAME + ',' + str(err)) return HandlerAdapter([result])
def handler(cls, url): try: html = abstract_grab(url) media_id_regex = '"media_id": (.*?),' media_id = re.search(media_id_regex, html, flags=re.S).group(1) title_regex = '"title": "(.*?)",' title = re.search(title_regex, html, flags=re.S).group(1) cover_regex = '"cover": "(.*?)",' cover = re.search(cover_regex, html, flags=re.S).group(1) data = abstract_grab(cls.RESOURCE_API % media_id) data = json.loads(data)['msg']['segs'] result = HandlerOutput(video_info=HandlerOutput.VideoInfo( title=title, cover=cover, ), ) for quality in data: o = HandlerOutput.Option(urls=[], quality=quality) result.options.append(o) for seg in data[quality]: o.urls.append( HandlerOutput.Url( url=seg['url'], index=seg['number'], )) except Exception as err: raise Error.ERROR_HANDLER(debug_message=cls.NAME + ',' + str(err)) return HandlerAdapter([result])
def handler(cls, url): try: html = abstract_grab(url) vid_regex = ';vid=(.*?)">' vids = re.findall(vid_regex, html, flags=re.S) title_regex = 'msg_title = "(.*?)";' title = "《" + re.search(title_regex, html, flags=re.S).group(1) + "》" cover_regex = 'msg_cdn_url = "(.*?)";' cover = re.search(cover_regex, html, flags=re.S).group(1) results = [] for index, vid in enumerate(vids): result = HandlerOutput( video_info=HandlerOutput.VideoInfo( title=title + ' 文章内视频%s' % index, cover=cover, ), options=VideoQQ.get_video_link(vid), ) results.append(result) except Exception as err: raise Error.ERROR_HANDLER(debug_message=cls.NAME + ',' + str(err)) return HandlerAdapter(results)
def handler(cls, url): try: url = url.replace('#/', '') o = parse.urlparse(url) qs = parse.parse_qs(o.query) vid = qs['id'][0] data = '{"id":"%s","csrf_token":""}' % vid encrypted_data = cls.netease_encrypt(data) data = abstract_post(cls.DETAIL_API, encrypted_data, headers=cls.HEADERS) data = json.loads(data)['data'] result = HandlerOutput( video_info=HandlerOutput.VideoInfo( title=data['title'], cover=data['coverUrl'], ), options=[], ) for item in data['resolutions']: data = '{"ids":"[\\"%s\\"]","resolution":"%s","csrf_token":""}' % \ (vid, item['resolution']) encrypted_data = cls.netease_encrypt(data) data = abstract_post(cls.MV_API, encrypted_data, headers=cls.HEADERS) data = json.loads(data) if len(data['urls']) > 1: print(data) result.options.append( HandlerOutput.Option( urls=[HandlerOutput.Url(url=data['urls'][0]['url'])], quality=data['urls'][0]['r'], )) except Exception as err: raise Error.ERROR_HANDLER(debug_message=cls.NAME + ',' + str(err)) return HandlerAdapter([result])
def handler(cls, url): try: html = abstract_grab(url) video_regex = '<video src="(.*?)".*?poster="(.*?)"' videos = re.findall(video_regex, html, flags=re.S) title_regex = 'name="keywords" content="(.*?)"' title = "《" + re.search(title_regex, html, flags=re.S).group(1) + "》" except Exception as err: raise Error.ERROR_HANDLER(debug_message=cls.NAME + ',' + str(err)) results = [] for index, video in enumerate(videos): result = HandlerOutput(one_url=video[0], video_info=HandlerOutput.VideoInfo( cover=video[1], title=title + ' 文章内视频%s' % index, )) results.append(result) return HandlerAdapter(results)
def handler(cls, url): try: html = abstract_grab(url) title_regex = '<p class="desc">(.*?)</p>' title = re.search(title_regex, html, flags=re.S).group(1) video_url_regex = 'playAddr: "(.*?)",' video_url = re.search(video_url_regex, html, flags=re.S).group(1) cover_regex = 'cover: "(.*?)"' cover = re.search(cover_regex, html, flags=re.S).group(1) except Exception as err: raise Error.ERROR_HANDLER(debug_message=cls.NAME + ',' + str(err)) result = HandlerOutput( video_info=HandlerOutput.VideoInfo( title=title, cover=cover, ), one_url=video_url, ) return HandlerAdapter([result])
def handler(cls, url): try: html = abstract_grab(url) video_url_regex = 'srcUrl="(.*?)",' video_url = re.search(video_url_regex, html, flags=re.S).group(1) soup = BeautifulSoup(html, 'html.parser') title = soup.find('h1').get_text() cover = soup.find(id='poster').find('img').get('src') except Exception as err: raise Error.ERROR_HANDLER(cls.NAME + ',' + str(err)) result = HandlerOutput( video_info=HandlerOutput.VideoInfo( title=title, cover=cover, ), one_url=video_url, ) return HandlerAdapter([result])
def handler(cls, url): try: o = parse.urlparse(url) qs = parse.parse_qs(o.query) vid = qs['vid'][0] data = abstract_grab(cls.INFO_API_URL % vid) data = json.loads(data) result = HandlerOutput( video_info=HandlerOutput.VideoInfo( title=data['title'], cover=data['coverForDetail'] ) ) for item in data['playInfo']: result.options.append(HandlerOutput.Option( quality=item['name'] + '(' + item['type'] + ')', urls=[HandlerOutput.Url(url=item['url'])] )) except Exception as err: raise Error.ERROR_HANDLER(debug_message=cls.NAME + ',' + str(err)) return HandlerAdapter([result])
def handler(cls, url): try: html = abstract_grab(url) vid_link_regex = '<link rel="canonical" href="(.*?).html"' vid_link = re.search(vid_link_regex, html, flags=re.S).group(1) video_info_regex = 'var VIDEO_INFO = (.*?)\n</script>' video_info = re.search(video_info_regex, html, flags=re.S).group(1) data = json.loads(video_info) vid = vid_link[vid_link.rfind('/') + 1:] result = HandlerOutput( video_info=HandlerOutput.VideoInfo( title=data['title'], cover=data['pic_640_360'], ), options=VideoQQ.get_video_link(vid), ) except Exception as err: raise Error.ERROR_HANDLER(debug_message=cls.NAME + ',' + str(err)) return HandlerAdapter([result])
def handler(cls, url): try: o = parse.urlparse(url) qs = parse.parse_qs(o.query) game_id = qs['gameId'][0] i_info_id = qs['iInfoId'][0] data = abstract_post(cls.GET_VID_API, data=dict(iInfoId=i_info_id, gameId=game_id, cSystem=1)) data = json.loads(data)['data'] vid = data['sVid'] result = HandlerOutput( video_info=HandlerOutput.VideoInfo( title=data['sTitle'], cover=data['sImageAbbrAddrMiddle'], ), options=VideoQQ.get_video_link(vid), ) except Exception as err: raise Error.ERROR_HANDLER(debug_message=cls.NAME + ',' + str(err)) return HandlerAdapter([result])