인프런 오류 커밋
This commit is contained in:
193
api_youtube_dl.py
Normal file
193
api_youtube_dl.py
Normal file
@@ -0,0 +1,193 @@
|
||||
# 최종 업데이트 20210501
|
||||
import json
|
||||
from datetime import datetime
|
||||
|
||||
import requests
|
||||
|
||||
from system.model import ModelSetting as SystemModelSetting
|
||||
|
||||
HOST_URL = "http://localhost:%s" % SystemModelSetting.get("port")
|
||||
|
||||
|
||||
class APIYoutubeDL(object):
|
||||
ERROR_CODE = {
|
||||
0: "성공",
|
||||
1: "필수 요청 변수가 없음",
|
||||
2: "잘못된 동영상 주소",
|
||||
3: "인덱스 범위를 벗어남",
|
||||
4: "키 값이 일치하지 않음",
|
||||
5: "허용되지 않은 값이 있음",
|
||||
10: "실패",
|
||||
}
|
||||
|
||||
STATUS = {
|
||||
"READY": "준비",
|
||||
"START": "분석중",
|
||||
"DOWNLOADING": "다운로드중",
|
||||
"ERROR": "실패",
|
||||
"FINISHED": "변환중",
|
||||
"STOP": "중지",
|
||||
"COMPLETED": "완료",
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def info_dict(plugin, url):
|
||||
data = {"plugin": plugin, "url": url}
|
||||
if SystemModelSetting.get_bool("auth_use_apikey"): # APIKEY
|
||||
data["apikey"] = SystemModelSetting.get("auth_apikey")
|
||||
|
||||
tmp = requests.post("%s/youtube-dl/api/info_dict" % HOST_URL, data=data)
|
||||
# print(tmp)
|
||||
# json.loads(tmp.text)
|
||||
return requests.post("%s/youtube-dl/api/info_dict" % HOST_URL, data=data).json()
|
||||
# return json.loads(
|
||||
# requests.post("%s/youtube-dl/api/info_dict" % HOST_URL, data=data).text
|
||||
# )
|
||||
|
||||
@staticmethod
|
||||
def download(
|
||||
plugin,
|
||||
key,
|
||||
url,
|
||||
filename=None,
|
||||
save_path=None,
|
||||
format_code=None,
|
||||
preferedformat=None,
|
||||
preferredcodec=None,
|
||||
preferredquality=None,
|
||||
dateafter=None,
|
||||
playlist=None,
|
||||
archive=None,
|
||||
start=None,
|
||||
cookiefile=None,
|
||||
):
|
||||
data = {"plugin": plugin, "key": key, "url": url}
|
||||
if filename:
|
||||
data["filename"] = filename
|
||||
if save_path:
|
||||
data["save_path"] = save_path
|
||||
if format_code:
|
||||
data["format"] = format_code
|
||||
if preferedformat:
|
||||
data["preferedformat"] = preferedformat
|
||||
if preferredcodec:
|
||||
data["preferredcodec"] = preferredcodec
|
||||
if preferredquality:
|
||||
data["preferredquality"] = preferredquality
|
||||
if dateafter:
|
||||
data["dateafter"] = dateafter
|
||||
if playlist:
|
||||
data["playlist"] = playlist
|
||||
if archive:
|
||||
data["archive"] = archive
|
||||
if start:
|
||||
data["start"] = start
|
||||
if cookiefile:
|
||||
data["cookiefile"] = cookiefile
|
||||
if SystemModelSetting.get_bool("auth_use_apikey"): # APIKEY
|
||||
data["apikey"] = SystemModelSetting.get("auth_apikey")
|
||||
return requests.post("%s/youtube-dl/api/download" % HOST_URL, data=data).json()
|
||||
|
||||
@staticmethod
|
||||
def thumbnail(
|
||||
plugin,
|
||||
key,
|
||||
url,
|
||||
filename=None,
|
||||
save_path=None,
|
||||
all_thumbnails=None,
|
||||
dateafter=None,
|
||||
playlist=None,
|
||||
archive=None,
|
||||
start=None,
|
||||
cookiefile=None,
|
||||
):
|
||||
data = {"plugin": plugin, "key": key, "url": url}
|
||||
if filename:
|
||||
data["filename"] = filename
|
||||
if save_path:
|
||||
data["save_path"] = save_path
|
||||
if all_thumbnails:
|
||||
data["all_thumbnails"] = all_thumbnails
|
||||
if dateafter:
|
||||
data["dateafter"] = dateafter
|
||||
if playlist:
|
||||
data["playlist"] = playlist
|
||||
if archive:
|
||||
data["archive"] = archive
|
||||
if start:
|
||||
data["start"] = start
|
||||
if cookiefile:
|
||||
data["cookiefile"] = cookiefile
|
||||
if SystemModelSetting.get_bool("auth_use_apikey"): # APIKEY
|
||||
data["apikey"] = SystemModelSetting.get("auth_apikey")
|
||||
return requests.post("%s/youtube-dl/api/thumbnail" % HOST_URL, data=data).json()
|
||||
|
||||
@staticmethod
|
||||
def sub(
|
||||
plugin,
|
||||
key,
|
||||
url,
|
||||
filename=None,
|
||||
save_path=None,
|
||||
all_subs=None,
|
||||
sub_lang=None,
|
||||
auto_sub=None,
|
||||
dateafter=None,
|
||||
playlist=None,
|
||||
archive=None,
|
||||
start=None,
|
||||
cookiefile=None,
|
||||
):
|
||||
data = {"plugin": plugin, "key": key, "url": url}
|
||||
if filename:
|
||||
data["filename"] = filename
|
||||
if save_path:
|
||||
data["save_path"] = save_path
|
||||
if all_subs:
|
||||
data["all_subs"] = all_subs
|
||||
if sub_lang:
|
||||
data["sub_lang"] = sub_lang
|
||||
if auto_sub:
|
||||
data["auto_sub"] = auto_sub
|
||||
if dateafter:
|
||||
data["dateafter"] = dateafter
|
||||
if playlist:
|
||||
data["playlist"] = playlist
|
||||
if archive:
|
||||
data["archive"] = archive
|
||||
if start:
|
||||
data["start"] = start
|
||||
if cookiefile:
|
||||
data["cookiefile"] = cookiefile
|
||||
if SystemModelSetting.get_bool("auth_use_apikey"): # APIKEY
|
||||
data["apikey"] = SystemModelSetting.get("auth_apikey")
|
||||
return requests.post("%s/youtube-dl/api/sub" % HOST_URL, data=data).json()
|
||||
|
||||
@staticmethod
|
||||
def start(plugin, index, key):
|
||||
data = {"plugin": plugin, "index": index, "key": key}
|
||||
if SystemModelSetting.get_bool("auth_use_apikey"): # APIKEY
|
||||
data["apikey"] = SystemModelSetting.get("auth_apikey")
|
||||
return requests.post("%s/youtube-dl/api/start" % HOST_URL, data=data).json()
|
||||
|
||||
@staticmethod
|
||||
def stop(plugin, index, key):
|
||||
data = {"plugin": plugin, "index": index, "key": key}
|
||||
if SystemModelSetting.get_bool("auth_use_apikey"): # APIKEY
|
||||
data["apikey"] = SystemModelSetting.get("auth_apikey")
|
||||
return requests.post("%s/youtube-dl/api/stop" % HOST_URL, data=data).json()
|
||||
|
||||
@staticmethod
|
||||
def status(plugin, index, key):
|
||||
data = {"plugin": plugin, "index": index, "key": key}
|
||||
if SystemModelSetting.get_bool("auth_use_apikey"): # APIKEY
|
||||
data["apikey"] = SystemModelSetting.get("auth_apikey")
|
||||
res = requests.post("%s/youtube-dl/api/status" % HOST_URL, data=data).json()
|
||||
if res["start_time"]:
|
||||
res["start_time"] = datetime.strptime(
|
||||
res["start_time"], "%Y-%m-%dT%H:%M:%S"
|
||||
)
|
||||
if res["end_time"]:
|
||||
res["end_time"] = datetime.strptime(res["end_time"], "%Y-%m-%dT%H:%M:%S")
|
||||
return res
|
||||
Reference in New Issue
Block a user