33 lines
946 B
Python
33 lines
946 B
Python
from pytube import YouTube
|
|
import random
|
|
import string
|
|
import os
|
|
|
|
def convert_video(link, media_format):
|
|
def randmname(size=6, chars=string.ascii_lowercase + string.digits):
|
|
return ''.join(random.choice(chars) for _ in range(size))
|
|
rand_filename = f"{randmname(25)}.{media_format.lower()}"
|
|
|
|
stream_filter = ""
|
|
if media_format == "mp4":
|
|
stream_filter = "progressive=True, file_extension=mp4"
|
|
elif media_format == "mp3":
|
|
stream_filter = "only_audio=True"
|
|
|
|
|
|
yt = YouTube(link)
|
|
yt.streams.filter(stream_filter).order_by('resolution').desc().first().download(filename=rand_filename, output_path="files/ytdl")
|
|
|
|
cdn_url = {
|
|
"url": f"https://cdn.oki.cx/files/ytdl/{rand_filename}",
|
|
"title": yt.title,
|
|
"thumbnail": f"{yt.thumbnail_url}",
|
|
"filename": rand_filename
|
|
}
|
|
|
|
return cdn_url
|
|
|
|
def delete_file(filename):
|
|
os.remove(f"files/ytdl/{filename}")
|
|
|