daily_mo_down / main.py
navpan2's picture
Update main.py
f53459d
from fastapi import FastAPI
import yt_dlp
app = FastAPI()
def get_video_formats(video_url):
formats_list = []
with yt_dlp.YoutubeDL() as ydl:
info_dict = ydl.extract_info(video_url, download=False)
for format in info_dict.get('formats', []):
format_info = {
'format_id': format['format_id'],
'ext': format['ext'],
'resolution': format.get('resolution', ''),
}
formats_list.append(format_info)
return formats_list
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/dailymo/")
async def read_item(reqUrl: str = 'https://www.dailymotion.com/video/x8pywti', vidFormat: str='http-720-0'):
video_url = reqUrl
desired_format = vidFormat
ydl_opts = {
'quiet': True,
'format': desired_format,
}
ydl = yt_dlp.YoutubeDL(ydl_opts)
info_dict = ydl.extract_info(video_url, download=False)
format_url = info_dict.get('url')
if format_url:
return {"url":format_url,"reqUrl":reqUrl,"vidFormat":vidFormat}
else:
return {"url":"Not found","reqUrl":reqUrl,"vidFormat":vidFormat}
@app.get("/getf/")
async def read_item(videourl: str = 'https://www.dailymotion.com/video/x8pywti'):
available_formats = get_video_formats(videourl)
return {"video_url": videourl, "formats": available_formats}