DEV Community

Joey Umanito
Joey Umanito

Posted on

How to Automate Content Creation with AI (Python Tutorial)

Content creation is time-consuming. What if you could automate 80% of it with AI? In this guide, I will show you how to build an AI content generation system that writes blog posts, social media captions, and product descriptions automatically.

What We Build

A Python script that:

  • Takes a topic as input
  • Uses AI to generate full blog posts
  • Creates social media captions automatically
  • Saves content to files for review

Step 1: Set Up Your Environment

Install required packages:

pip install openai jinja2 python-dotenv
Enter fullscreen mode Exit fullscreen mode

Create a .env file:

OPENAI_API_KEY=your_api_key_here
Enter fullscreen mode Exit fullscreen mode

Step 2: Create the Content Generator

import openai
import os
from dotenv import load_dotenv

load_dotenv()

client = openai.OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def generate_blog_post(topic, word_count=500):
    prompt = f"Write a {word_count}-word blog post about: {topic}. Use markdown headers."

    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=1500
    )

    return response.choices[0].message.content

def generate_social_caption(content, platform="twitter"):
    prompt = f"Create a {platform} caption with hashtags for this content: {content[:300]}"

    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=200
    )

    return response.choices[0].message.content

topic = "The Future of Remote Work in 2025"
blog_post = generate_blog_post(topic)
caption = generate_social_caption(blog_post, "twitter")
print(blog_post)
Enter fullscreen mode Exit fullscreen mode

Step 3: Auto-Publish to Dev.to

import requests

def publish_to_devto(title, content, tags, api_key):
    response = requests.post(
        "https://dev.to/api/articles",
        headers={"api-key": api_key},
        json={"article": {"title": title, "published": True, "body_markdown": content, "tags": tags}}
    )
    return response.json()

result = publish_to_devto(topic, blog_post, ["ai", "productivity"], "YOUR_KEY")
print("Published:", result.get("url"))
Enter fullscreen mode Exit fullscreen mode

Step 4: Schedule Automated Publishing

import schedule
import time
import random

TOPICS = [
    "Python tips for beginners",
    "Best VS Code extensions 2025",
    "How to learn machine learning"
]

def daily_job():
    topic = random.choice(TOPICS)
    content = generate_blog_post(topic)
    publish_to_devto(topic, content, ["python", "webdev"], "YOUR_KEY")

schedule.every().day.at("09:00").do(daily_job)

while True:
    schedule.run_pending()
    time.sleep(3600)
Enter fullscreen mode Exit fullscreen mode

Real Results You Can Expect

With this system running daily:

  • 30 articles per month published automatically
  • 500 to 1000 new readers per month from organic search
  • 5 to 10 hours saved per week on content creation

Want This Set Up For You?

If you want this done professionally without the setup hassle:


Have questions? Drop a comment below!

Top comments (0)