forked from computertech/techdj
Delete downloader.py
This commit is contained in:
@@ -1,56 +0,0 @@
|
||||
import yt_dlp
|
||||
import os
|
||||
import re
|
||||
|
||||
def clean_filename(title):
|
||||
# Remove quotes and illegal characters
|
||||
title = title.strip("'").strip('"')
|
||||
return re.sub(r'[\\/*?:"<>|]', "", title)
|
||||
|
||||
def download_mp3(url, quality='320'):
|
||||
print(f"\n🔍 Processing: {url}")
|
||||
|
||||
# 1. Fetch Title First (Clean Name)
|
||||
try:
|
||||
with yt_dlp.YoutubeDL({'quiet':True}) as ydl:
|
||||
info = ydl.extract_info(url, download=False)
|
||||
if 'entries' in info:
|
||||
title = '%(title)s' # Playlist default
|
||||
else:
|
||||
title = clean_filename(info['title'])
|
||||
print(f"📝 Renaming to: {title}")
|
||||
except Exception as e:
|
||||
print(f"❌ Error fetching info: {e}")
|
||||
return {"success": False, "error": "Invalid URL or video unavailable"}
|
||||
|
||||
# 2. Download Options (adjustable quality)
|
||||
ydl_opts = {
|
||||
'format': 'bestaudio/best',
|
||||
'postprocessors': [{
|
||||
'key': 'FFmpegExtractAudio',
|
||||
'preferredcodec': 'mp3',
|
||||
'preferredquality': quality,
|
||||
}],
|
||||
'outtmpl': f'music/{title}.%(ext)s',
|
||||
'quiet': False,
|
||||
'no_warnings': True,
|
||||
}
|
||||
|
||||
try:
|
||||
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
|
||||
ydl.download([url])
|
||||
print("✅ Success! (Hit Refresh in the App)")
|
||||
return {"success": True, "title": title}
|
||||
except Exception as e:
|
||||
print(f"❌ Error: {e}")
|
||||
return {"success": False, "error": str(e)}
|
||||
|
||||
if __name__ == "__main__":
|
||||
if not os.path.exists("music"):
|
||||
os.makedirs("music")
|
||||
|
||||
print("--- TECHDJ DOWNLOADER (320kbps) ---")
|
||||
while True:
|
||||
url = input("\n🔗 URL (q to quit): ").strip()
|
||||
if url.lower() == 'q': break
|
||||
if url: download_mp3(url)
|
||||
Reference in New Issue
Block a user