eusholli commited on
Commit
7abfd20
1 Parent(s): 35224be

added YouTube URL option

Browse files
Files changed (2) hide show
  1. app.py +29 -16
  2. requirements.txt +6 -5
app.py CHANGED
@@ -1,10 +1,7 @@
1
- import torch
2
- import tensorflow as tf
3
  import time
4
  import os
5
  import logging
6
- from pathlib import Path
7
- from typing import List, NamedTuple
8
 
9
  import av
10
  import cv2
@@ -21,6 +18,7 @@ from transformers import pipeline # Import Hugging Face transformers pipeline
21
 
22
  import requests
23
  from io import BytesIO # Import for handling byte streams
 
24
 
25
 
26
  # CHANGE CODE BELOW HERE, USE TO REPLACE WITH YOUR WANTED ANALYSIS.
@@ -132,17 +130,6 @@ def analyze_sentiment(face):
132
  # Suppress FFmpeg logs
133
  os.environ["FFMPEG_LOG_LEVEL"] = "quiet"
134
 
135
- # Suppress TensorFlow or PyTorch progress bars
136
-
137
- tf.get_logger().setLevel("ERROR")
138
- os.environ["TF_CPP_MIN_LOG_LEVEL"] = "3"
139
-
140
- # Suppress PyTorch logs
141
-
142
- logging.getLogger().setLevel(logging.WARNING)
143
- torch.set_num_threads(1)
144
- logging.getLogger("torch").setLevel(logging.ERROR)
145
-
146
  # Suppress Streamlit logs using the logging module
147
  logging.getLogger("streamlit").setLevel(logging.ERROR)
148
 
@@ -239,7 +226,11 @@ with col1:
239
  st.subheader("Or Enter Image URL")
240
  image_url = st.text_input("Image URL")
241
 
242
- # File uploader for videos
 
 
 
 
243
  st.subheader("Upload a Video")
244
  uploaded_video = st.file_uploader(
245
  "Choose a video...", type=["mp4", "avi", "mov", "mkv"]
@@ -358,6 +349,28 @@ def process_video(video_path):
358
 
359
  cap.release() # Release the video capture object
360
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
361
 
362
  # If a video is uploaded or a URL is provided, process the video
363
  if uploaded_video is not None or video_url:
 
 
 
1
  import time
2
  import os
3
  import logging
4
+
 
5
 
6
  import av
7
  import cv2
 
18
 
19
  import requests
20
  from io import BytesIO # Import for handling byte streams
21
+ import yt_dlp
22
 
23
 
24
  # CHANGE CODE BELOW HERE, USE TO REPLACE WITH YOUR WANTED ANALYSIS.
 
130
  # Suppress FFmpeg logs
131
  os.environ["FFMPEG_LOG_LEVEL"] = "quiet"
132
 
 
 
 
 
 
 
 
 
 
 
 
133
  # Suppress Streamlit logs using the logging module
134
  logging.getLogger("streamlit").setLevel(logging.ERROR)
135
 
 
226
  st.subheader("Or Enter Image URL")
227
  image_url = st.text_input("Image URL")
228
 
229
+ # Text input for YouTube URL
230
+ st.subheader("Enter a YouTube URL")
231
+ youtube_url = st.text_input("YouTube URL")
232
+
233
+ # File uploader for videos
234
  st.subheader("Upload a Video")
235
  uploaded_video = st.file_uploader(
236
  "Choose a video...", type=["mp4", "avi", "mov", "mkv"]
 
349
 
350
  cap.release() # Release the video capture object
351
 
352
+ # Function to get the video stream URL from YouTube using yt-dlp
353
+
354
+
355
+ def get_youtube_stream_url(youtube_url):
356
+ ydl_opts = {
357
+ 'format': 'best[ext=mp4]',
358
+ 'quiet': True,
359
+ }
360
+ with yt_dlp.YoutubeDL(ydl_opts) as ydl:
361
+ info_dict = ydl.extract_info(youtube_url, download=False)
362
+ stream_url = info_dict['url']
363
+ return stream_url
364
+
365
+
366
+ # If a YouTube URL is provided, process the video
367
+ if youtube_url:
368
+ analysis_init() # Initialize the analysis UI
369
+
370
+ stream_url = get_youtube_stream_url(youtube_url)
371
+
372
+ process_video(stream_url) # Process the video
373
+
374
 
375
  # If a video is uploaded or a URL is provided, process the video
376
  if uploaded_video is not None or video_url:
requirements.txt CHANGED
@@ -1,11 +1,12 @@
 
 
1
  streamlit
2
  opencv-python-headless
3
  numpy
4
  transformers
5
- torch
6
- mtcnn
7
  setuptools
8
- tensorflow
9
- tf-keras
10
  streamlit_webrtc
11
- twilio
 
 
 
 
1
+ tensorboard==2.16.2
2
+ tf-keras
3
  streamlit
4
  opencv-python-headless
5
  numpy
6
  transformers
 
 
7
  setuptools
 
 
8
  streamlit_webrtc
9
+ twilio
10
+ mtcnn
11
+ yt-dlp
12
+ watchdog