Update app.py
Browse files
app.py
CHANGED
|
@@ -236,6 +236,13 @@ if uploaded_image is not None:
|
|
| 236 |
st.error(f"⚠️ Result: This image is a Deepfake. (Confidence: {result['score']:.2f})")
|
| 237 |
|
| 238 |
# ---- Deepfake Video Detection Section ----
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 239 |
st.subheader("🎥 Deepfake Video Detection")
|
| 240 |
|
| 241 |
# Upload video file
|
|
@@ -290,7 +297,7 @@ def download_video(url):
|
|
| 290 |
except Exception as e:
|
| 291 |
return None
|
| 292 |
|
| 293 |
-
# ✅ Display Video (YouTube Embed or
|
| 294 |
video_path = None
|
| 295 |
|
| 296 |
if uploaded_video is not None:
|
|
@@ -298,18 +305,36 @@ if uploaded_video is not None:
|
|
| 298 |
with open(temp_file.name, "wb") as f:
|
| 299 |
f.write(uploaded_video.read())
|
| 300 |
video_path = temp_file.name # Set video path for detection
|
| 301 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 302 |
|
| 303 |
elif video_url:
|
| 304 |
if "youtube.com" in video_url or "youtu.be" in video_url:
|
| 305 |
st.markdown(
|
| 306 |
-
f'<iframe width="
|
| 307 |
unsafe_allow_html=True,
|
| 308 |
)
|
| 309 |
else:
|
| 310 |
video_path = download_video(video_url) # Download MP4
|
| 311 |
if video_path:
|
| 312 |
-
st.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 313 |
else:
|
| 314 |
st.warning("⚠️ Invalid MP4 URL.")
|
| 315 |
|
|
@@ -327,5 +352,6 @@ if uploaded_video or (video_url and not "youtube.com" in video_url):
|
|
| 327 |
st.success(f"✅ This video appears to be REAL. (Confidence: {1 - result['score']:.2f})")
|
| 328 |
else:
|
| 329 |
st.warning("⚠️ Unable to analyze the video. Please try a different file.")
|
|
|
|
| 330 |
|
| 331 |
st.markdown("🔹 **Developed for Fake News & Deepfake Detection**")
|
|
|
|
| 236 |
st.error(f"⚠️ Result: This image is a Deepfake. (Confidence: {result['score']:.2f})")
|
| 237 |
|
| 238 |
# ---- Deepfake Video Detection Section ----
|
| 239 |
+
import streamlit as st
|
| 240 |
+
import tempfile
|
| 241 |
+
import os
|
| 242 |
+
import cv2
|
| 243 |
+
import numpy as np
|
| 244 |
+
import requests
|
| 245 |
+
|
| 246 |
st.subheader("🎥 Deepfake Video Detection")
|
| 247 |
|
| 248 |
# Upload video file
|
|
|
|
| 297 |
except Exception as e:
|
| 298 |
return None
|
| 299 |
|
| 300 |
+
# ✅ Display Video (YouTube Embed or Small Size Video Player)
|
| 301 |
video_path = None
|
| 302 |
|
| 303 |
if uploaded_video is not None:
|
|
|
|
| 305 |
with open(temp_file.name, "wb") as f:
|
| 306 |
f.write(uploaded_video.read())
|
| 307 |
video_path = temp_file.name # Set video path for detection
|
| 308 |
+
|
| 309 |
+
# 🔹 **Small Video Display**
|
| 310 |
+
st.markdown(
|
| 311 |
+
f"""
|
| 312 |
+
<video controls width="300">
|
| 313 |
+
<source src="data:video/mp4;base64,{uploaded_video.getvalue().decode('utf-8')}" type="video/mp4">
|
| 314 |
+
Your browser does not support the video tag.
|
| 315 |
+
</video>
|
| 316 |
+
""",
|
| 317 |
+
unsafe_allow_html=True,
|
| 318 |
+
)
|
| 319 |
|
| 320 |
elif video_url:
|
| 321 |
if "youtube.com" in video_url or "youtu.be" in video_url:
|
| 322 |
st.markdown(
|
| 323 |
+
f'<iframe width="300" height="170" src="{video_url.replace("watch?v=", "embed/")}" frameborder="0" allowfullscreen></iframe>',
|
| 324 |
unsafe_allow_html=True,
|
| 325 |
)
|
| 326 |
else:
|
| 327 |
video_path = download_video(video_url) # Download MP4
|
| 328 |
if video_path:
|
| 329 |
+
st.markdown(
|
| 330 |
+
f"""
|
| 331 |
+
<video controls width="300">
|
| 332 |
+
<source src="{video_path}" type="video/mp4">
|
| 333 |
+
Your browser does not support the video tag.
|
| 334 |
+
</video>
|
| 335 |
+
""",
|
| 336 |
+
unsafe_allow_html=True,
|
| 337 |
+
)
|
| 338 |
else:
|
| 339 |
st.warning("⚠️ Invalid MP4 URL.")
|
| 340 |
|
|
|
|
| 352 |
st.success(f"✅ This video appears to be REAL. (Confidence: {1 - result['score']:.2f})")
|
| 353 |
else:
|
| 354 |
st.warning("⚠️ Unable to analyze the video. Please try a different file.")
|
| 355 |
+
|
| 356 |
|
| 357 |
st.markdown("🔹 **Developed for Fake News & Deepfake Detection**")
|