prithivMLmods commited on
Commit
946d1ea
1 Parent(s): e254aaa

Upload 3 files

Browse files
Files changed (3) hide show
  1. app.py +14 -0
  2. requirements.txt +1 -0
  3. youtube_video.py +34 -0
app.py ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from youtube_video import download_youtube_video
2
+ import gradio as gr
3
+
4
+ def app(video_link):
5
+ video_path = download_youtube_video(video_link)
6
+ return video_path
7
+
8
+ interface = gr.Interface(
9
+ fn=app,
10
+ inputs=gr.Textbox(label="Enter YouTube link"),
11
+ outputs=gr.Video(label = "video_path")
12
+ )
13
+
14
+ interface.launch(debug=True)
requirements.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ pytube
youtube_video.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pytube
2
+ import os
3
+ from pytube import YouTube
4
+
5
+
6
+ def download_youtube_video(youtube_url):
7
+ """Downloads a YouTube video, renames it to the first three characters, and returns the downloaded file path."""
8
+
9
+ try:
10
+ # Create a YouTube object
11
+ yt = pytube.YouTube(youtube_url)
12
+
13
+ # Get the highest resolution progressive stream
14
+ video = yt.streams.filter(progressive=True, file_extension='mp4').order_by('resolution').desc().first()
15
+
16
+ # Download the video
17
+ print("Downloading...")
18
+ video.download()
19
+
20
+ # Get the original filename
21
+ original_filename = video.default_filename
22
+
23
+ # Extract the first three characters and keep the file extension
24
+ new_filename = original_filename[:12] + os.path.splitext(original_filename)[1]
25
+
26
+ # Rename the downloaded file
27
+ os.rename(original_filename, new_filename)
28
+
29
+ print("Download complete! Video saved to:", new_filename)
30
+ return new_filename
31
+
32
+ except Exception as e:
33
+ print("An error occurred:", e)
34
+ return None