Ignore:
Timestamp:
03/24/17 23:55:51 (5 years ago)
Author:
tt4sk
Message:

[TiThek] fixed: beeg website changed; new pornhub.py for youtube-dl

Location:
titan/mediathek/localhoster/lib/youtube_dl/extractor
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • titan/mediathek/localhoster/lib/youtube_dl/extractor/pornhub.py

    r40094 r40264  
    22from __future__ import unicode_literals
    33
     4import functools
    45import itertools
     6import operator
    57# import os
    68import re
     
    1921    orderedSet,
    2022    # sanitized_Request,
     23    remove_quotes,
    2124    str_to_int,
    2225)
     
    130133        tv_webpage = dl_webpage('tv')
    131134
    132         video_url = self._search_regex(
    133             r'<video[^>]+\bsrc=(["\'])(?P<url>(?:https?:)?//.+?)\1', tv_webpage,
    134             'video url', group='url')
     135        assignments = self._search_regex(
     136            r'(var.+?mediastring.+?)</script>', tv_webpage,
     137            'encoded url').split(';')
     138
     139        js_vars = {}
     140
     141        def parse_js_value(inp):
     142            inp = re.sub(r'/\*(?:(?!\*/).)*?\*/', '', inp)
     143            if '+' in inp:
     144                inps = inp.split('+')
     145                return functools.reduce(
     146                    operator.concat, map(parse_js_value, inps))
     147            inp = inp.strip()
     148            if inp in js_vars:
     149                return js_vars[inp]
     150            return remove_quotes(inp)
     151
     152        for assn in assignments:
     153            assn = assn.strip()
     154            if not assn:
     155                continue
     156            assn = re.sub(r'var\s+', '', assn)
     157            vname, value = assn.split('=', 1)
     158            js_vars[vname] = parse_js_value(value)
     159
     160        video_url = js_vars['mediastring']
    135161
    136162        title = self._search_regex(
Note: See TracChangeset for help on using the changeset viewer.