Spaces:
Paused
Paused
Update app.py
Browse files
app.py
CHANGED
@@ -7,7 +7,7 @@ from moviepy.editor import VideoFileClip
|
|
7 |
import gradio as gr
|
8 |
import requests
|
9 |
from urllib.parse import urlparse
|
10 |
-
|
11 |
|
12 |
logging.basicConfig(level=logging.INFO)
|
13 |
|
@@ -31,6 +31,13 @@ def get_input_path(video_file, video_url, temp_dir):
|
|
31 |
else:
|
32 |
raise ValueError("No input was provided.")
|
33 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
def get_output_path(input_path, temp_dir, res):
|
35 |
"""Returns the path to the output file, creating it if necessary."""
|
36 |
output_path = temp_dir / (Path(input_path).stem + f"_{res}.m3u8")
|
@@ -103,6 +110,16 @@ def convert_video(video_file, quality, aspect_ratio, video_url):
|
|
103 |
|
104 |
output_paths.append(output_path) # Append the output_path to output_paths
|
105 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
if not output_paths:
|
107 |
return "The video is smaller than the smallest standard resolution."
|
108 |
|
@@ -140,9 +157,15 @@ def main():
|
|
140 |
label="Aspect Ratio", default="16:9")
|
141 |
video_url = gr.inputs.Textbox(label="Video URL")
|
142 |
|
|
|
|
|
|
|
|
|
|
|
|
|
143 |
gr.Interface(
|
144 |
convert_video,
|
145 |
-
inputs=[video_file, quality, aspect_ratio, video_url],
|
146 |
outputs=gr.outputs.Textbox(),
|
147 |
output_processor=process_output,
|
148 |
allow_flagging=False,
|
|
|
7 |
import gradio as gr
|
8 |
import requests
|
9 |
from urllib.parse import urlparse
|
10 |
+
from ftplib import FTP
|
11 |
|
12 |
logging.basicConfig(level=logging.INFO)
|
13 |
|
|
|
31 |
else:
|
32 |
raise ValueError("No input was provided.")
|
33 |
|
34 |
+
def upload_to_ftp(server, username, password, source_file, destination_file):
|
35 |
+
"""Uploads a file to an FTP server."""
|
36 |
+
with FTP(server, username, password) as ftp:
|
37 |
+
with open(source_file, 'rb') as f:
|
38 |
+
ftp.storbinary(f'STOR {destination_file}', f)
|
39 |
+
|
40 |
+
|
41 |
def get_output_path(input_path, temp_dir, res):
|
42 |
"""Returns the path to the output file, creating it if necessary."""
|
43 |
output_path = temp_dir / (Path(input_path).stem + f"_{res}.m3u8")
|
|
|
110 |
|
111 |
output_paths.append(output_path) # Append the output_path to output_paths
|
112 |
|
113 |
+
if upload:
|
114 |
+
ftp_files = []
|
115 |
+
for path in [master_playlist_copy_path] + output_copy_paths:
|
116 |
+
destination = ftp_path + "/" + path.name
|
117 |
+
upload_to_ftp(ftp_server, ftp_username, ftp_password, path, destination)
|
118 |
+
ftp_files.append(destination)
|
119 |
+
return ftp_files
|
120 |
+
else:
|
121 |
+
return [master_playlist_copy_path] + output_copy_paths
|
122 |
+
|
123 |
if not output_paths:
|
124 |
return "The video is smaller than the smallest standard resolution."
|
125 |
|
|
|
157 |
label="Aspect Ratio", default="16:9")
|
158 |
video_url = gr.inputs.Textbox(label="Video URL")
|
159 |
|
160 |
+
ftp_server = gr.inputs.Textbox(label="FTP Server")
|
161 |
+
ftp_username = gr.inputs.Textbox(label="FTP Username")
|
162 |
+
ftp_password = gr.inputs.Textbox(label="FTP Password", type="password")
|
163 |
+
ftp_path = gr.inputs.Textbox(label="FTP Path")
|
164 |
+
upload = gr.inputs.Checkbox(label="Upload to FTP server", default=False)
|
165 |
+
|
166 |
gr.Interface(
|
167 |
convert_video,
|
168 |
+
inputs=[video_file, quality, aspect_ratio, video_url, ftp_server, ftp_username, ftp_password, ftp_path, upload],
|
169 |
outputs=gr.outputs.Textbox(),
|
170 |
output_processor=process_output,
|
171 |
allow_flagging=False,
|