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
|