File size: 4,058 Bytes
1c97873
7920808
fba0ec8
 
 
7920808
1c97873
 
 
 
913c773
 
 
 
 
 
 
91bca67
913c773
 
 
 
 
 
fba0ec8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
913c773
fba0ec8
 
913c773
 
 
 
 
 
 
 
 
0f2c023
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
913c773
 
 
 
 
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
106
107
108
109
110
111
112
113
114
115
import streamlit as st
import requests
import requests
from pytube import YouTube
import os

# Streamlit interface setup
st.title('Video Summary Interface')



# Creating tabs, 
tab1, tab2, tab3, tab4, tab5 = st.tabs(["Project Description", "Video Uploader", "Video Indexer", "Video Prompt", "Unique Value Add"])

with tab1:
    st.header("Project Description")
    st.write("Here you can describe the project in detail.")
    image_path = 'data/data_projectflow.png'

    # Display the image
    st.image(image_path, caption='Project Flow Diagram')
    # Add more components as needed

with tab2:
   
    
    # Function to download YouTube video
    def download_youtube_video(url):
        yt = YouTube(url)
        stream = yt.streams.filter(file_extension='mp4').first()
        video = stream.download()
        return video
    
    st.title('Video Upload and Processing Interface')
    
    # Container for video input
    with st.container():
        st.header("Video Input")
        video_file = st.file_uploader("Upload a video file", type=["mp4", "avi"])
        youtube_url = st.text_input("Or paste a YouTube URL here:")
    
    # Container for video processing output
    with st.container():
        st.header("Video Processing")
    
        if st.button("Process Video"):
            if video_file is not None:
                video_path = video_file.name
                with open(video_path, mode='wb') as f:
                    f.write(video_file.getbuffer())
            elif youtube_url:
                video_path = download_youtube_video(youtube_url)
            else:
                st.warning("Please upload a video file or enter a YouTube URL.")
                st.stop()
    
            # Assume 'client' and 'index_id' are set correctly
            print(f"Uploading {video_path}")
            # Mock-up of task creation as we can't interact with client directly in this example
            task_id = "mock_task_id"
            video_id = "mock_video_id"
            st.success(f"Task id={task_id}")
            st.success(f"Uploaded {video_path}. The unique identifier of your video is {video_id}.")
    
    # Utility functions and actual usage of these would depend on setup outside this script
    # Ensure you replace placeholders and handle authentication correctly

with tab3:
    st.header("Video Indexer")
    st.write("Information and controls related to the Scrum TruEra Assistants API.")
    # Integration and API controls could be managed here

with tab4:
    st.header("Video Prompt")
    st.write("Information and controls related to the Scrum TruEra Assistants API.")

    # Input for modifying the prompt
    prompt = st.text_input("Enter your prompt:", 
                           "list the top 4 job interview mistakes and how to improve")
    
    # Slider to adjust the number in the prompt
    number = st.slider("Select the number of top mistakes:", min_value=1, max_value=10, value=4)
    
    # Update the prompt with the chosen number
    updated_prompt = prompt.replace("4", str(number))
    
    # Button to send the request
    if st.button("Summarize Video"):
        BASE_URL = "https://api.twelvelabs.io/v1.2"
        api_key = "tlk_3CPMVGM0ZPTKNT2TKQ3Y62TA7ZY9"
        data = {
            "video_id": "6636cf7fd1cd5a287c957cf5",
            "type": "summary",
            "prompt": updated_prompt
        }
    
        # Send the request
        response = requests.post(f"{BASE_URL}/summarize", json=data, headers={"x-api-key": api_key})
        
        # Check if the response is successful
        if response.status_code == 200:
            st.text_area("Summary:", response.json()['summary'], height=300)
        else:
            st.error("Failed to fetch summary: " + response.text)
    
    # Run this script using the following command:
    # streamlit run your_script_name.py
    
        

with tab5:
    st.header("Unique Value Add")
    st.write("Information and controls related to the Scrum TruEra Assistants API.")
    # Integration and API controls could be managed here