You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

47 lines
1.3 KiB
Python

3 days ago
import yt_dlp
import requests
from dotenv import load_dotenv
import os
load_dotenv()
def download_video(url):
ydl_opts = {
'format': 'bestvideo+bestaudio',
'outtmpl': '/downloads/%(title)s.%(ext)s',
'noplaylist': True,
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
info_dict = ydl.extract_info(url, download=True)
video_title = info_dict.get("title", "video")
video_ext = info_dict.get("ext", "mp4")
video_path = f'/downloads/{video_title}.{video_ext}'
return video_path
def upload_video_to_mixdrop(file_path):
# Get email and API key from environment variables
email = os.getenv("MIXDROP_EMAIL")
api_key = os.getenv("MIXDROP_API_KEY")
if not email or not api_key:
print("Error: Mixdrop email or API key not set.")
return
url = "https://ul.mixdrop.ag/api"
with open(file_path, 'rb') as file:
files = {'file': file}
data = {'email': email, 'api_key': api_key}
response = requests.post(url, files=files, data=data)
if response.status_code != 200:
print("Upload Failed!")
else:
print(response.json())
video_url = input('Enter the YouTube URL: ')
video_path = download_video(video_url)
upload_video_to_mixdrop(video_path)