File size: 3,791 Bytes
56e3c29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39abc8d
c29b197
56e3c29
39abc8d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56e3c29
39abc8d
 
 
 
 
 
56e3c29
39abc8d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# import streamlit as st
# import numpy as np
# import cv2
# import tempfile
# import os

# # ---- Page Configuration ----
# st.set_page_config(page_title="Fake & Deepfake Detection", layout="wide")

# st.title("πŸ“° Fake News & Deepfake Detection Tool")
# st.write("πŸš€ Detect Fake News, Deepfake Images, and Videos using AI")

# # ---- Fake News Detection Section ----
# st.subheader("πŸ“ Fake News Detection")
# news_input = st.text_area("Enter News Text:", "Type here...")

# if st.button("Check News"):
#     st.write("πŸ” Processing...")
#     # Fake news detection logic (Placeholder)
#     st.success("βœ… Result: This news is FAKE.")  # Replace with ML Model

# # ---- Deepfake Image Detection Section ----
# st.subheader("πŸ“Έ Deepfake Image Detection")
# uploaded_image = st.file_uploader("Upload an Image", type=["jpg", "png", "jpeg"])

# if uploaded_image is not None:
#     st.image(uploaded_image, caption="Uploaded Image", use_column_width=True)
#     if st.button("Analyze Image"):
#         st.write("πŸ” Processing...")
#         # Deepfake detection logic (Placeholder)
#         st.error("⚠️ Result: This image is a Deepfake.")  # Replace with model

# # ---- Deepfake Video Detection Section ----
# st.subheader("πŸŽ₯ Deepfake Video Detection")
# uploaded_video = st.file_uploader("Upload a Video", type=["mp4", "avi", "mov"])

# if uploaded_video is not None:
#     st.video(uploaded_video)
#     if st.button("Analyze Video"):
#         st.write("πŸ” Processing...")
#         # Deepfake video detection logic (Placeholder)
#         st.warning("⚠️ Result: This video contains Deepfake elements.")  # Replace with model

# st.markdown("πŸ”Ή **Developed for Fake News & Deepfake Detection Hackathon**")


import streamlit as st
import cv2
import numpy as np
import tempfile
import os
from PIL import Image

def compress_image(image, quality=20):
    img = Image.open(image)
    img = img.convert("RGB")
    temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".jpg")
    img.save(temp_file.name, "JPEG", quality=quality)
    return temp_file.name

def compress_video(video):
    temp_file = tempfile.NamedTemporaryFile(delete=False, suffix=".mp4")
    cap = cv2.VideoCapture(video)
    fourcc = cv2.VideoWriter_fourcc(*'mp4v')
    frame_width = int(cap.get(3) // 2)
    frame_height = int(cap.get(4) // 2)
    out = cv2.VideoWriter(temp_file.name, fourcc, 20.0, (frame_width, frame_height))
    
    while cap.isOpened():
        ret, frame = cap.read()
        if not ret:
            break
        frame = cv2.resize(frame, (frame_width, frame_height))
        out.write(frame)
    
    cap.release()
    out.release()
    return temp_file.name

st.title("πŸ•΅οΈβ€β™‚οΈ Fake News & Deepfake Detection Tool")

st.sidebar.header("Upload your file")
option = st.sidebar.radio("Select file type", ["Image", "Video", "Text"])

if option == "Image":
    uploaded_file = st.sidebar.file_uploader("Upload an image", type=["jpg", "jpeg", "png"])
    if uploaded_file is not None:
        compressed_path = compress_image(uploaded_file)
        image = Image.open(compressed_path)
        st.image(image, caption="Compressed Image", use_column_width=True)
        st.success("βœ… Image uploaded and compressed successfully!")

elif option == "Video":
    uploaded_file = st.sidebar.file_uploader("Upload a video", type=["mp4", "avi", "mov"])
    if uploaded_file is not None:
        compressed_path = compress_video(uploaded_file)
        st.video(compressed_path)
        st.success("βœ… Video uploaded and compressed successfully!")

elif option == "Text":
    text_input = st.text_area("Enter your text for analysis")
    if text_input:
        st.write("πŸ” Fake news detection processing...")
        st.success("βœ… Text analysis completed!")