File size: 1,919 Bytes
5f0e3aa 3c91b66 40839f9 2eb56fd 9ff5a7a 40839f9 5f0e3aa 9ff5a7a 605deea 40839f9 5f0e3aa 9ff5a7a 40839f9 5f0e3aa 40839f9 5f0e3aa 27df70e 605deea 5f0e3aa 40839f9 5f0e3aa 9ff5a7a 40839f9 9ff5a7a 5f0e3aa 40839f9 5f0e3aa 40839f9 5f0e3aa 9ff5a7a 40839f9 5f0e3aa | 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 | import streamlit as st
from langchain_community.document_loaders import YoutubeLoader
from langchain.chat_models import ChatHuggingFace
from langchain.llms import HuggingFaceEndpoint
from langchain.schema import HumanMessage
import os
# Set page layout
st.set_page_config(page_title="YouTube Summarizer with DeepSeek", layout="centered")
st.title("๐บ YouTube Video Summarizer with DeepSeek")
hf_token = os.getenv("HF_TOKEN") # For local dev
if hf_token:
os.environ["HUGGINGFACEHUB_API_KEY"] = hf_token
# Input
url = st.text_input("Enter YouTube Video URL:")
# Connect to DeepSeek-R1 via Nebius
@st.cache_resource
def load_deepseek_model():
deep_seek_model = HuggingFaceEndpoint(
repo_id="deepseek-ai/DeepSeek-R1",
provider="nebius",
temperature=0.7,
max_new_tokens=30,
task="conversational",
huggingfacehub_api_token=hf_token # โ
Use your HF token here
)
return ChatHuggingFace(llm=deep_seek_model)
deepseek = load_deepseek_model()
if st.button("Extract and Summarize"):
if url:
try:
# Step 1: Load transcript
loader = YoutubeLoader.from_youtube_url(url)
data = loader.load()
transcript = data[0].page_content if data else "No transcript found."
st.subheader("๐ Extracted Transcript")
st.text_area("Transcript:", transcript, height=300)
# Step 2: Prepare prompt
prompt = f"Summarize the following video transcript:\n\n{transcript}"
with st.spinner("Summarizing using DeepSeek..."):
response = deepseek([HumanMessage(content=prompt)])
summary = response.content.strip()
st.subheader("๐ง Summary")
st.success(summary)
except Exception as e:
st.error(f"โ Error: {str(e)}")
else:
st.warning("Please enter a valid YouTube URL.")
|