asad231 commited on
Commit
4578e0e
·
verified ·
1 Parent(s): 9eb2d43

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -6
app.py CHANGED
@@ -89,6 +89,7 @@ import numpy as np
89
  import cv2
90
  import tempfile
91
  import requests
 
92
  import os
93
  from PIL import Image
94
  import tensorflow as tf
@@ -373,8 +374,8 @@ st.subheader("🎥 Deepfake Video Detection")
373
  # Upload video file
374
  uploaded_video = st.file_uploader("Upload a Video", type=["mp4", "avi", "mov"])
375
 
376
- # URL Input for Video
377
- video_url = st.text_input("Enter Video URL (MP4 only)")
378
 
379
  # Function to detect deepfake in video
380
  def detect_deepfake_video(video_path):
@@ -407,7 +408,7 @@ def detect_deepfake_video(video_path):
407
 
408
  return {"label": final_label, "score": confidence}
409
 
410
- # Download video from URL
411
  def download_video(url):
412
  try:
413
  temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4")
@@ -422,6 +423,19 @@ def download_video(url):
422
  except Exception as e:
423
  return None
424
 
 
 
 
 
 
 
 
 
 
 
 
 
 
425
  # Select Video Source
426
  video_path = None
427
 
@@ -433,10 +447,14 @@ if uploaded_video is not None:
433
  f.write(uploaded_video.read())
434
  video_path = temp_file.name # Set video path for detection
435
 
436
- # Process Video from URL
437
  elif video_url:
438
- st.video(video_url) # Show the video directly from URL
439
- video_path = download_video(video_url) # Download the video for analysis
 
 
 
 
440
 
441
  # Ensure video_path is valid before analysis
442
  if video_path and os.path.exists(video_path):
 
89
  import cv2
90
  import tempfile
91
  import requests
92
+ from pytube import YouTube
93
  import os
94
  from PIL import Image
95
  import tensorflow as tf
 
374
  # Upload video file
375
  uploaded_video = st.file_uploader("Upload a Video", type=["mp4", "avi", "mov"])
376
 
377
+ # URL Input for Video (MP4 Direct Link or YouTube URL)
378
+ video_url = st.text_input("Enter Video URL (YouTube or MP4 Link)")
379
 
380
  # Function to detect deepfake in video
381
  def detect_deepfake_video(video_path):
 
408
 
409
  return {"label": final_label, "score": confidence}
410
 
411
+ # Download video from direct MP4 URL
412
  def download_video(url):
413
  try:
414
  temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4")
 
423
  except Exception as e:
424
  return None
425
 
426
+ # Download YouTube video
427
+ def download_youtube_video(youtube_url):
428
+ try:
429
+ yt = YouTube(youtube_url)
430
+ video_stream = yt.streams.filter(file_extension="mp4", res="360p").first()
431
+ if not video_stream:
432
+ video_stream = yt.streams.get_lowest_resolution()
433
+ temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4")
434
+ video_stream.download(filename=temp_file.name)
435
+ return temp_file.name
436
+ except Exception as e:
437
+ return None
438
+
439
  # Select Video Source
440
  video_path = None
441
 
 
447
  f.write(uploaded_video.read())
448
  video_path = temp_file.name # Set video path for detection
449
 
450
+ # Process Video from URL (Check if YouTube or Direct Link)
451
  elif video_url:
452
+ if "youtube.com" in video_url or "youtu.be" in video_url:
453
+ st.video(video_url) # Show YouTube video
454
+ video_path = download_youtube_video(video_url) # Download YouTube video
455
+ else:
456
+ st.video(video_url) # Show direct MP4 video
457
+ video_path = download_video(video_url) # Download direct MP4 video
458
 
459
  # Ensure video_path is valid before analysis
460
  if video_path and os.path.exists(video_path):