Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 020684c

Browse files
Merge pull request avinashkranjan#2416 from ayush-09/yt
Youtube Writing Script
2 parents b1a0105 + b335d58 commit 020684c

File tree

4 files changed

+107
-0
lines changed

4 files changed

+107
-0
lines changed

‎YT Script Writing Tool/Youtube.jpg‎

14.9 KB
Loading[フレーム]

‎YT Script Writing Tool/app.py‎

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import streamlit as st
2+
from utils import generate_script
3+
4+
# Applying Styling
5+
st.markdown("""
6+
<style>
7+
div.stButton > button:first-child {
8+
background-color: #0099ff;
9+
color:#ffffff;
10+
}
11+
div.stButton > button:hover {
12+
background-color: #00ff00;
13+
color:#FFFFFF;
14+
}
15+
</style>""", unsafe_allow_html=True)
16+
17+
18+
# Creating Session State Variable
19+
if 'API_Key' not in st.session_state:
20+
st.session_state['API_Key'] =''
21+
22+
23+
st.title('❤️ YouTube Script Writing Tool')
24+
25+
# Sidebar to capture the OpenAi API key
26+
st.sidebar.title("😎🗝️")
27+
st.session_state['API_Key']= st.sidebar.text_input("What's your API key?",type="password")
28+
st.sidebar.image('./Youtube.jpg',width=300, use_column_width=True)
29+
30+
31+
# Captures User Inputs
32+
prompt = st.text_input('Please provide the topic of the video',key="prompt") # The box for the text prompt
33+
video_length = st.text_input('Expected Video Length 🕒 (in minutes)',key="video_length") # The box for the text prompt
34+
creativity = st.slider('Words limit ✨ - (0 LOW || 1 HIGH)', 0.0, 1.0, 0.2,step=0.1)
35+
36+
submit = st.button("Generate Script for me")
37+
38+
39+
if submit:
40+
41+
if st.session_state['API_Key']:
42+
search_result,title,script = generate_script(prompt,video_length,creativity,st.session_state['API_Key'])
43+
#Let's generate the script
44+
st.success('Hope you like this script ❤️')
45+
46+
#Display Title
47+
st.subheader("Title:🔥")
48+
st.write(title)
49+
50+
#Display Video Script
51+
st.subheader("Your Video Script:📝")
52+
st.write(script)
53+
54+
#Display Search Engine Result
55+
st.subheader("Check Out - DuckDuckGo Search:🔍")
56+
with st.expander('Show me 👀'):
57+
st.info(search_result)
58+
else:
59+
st.error("Ooopssss!!! Please provide API key.....")
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
langchain
2+
streamlit
3+
openai
4+
tiktoken
5+
python-dotenv
6+
pinecone-client
7+
duckduckgo_search

‎YT Script Writing Tool/utils.py‎

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
from langchain.llms import OpenAI
2+
from langchain.prompts import PromptTemplate
3+
from langchain.chains import LLMChain
4+
from langchain.tools import DuckDuckGoSearchRun
5+
6+
# Function to generate video script
7+
def generate_script(prompt,video_length,creativity,api_key):
8+
9+
# Template for generating 'Title'
10+
title_template = PromptTemplate(
11+
input_variables = ['subject'],
12+
template='Please come up with a title for a YouTube video on the {subject}.'
13+
)
14+
15+
# Template for generating 'Video Script' using search engine
16+
script_template = PromptTemplate(
17+
input_variables = ['title', 'DuckDuckGo_Search','duration'],
18+
template='Create a script for a YouTube video based on this title for me. TITLE: {title} of duration: {duration} minutes using this search data {DuckDuckGo_Search} '
19+
)
20+
21+
#Setting up OpenAI LLM
22+
llm = OpenAI(temperature=creativity,openai_api_key=api_key,
23+
model_name='gpt-3.5-turbo')
24+
25+
#Creating chain for 'Title' & 'Video Script'
26+
title_chain = LLMChain(llm=llm, prompt=title_template, verbose=True)
27+
script_chain = LLMChain(llm=llm, prompt=script_template, verbose=True)
28+
29+
30+
# https://python.langchain.com/docs/modules/agents/tools/integrations/ddg
31+
search = DuckDuckGoSearchRun()
32+
33+
# Executing the chains we created for 'Title'
34+
title = title_chain.run(prompt)
35+
36+
# Executing the chains we created for 'Video Script' by taking help of search engine 'DuckDuckGo'
37+
search_result = search.run(prompt)
38+
script = script_chain.run(title=title, DuckDuckGo_Search=search_result,duration=video_length)
39+
40+
# Returning the output
41+
return search_result,title,script

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /