Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import os | |
| import langchain | |
| import langchain_huggingface | |
| import huggingface_hub | |
| from langchain_community.document_loaders import YoutubeLoader | |
| from langchain_huggingface import HuggingFaceEndpoint,ChatHuggingFace | |
| os.environ['HUGGINGFACEHUB_API_TOKEN'] = os.getenv("Utube") | |
| os.environ['HF_TOKEN'] = os.getenv("Utube") | |
| meta_llm=HuggingFaceEndpoint(repo_id="meta-llama/Llama-3.1-8B-Instruct", | |
| provider="nebius", | |
| temperature=0.5,max_new_tokens=150, | |
| task="conversational") | |
| model=ChatHuggingFace(llm=meta_llm, | |
| repo_id="meta-llama/Llama-3.1-8B-Instruct", | |
| provider="nebius", | |
| temperature=0.5, | |
| max_new_tokens=50, | |
| task="conversational") | |
| def get_youtube_transcript(url): | |
| loader = YoutubeLoader.from_youtube_url(url) | |
| docs = loader.load() | |
| return docs[0].page_content | |
| # π Function to summarize | |
| def summarize_youtube_video(url): | |
| transcript = get_youtube_transcript(url) | |
| if len(transcript) > 3000: | |
| transcript = transcript[:3000] # Trim to avoid token limit | |
| prompt = f"Summarize this YouTube video transcript:\n\n{transcript}" | |
| response = model.invoke(prompt) | |
| return response.content | |
| st.set_page_config(page_title="YouTube Video Summarizer", layout="centered") | |
| st.title("π¬ YouTube Video Summarizer") | |
| st.write("Paste a YouTube video URL below to get a concise summary using Llama 3.1 π§ ") | |
| youtube_url = st.text_input("π₯ Enter YouTube URL:") | |
| if st.button("Summarize"): | |
| if youtube_url.strip() == "": | |
| st.warning("Please enter a valid YouTube video URL.") | |
| else: | |
| with st.spinner("Fetching and summarizing..."): | |
| try: | |
| summary = summarize_youtube_video(youtube_url) | |
| st.success("β Summary Generated:") | |
| st.write(summary) | |
| except Exception as e: | |
| st.error(f"Something went wrong: {e}") |