File size: 1,437 Bytes
e96ebdd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
import os
import glob
import json
from yt_dlp import YoutubeDL
def load_model():
pass
def run(url, mode = None):
if not url.startswith('https://'):
url = f'https://www.youtube.com/watch?v={url}'
video_id = url[-11:]
# cleanup
for file in glob.glob(f'{video_id}.*'):
os.remove(file)
if mode == 'info':
with YoutubeDL() as ydl:
info = ydl.extract_info(url, download=False)
return json.dumps(info)
elif mode == 'chat':
args = {
'outtmpl': '%(id)s'+'.%(ext)s',
'writesubtitles': True,
'skip_download': True,
}
with YoutubeDL(args) as ydl:
result = ydl.download([url])
print(result)
for file in glob.glob(f'{video_id}.*'):
return file
elif mode == 'audio':
args = {
'outtmpl': '%(id)s'+'.%(ext)s',
'format': 'bestaudio',
}
with YoutubeDL(args) as ydl:
result = ydl.download([url])
print(result)
for file in glob.glob(f'{video_id}.*'):
return file
else:
args = {
'outtmpl': '%(id)s'+'.%(ext)s',
'format': 'best',
}
with YoutubeDL(args) as ydl:
result = ydl.download([url])
print(result)
for file in glob.glob(f'{video_id}.*'):
return file
|