def run(self): try: self.kwargs['info_only'] = True download_main(any_download, any_download_playlist, self.urls, **self.kwargs) result = ''.join(get_buffer()) can_download = True except Exception as e: mlog.exception(e) result = "Get information failed." can_download = False finally: self.finish_signal.emit(result, can_download)
def run(self): try: self.kwargs['info_only'] = True m_get_video(self.urls, **self.kwargs) result = ''.join(get_buffer()) can_download = True except Exception as e: mlog.exception(e) result = 'Get information of files failed' can_download = False finally: self.finish_signal.emit(result, can_download)
def run(self): """ Download the video :return: nothing """ is_succeed = False try: self.kwargs['info_only'] = False mlog.debug(mconfig.get_file_itag) download_main(any_download, any_download_playlist, self.urls, **self.kwargs) is_succeed = True except Exception as e: mlog.exception(e) is_succeed = False finally: self.finish_signal.emit(is_succeed)
def run(self): """ Download the video :return: nothing """ is_succeed = False try: self.kwargs['info_only'] = False mlog.debug(mconfig.get_file_itag) m_get_video(self.urls, **self.kwargs) is_succeed = True except Exception as e: mlog.exception(e) is_succeed = False finally: self.finish_signal.emit(is_succeed)
def check_for_updates(self): try: with request.urlopen('https://raw.githubusercontent.com/ingbyr/GUI-YouGet/master/version.json') as f: raw_inf = str(f.read())[2:-1] mlog.debug(str(f.read())[2:-1]) remote_inf = json.loads(raw_inf) mlog.debug('remote version is ' + remote_inf['version']) except Exception as e: mlog.exception(e) self.show_msg(QMessageBox.Critical, 'Failed', 'Check for updates failed') return if mconfig.version >= remote_inf['version']: self.show_msg(QMessageBox.Information, 'Check for updates', 'No available updates') else: self.show_msg(QMessageBox.Information, 'Check for updates', 'There is a new version') self.do_updates()
def download_urls(urls, title, ext, total_size, output_dir='.', refer=None, merge=True, faker=False, headers={}, **kwargs): assert urls if json_output: json_output_.download_urls(urls=urls, title=title, ext=ext, total_size=total_size, refer=refer) return if dry_run: write2buf('Real URLs:\n%s' % '\n'.join(urls)) return if player: launch_player(player, urls) return if not total_size: try: total_size = urls_size(urls, faker=faker, headers=headers) except Exception as e: mlog.exception(e) title = tr(get_filename(title)) output_filename = get_output_filename(urls, title, ext, output_dir, merge) output_filepath = os.path.join(output_dir, output_filename) if total_size: if not force and os.path.exists(output_filepath) and os.path.getsize(output_filepath) >= total_size * 0.9: write2buf('Skipping %s: file already exists' % output_filepath) write2buf() set_exist(True) return bar = SimpleProgressBar(total_size, len(urls)) else: bar = PiecesProgressBar(total_size, len(urls)) if len(urls) == 1: url = urls[0] write2buf('Downloading %s ...' % tr(output_filename)) bar.update() url_save(url, output_filepath, bar, refer=refer, faker=faker, headers=headers) bar.done() else: parts = [] write2buf('Downloading %s.%s ...' % (tr(title), ext)) bar.update() for i, url in enumerate(urls): filename = '%s[%02d].%s' % (title, i, ext) filepath = os.path.join(output_dir, filename) parts.append(filepath) # write2buf 'Downloading %s [%s/%s]...' % (tr(filename), i + 1, len(urls)) bar.update_piece(i + 1) url_save(url, filepath, bar, refer=refer, is_part=True, faker=faker, headers=headers) bar.done() if not merge: write2buf() return if 'av' in kwargs and kwargs['av']: from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_av ret = ffmpeg_concat_av(parts, output_filepath, ext) write2buf('Merged into %s' % output_filename) if ret == 0: for part in parts: os.remove(part) elif ext in ['flv', 'f4v']: try: from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_flv_to_mp4 ffmpeg_concat_flv_to_mp4(parts, output_filepath) else: from .processor.join_flv import concat_flv concat_flv(parts, output_filepath) write2buf('Merged into %s' % output_filename) except: raise else: for part in parts: os.remove(part) elif ext == 'mp4': try: from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_mp4_to_mp4 ffmpeg_concat_mp4_to_mp4(parts, output_filepath) else: from .processor.join_mp4 import concat_mp4 concat_mp4(parts, output_filepath) write2buf('Merged into %s' % output_filename) except: raise else: for part in parts: os.remove(part) elif ext == "ts": try: from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_ts_to_mkv ffmpeg_concat_ts_to_mkv(parts, output_filepath) else: from .processor.join_ts import concat_ts concat_ts(parts, output_filepath) write2buf('Merged into %s' % output_filename) except: raise else: for part in parts: os.remove(part) else: write2buf("Can't merge %s files" % ext) write2buf()
def download_urls(urls, title, ext, total_size, output_dir='.', refer=None, merge=True, faker=False, headers={}, **kwargs): assert urls if json_output: json_output_.download_urls(urls=urls, title=title, ext=ext, total_size=total_size, refer=refer) return if dry_run: write2buf('Real URLs:\n%s' % '\n'.join(urls)) return if player: launch_player(player, urls) return if not total_size: try: total_size = urls_size(urls, faker=faker, headers=headers) except Exception as e: mlog.exception(e) title = tr(get_filename(title)) output_filename = get_output_filename(urls, title, ext, output_dir, merge) output_filepath = os.path.join(output_dir, output_filename) if total_size: if not force and os.path.exists(output_filepath) and os.path.getsize( output_filepath) >= total_size * 0.9: write2buf('Skipping %s: file already exists' % output_filepath) write2buf() set_exist(True) return bar = SimpleProgressBar(total_size, len(urls)) else: bar = PiecesProgressBar(total_size, len(urls)) if len(urls) == 1: url = urls[0] write2buf('Downloading %s ...' % tr(output_filename)) bar.update() url_save(url, output_filepath, bar, refer=refer, faker=faker, headers=headers) bar.done() else: parts = [] write2buf('Downloading %s.%s ...' % (tr(title), ext)) bar.update() for i, url in enumerate(urls): filename = '%s[%02d].%s' % (title, i, ext) filepath = os.path.join(output_dir, filename) parts.append(filepath) # write2buf 'Downloading %s [%s/%s]...' % (tr(filename), i + 1, len(urls)) bar.update_piece(i + 1) url_save(url, filepath, bar, refer=refer, is_part=True, faker=faker, headers=headers) bar.done() if not merge: write2buf() return if 'av' in kwargs and kwargs['av']: from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_av ret = ffmpeg_concat_av(parts, output_filepath, ext) write2buf('Merged into %s' % output_filename) if ret == 0: for part in parts: os.remove(part) elif ext in ['flv', 'f4v']: try: from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_flv_to_mp4 ffmpeg_concat_flv_to_mp4(parts, output_filepath) else: from .processor.join_flv import concat_flv concat_flv(parts, output_filepath) write2buf('Merged into %s' % output_filename) except: raise else: for part in parts: os.remove(part) elif ext == 'mp4': try: from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_mp4_to_mp4 ffmpeg_concat_mp4_to_mp4(parts, output_filepath) else: from .processor.join_mp4 import concat_mp4 concat_mp4(parts, output_filepath) write2buf('Merged into %s' % output_filename) except: raise else: for part in parts: os.remove(part) elif ext == "ts": try: from .processor.ffmpeg import has_ffmpeg_installed if has_ffmpeg_installed(): from .processor.ffmpeg import ffmpeg_concat_ts_to_mkv ffmpeg_concat_ts_to_mkv(parts, output_filepath) else: from .processor.join_ts import concat_ts concat_ts(parts, output_filepath) write2buf('Merged into %s' % output_filename) except: raise else: for part in parts: os.remove(part) else: write2buf("Can't merge %s files" % ext) write2buf()