Neon-AI commited on
Commit
ee283b7
·
verified ·
1 Parent(s): 98fd044

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -50
app.py CHANGED
@@ -1,56 +1,30 @@
1
  import gradio as gr
2
- import subprocess
3
- import tempfile
4
- import time
5
- import os
6
-
7
- def download_and_measure(stream_url):
8
- output = tempfile.mktemp(suffix=".mp4")
9
-
10
- start = time.time()
11
-
12
- cmd = [
13
- "ffmpeg",
14
- "-y",
15
- "-i", stream_url,
16
- "-c", "copy",
17
- "-bsf:a", "aac_adtstoasc",
18
- output
19
- ]
20
-
21
- subprocess.run(
22
- cmd,
23
- stdout=subprocess.DEVNULL,
24
- stderr=subprocess.DEVNULL,
25
- check=True
26
- )
27
-
28
- elapsed = round(time.time() - start, 2)
29
- size_mb = round(os.path.getsize(output) / 1024 / 1024, 2)
30
-
31
- return {
32
- "download_time_seconds": elapsed,
33
- "file_size_mb": size_mb,
34
- "output_file_path": output
35
  }
 
 
 
 
 
 
 
 
 
 
36
 
37
  with gr.Blocks() as demo:
38
- gr.Markdown("## HLS Stream Download Speed Test")
39
- gr.Markdown("Fastest possible method — stream copy only")
40
-
41
- url_input = gr.Textbox(
42
- label="HLS Stream URL",
43
- placeholder="https://example.com/master.m3u8"
44
- )
45
-
46
- result = gr.JSON(label="Result")
47
-
48
- run_btn = gr.Button("Download & Measure")
49
-
50
- run_btn.click(
51
- download_and_measure,
52
- inputs=url_input,
53
- outputs=result
54
- )
55
 
56
  demo.launch()
 
1
  import gradio as gr
2
+ import requests
3
+
4
+ def upload_to_litterbox(video_file):
5
+ """
6
+ Uploads a video file to Litterbox and returns the direct URL.
7
+ """
8
+ files = {
9
+ 'fileToUpload': (video_file.name, open(video_file.name, 'rb'), 'video/mp4')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  }
11
+ data = {
12
+ 'reqtype': 'fileupload'
13
+ }
14
+
15
+ resp = requests.post("https://litter.catbox.moe/resources/internals/api.php", files=files, data=data)
16
+
17
+ if resp.status_code == 200:
18
+ return resp.text # This is the direct .mp4 link
19
+ else:
20
+ return f"Upload failed with status {resp.status_code}"
21
 
22
  with gr.Blocks() as demo:
23
+ gr.Markdown("## Upload Video to Litterbox / Catbox")
24
+ video_input = gr.File(label="Upload MP4", file_types=['.mp4'])
25
+ output_url = gr.Textbox(label="Litterbox URL")
26
+ upload_btn = gr.Button("Upload")
27
+
28
+ upload_btn.click(upload_to_litterbox, inputs=video_input, outputs=output_url)
 
 
 
 
 
 
 
 
 
 
 
29
 
30
  demo.launch()