YouTube Automation: Build a Text to Speech AI Agent (2026)

Learn how to build a 24/7 YouTube Automation workflow using a Text to Speech AI Agent. Scale your faceless channel with automated scripts and voices.top manual editing. Build a self-reasoning TTS AI Agent for YouTube Automation. Master the 2026 'Agentic' workflow to produce high-quality, faceless content.

 

----------------------------------------------------------------code is here -------------------------------------------------------------------------

 

import ollama

import re

import edge_tts

import asyncio

class YoutScriptAgent:

    def __init__(self,model="qwen3:1.7b"):

        self.model = model

        self.voice = "en-US-AndrewNeural"


 

    def generate_script(self,topic,traget_audience,duration_mins):

        prompt = f"""

        You are an expert YouTube Scriptwriter. Your goal is to write a high-retention script.

       

        TOPIC: {topic}

        TARGET AUDIENCE: {traget_audience}

        ESTIMATED DURATION: {duration_mins} minutes

       

        Structure the script as follows:

        1. **The Hook (0:00-0:45)**: Grab attention immediately.

        2. **The Intro**: Briefly explain what they will learn.

        3. **Main Content**: Break down into 3-5 clear points. Include visual cues in [brackets].

        4. **The CTA**: Naturally lead into a call to action.

        5. **Outro**: Wrap up and suggest another video.

       

        Write in a conversational, high-energy tone.

        """    

 

        response = ollama.chat(

            model = self.model,

            messages = [{"role":"user","content":prompt}]

        )
 

        script_text =  response['message']['content']

        script_text = re.sub(r'\*|\[.*?\]', '',script_text)

        return script_text.strip()

    async def generate_voice(self,text,output_file="output.mp3"):

        print("step 2 - generating voice")

        communicate = edge_tts.Communicate(text,self.voice)

        await communicate.save(output_file)
 

if __name__ == "__main__":

    agent = YoutScriptAgent()

    topic = "The Future of AI: 5 Mind Blowing predications"

    raw_script = agent.generate_script(topic,"Tech Enthusaists",2)

    print("step 1 - generated script")

    print(raw_script[:200])
 

    asyncio.run(agent.generate_voice(raw_script))

     


 

   


 

       


---------------------------------------------------------------------------end------------------------------------------------------------------------