arnabbumba077's picture
Update app.py
a6b0cbe verified
raw
history blame
1.77 kB
import os
import streamlit as st
from pySmartDL import SmartDL
import platform
def get_default_download_folder():
system_platform = platform.system()
if system_platform == "Windows":
return os.path.join(os.path.expanduser("~"), "Downloads")
elif system_platform == "Linux":
return os.path.join(os.path.expanduser("~"), "Downloads")
elif system_platform == "Darwin":
return os.path.join(os.path.expanduser("~"), "Downloads")
elif system_platform == "Android":
return "/storage/emulated/0/Download" # Default Downloads folder path on Android
else:
raise NotImplementedError("Platform not supported")
def download_video(url):
try:
# Create a SmartDL object with the video URL
dl = SmartDL(url, progress_bar=False)
# Start the download
dl.start()
# Get the destination path where the file was downloaded
dest_path = dl.get_dest()
# Move the downloaded file to the default download folder
default_download_folder = get_default_download_folder()
os.rename(dest_path, os.path.join(default_download_folder, os.path.basename(dest_path)))
st.success("Video downloaded successfully!")
except Exception as e:
st.error(f"An error occurred: {e}")
def main():
st.title("YouTube Video Downloader")
# Input field for entering YouTube URL
video_url = st.text_input("Enter YouTube URL:")
# Button to trigger the download
if st.button("Download"):
if video_url.strip() == "":
st.warning("Please enter a valid YouTube URL.")
else:
# Download the video to the default download folder
download_video(video_url)
if __name__ == "__main__":
main()