コード例 #1
0
    def read(self):
        qs = query_url(self.url)
        for key in qs:
            if key.lower() in ('file', 'filename'):
                name = qs[key][(-1)]
                break
        else:
            name = os.path.basename(self.url)
            for esc in ['?', '#']:
                name = name.split(esc)[0]

        ext = get_ext(name)
        if not ext:
            try:
                ext = downloader.get_ext(self.url)
            except:
                ext = ''
        name = os.path.splitext(name)[0]

        self.urls.append(self.url)
        
        id_ = md5(self.url.encode('utf8')).hexdigest()[:8]
        tail = ' ({}){}'.format(id_, ext)
        filename = clean_title(name, n=-len(tail)) + tail
        
        self.filenames[self.url] = filename
        
        self.title = filename
コード例 #2
0
 def get(self, referer):
     ext = downloader.get_ext(self._url, referer=referer)
     if ext == '.m3u8':
         video = M3u8_stream(self._url, n_thread=4)
     else:
         video = self._url
     return video
コード例 #3
0
def get_ext_(url, session, referer):
    try:
        ext = downloader.get_ext(url, session, referer)
    except Exception as e:
        print(e)
        ext = get_ext(url)
    return ext
コード例 #4
0
 def get(self, _):
     print_ = get_print(self.cw)
     url = self._url
     ext = get_ext(url)
     if ext.lower() == '.gif':
         print_('get_ext: {}, {}'.format(self.id_, url))
         try:
             ext = downloader.get_ext(url)
         except Exception as e: #3235
             print_('Err: {}, {}\n'.format(self.id_, url)+print_error(e)[0])
     self.filename = '{}_p{}{}'.format(self.id_, self.p, ext)
     return url
コード例 #5
0
 def get(self, _):
     print_ = get_print(self.cw)
     url = self._url
     ext = get_ext(url)
     if ext.lower()[1:] not in ['jpg', 'png', 'mp4']:  #4645
         print_('get_ext: {}, {}'.format(self.id_, url))
         try:
             ext = downloader.get_ext(url, referer=_)
         except Exception as e:  #3235
             print_('Err: {}, {}\n'.format(self.id_, url) +
                    print_error(e)[0])
     self.filename = '{}_p{}{}'.format(self.id_, self.p, ext)
     return url
コード例 #6
0
    def __init__(self, f, f_audio, info, session, referer, cw=None):
        self.f_audio = f_audio
        self.cw = cw
        self.title = title = info['title']
        self.id = info['id']
        self.url = f['url']
        self.artist = info.get('uploader')
        self.header = utils.capitalize(get_ie_key(info))
        self.session = session
        self.referer = referer

        self.url_thumb = info.get('thumbnail')
        self.thumb = BytesIO()
        if self.url_thumb:
            downloader.download(self.url_thumb,
                                referer=referer,
                                buffer=self.thumb,
                                session=session)

        try:
            ext = downloader.get_ext(self.url, session, referer)
        except Exception as e:
            print(e)
            ext = get_ext(self.url)

        if not ext:
            print('empty ext')
            if f['_resolution']:
                ext = '.mp4'
            else:
                ext = '.mp3'

        if ext.lower() == '.m3u8':
            try:
                url = playlist2stream(self.url,
                                      referer,
                                      session=session,
                                      n_thread=4)
            except:
                url = M3u8_stream(self.url,
                                  referer=referer,
                                  session=session,
                                  n_thread=4)
            ext = '.mp4'
        else:
            url = self.url
        self.url = LazyUrl(referer, lambda x: url, self, pp=self.pp)
        self.filename = format_filename(title,
                                        self.id,
                                        ext,
                                        header=self.header)
コード例 #7
0
    def read(self):
        qs = query_url(self.url)
        for key in qs:
            if key.lower() in ('file', 'filename'):
                name = qs[key][(-1)]
                break
        else:
            name = os.path.basename(self.url)
            for esc in ['?', '#']:
                name = name.split(esc)[0]

        if not get_ext(name):
            name += downloader.get_ext(self.url)

        self.urls.append(self.url)
        self.filenames[self.url] = clean_title(name)

        self.title = name
コード例 #8
0
    def __init__(self, url, page, p):
        ext = get_ext(url) or downloader.get_ext(url, referer=page.url)
        self.filename = '{}/{:04}{}'.format(clean_title(page.title), p, ext)

        self.url = LazyUrl(page.url, lambda _: url, self)
コード例 #9
0
def get_ext(url, referer=None):
    ext = os.path.splitext(url.split('?')[0].replace('~noop.image', ''))[1]
    if ext in ['.image', '']:
        ext = downloader.get_ext(url, referer=referer)
    return ext