import streamlit as st from g4f.client import Client client = Client() def generate_response(messages): response = client.chat.completions.create( model="gpt-4o-mini", messages=messages, ) return response.choices[0].message.content def title_template(topic): return f"Write me a YouTube video title about {topic}" def script_template(title, wikipedia_search): return f"Write me a YouTube script based on this title: TITLE: {title} while leveraging this Wikipedia research: {wikipedia_search}." def wikipedia_search(topic): search_response = generate_response([{"role": "user", "content": f"Search Wikipedia for {topic} and summarize the information."}]) return search_response st.title("🎥 YouTube Script GPT") st.caption("📝 Enter the topic you want for your Youtube Content and get the full script in detail") st.caption("Made by Samagra Shrivastava with ♥") input_text = st.chat_input("Enter a topic for your YouTube video...") if input_text: with st.spinner('Generating title and script ⌛...'): title_prompt = title_template(input_text) title = generate_response([{"role": "user", "content": title_prompt}]) with st.spinner('Searching Wikipedia...'): wiki_research = wikipedia_search(input_text) with st.spinner('Generating script...'): script_prompt = script_template(title, wiki_research) script = generate_response([{"role": "user", "content": script_prompt}]) st.subheader("Generated Title 😎") st.write(title) st.subheader("Generated Script 📜") st.write(script) st.subheader("Wikipedia Research 🔍") st.write(wiki_research) with st.expander("Title History"): st.info(f"Topic: {input_text}\nTitle: {title}") with st.expander("Script History"): st.info(script) with st.expander("Wikipedia Research Details"): st.info(wiki_research)