diff --git a/README.md b/README.md index f857e3f..c758cd0 100644 --- a/README.md +++ b/README.md @@ -131,10 +131,12 @@ API에선 직접 비트레이트를 설정할 수 있습니다. 물론 해당 정보가 없으면 null입니다. ## Changelog +v1.6.2 + v1.6.1 v1.6.0 -* API에 format_code를 format로 변경 +* API에 format_code를 format으로 변경 * API에 temp_path 삭제 v1.5.1 diff --git a/info.json b/info.json index 1ffc490..73632d0 100644 --- a/info.json +++ b/info.json @@ -1 +1 @@ -{"description": "\uc720\ud29c\ube0c, \ub124\uc774\ubc84TV \ub4f1 \ub3d9\uc601\uc0c1 \uc0ac\uc774\ud2b8\uc5d0\uc11c \ub3d9\uc601\uc0c1 \ub2e4\uc6b4\ub85c\ub4dc", "name": "youtube-dl", "more": "", "version": "1.6.1", "home": "https://github.com/joyfuI/youtube-dl", "category_name": "vod", "developer": "joyfuI"} \ No newline at end of file +{"description": "\uc720\ud29c\ube0c, \ub124\uc774\ubc84TV \ub4f1 \ub3d9\uc601\uc0c1 \uc0ac\uc774\ud2b8\uc5d0\uc11c \ub3d9\uc601\uc0c1 \ub2e4\uc6b4\ub85c\ub4dc", "name": "youtube-dl", "more": "", "version": "1.6.2", "home": "https://github.com/joyfuI/youtube-dl", "category_name": "vod", "developer": "joyfuI"} \ No newline at end of file diff --git a/my_youtube_dl.py b/my_youtube_dl.py index fc816eb..660d43b 100644 --- a/my_youtube_dl.py +++ b/my_youtube_dl.py @@ -43,7 +43,11 @@ class Youtube_dl(object): _index = 0 _last_msg = '' - def __init__(self, plugin, url, filename, temp_path, save_path, opts): + def __init__(self, plugin, url, filename, temp_path, save_path=None, opts=None): + if save_path is None: + save_path = temp_path + if opts is None: + opts = {} self.plugin = plugin self.url = url self.filename = filename @@ -108,14 +112,7 @@ class Youtube_dl(object): 'ignoreerrors': True, 'cachedir': False } - if self.opts.get('format'): - ydl_opts['format'] = self.opts['format'] - if self.opts.get('postprocessors'): - ydl_opts['postprocessors'] = self.opts['postprocessors'] - if self.opts.get('proxy'): - ydl_opts['proxy'] = self.opts['proxy'] - if self.opts.get('download_archive'): - ydl_opts['download_archive'] = self.opts['download_archive'] + ydl_opts.update(self.opts) with youtube_dl.YoutubeDL(ydl_opts) as ydl: ydl.download([self.url]) if self.status == Status.FINISHED: # 다운로드 성공 diff --git a/plugin.py b/plugin.py index 0644ad3..0f4226d 100644 --- a/plugin.py +++ b/plugin.py @@ -34,7 +34,7 @@ menu = { } plugin_info = { - 'version': '1.6.1', + 'version': '1.6.2', 'name': 'youtube-dl', 'category_name': 'vod', 'developer': 'joyfuI', @@ -105,25 +105,26 @@ def ajax(sub): filename = request.form['filename'] temp_path = ModelSetting.get('temp_path') save_path = ModelSetting.get('save_path') - format = request.form['format'] if request.form['format'] else None - postprocessor = request.form['postprocessor'] if request.form['postprocessor'] else None + format_code = request.form['format'] + postprocessor = request.form['postprocessor'] + proxy = ModelSetting.get('proxy') + opts = {} + if format_code: + opts['format'] = format_code video_convertor, extract_audio = LogicNormal.get_postprocessor() if postprocessor in video_convertor: - postprocessor = [{ + opts['postprocessors'] = [{ 'key': 'FFmpegVideoConvertor', 'preferedformat': postprocessor }] elif postprocessor in extract_audio: - postprocessor = [{ + opts['postprocessors'] = [{ 'key': 'FFmpegExtractAudio', 'preferredcodec': postprocessor, 'preferredquality': '192' }] - opts = { - 'format': format, - 'postprocessors': postprocessor, - 'proxy': ModelSetting.get('proxy') - } + if proxy: + opts['proxy'] = proxy youtube_dl = Youtube_dl(package_name, url, filename, temp_path, save_path, opts) LogicNormal.youtube_dl_list.append(youtube_dl) # 리스트 추가 youtube_dl.start() @@ -181,7 +182,7 @@ def api(sub): url = request.form.get('url') filename = request.form.get('filename', ModelSetting.get('default_filename')) save_path = request.form.get('save_path', ModelSetting.get('save_path')) - format = request.form.get('format', None) + format_code = request.form.get('format', None) preferedformat = request.form.get('preferedformat', None) preferredcodec = request.form.get('preferredcodec', None) preferredquality = request.form.get('preferredquality', 192) @@ -195,6 +196,9 @@ def api(sub): return LogicNormal.abort(ret, 1) # 필수 요청 변수가 없음 if not url.startswith('http'): return LogicNormal.abort(ret, 2) # 잘못된 동영상 주소 + opts = {} + if format_code is not None: + opts['format'] = format_code postprocessor = [] if preferedformat is not None: postprocessor.append({ @@ -209,12 +213,13 @@ def api(sub): 'preferredcodec': preferredcodec, 'preferredquality': str(preferredquality) }) - opts = { - 'format': format, - 'postprocessors': postprocessor, - 'proxy': ModelSetting.get('proxy'), - 'download_archive': archive - } + if postprocessor: + opts['postprocessors'] = postprocessor + proxy = ModelSetting.get('proxy') + if proxy: + opts['proxy'] = proxy + if archive is not None: + opts['download_archive'] = archive youtube_dl = Youtube_dl(plugin, url, filename, ModelSetting.get('temp_path'), save_path, opts) youtube_dl.key = key LogicNormal.youtube_dl_list.append(youtube_dl) # 리스트 추가