Kevin Meneses
Volver a artículos

Automatiza redes sociales con Python y la API de Zernio

Automatiza redes sociales con Python y la API de Zernio

Programa publicaciones generadas con IA en Twitter, Reddit y más en 80 líneas de Python usando la API de Zernio: código completo y funcional, plan gratuito, sin SDK necesario.

La mayoría de la gente piensa que crecer en redes sociales va de tener mejor contenido.

No es así. Va de presentarse. Cada día. Sin fallar ni un solo día.

Las cuentas que ganan no son las que tienen las opiniones más inteligentes. Son las que publicaron mientras todos los demás "hoy no tenían tiempo".

Así que la pregunta real no es ¿qué publico?

Es ¿cómo publico con constancia sin que me coma la semana?

Si eres:

  • un desarrollador que construye en público,
  • un founder llevando el contenido de un SaaS,
  • o cualquiera cansado de copiar y pegar el mismo post en cinco pestañas,

esto es para ti.

El problema no son las ideas. Es la fricción.

Esto es lo que realmente implica publicar con constancia si lo haces a mano.

Escribes un tuit. Abres Reddit, lo reformateas, eliges un subreddit, publicas. Abres LinkedIn, reescribes el tono, publicas. Recuerdas que querías programarlo para mañana por la mañana en vez de ahora, así que no publicas — pones un recordatorio. El recordatorio salta mientras estás en una reunión. Lo ignoras.

Multiplica eso por cada día, en cada plataforma.

Por esto la mayoría de la gente lo deja. No porque se les acaben las cosas que decir. Porque la distribución agota.

Y si eres desarrollador y piensas "pues lo automatizo con un script", chocas rápido contra un segundo muro: cada plataforma tiene su propia API, su propio baile de OAuth, sus propios límites de uso, sus propias especificaciones de medios. La API de Twitter no se parece en nada a la de Reddit, que no se parece en nada a la de LinkedIn.

Querías automatizar la publicación. En vez de eso, te apuntaste a mantener cinco integraciones para siempre.

El replanteamiento

No tienes un problema de contenido. Tienes un problema de fontanería.

La solución no es más disciplina. Es eliminar el paso manual por completo — generar el contenido, programarlo una vez, y dejar que una API lo reparta por todas las plataformas.

Dos piezas hacen esto posible:

  • Un modelo de lenguaje para escribir publicaciones nuevas, así no reciclas las mismas tres frases.
  • Una sola API que hable con todas las plataformas, así a tu código le da igual si publica en Twitter o en Reddit.

Para lo primero, GPT-4o-mini es barato y más que suficiente. Para lo segundo, uso Zernio.

Por qué Zernio

Zernio es una REST API unificada para publicar en redes sociales. Un solo endpoint sustituye las 15 integraciones separadas que tendrías que construir y mantener por tu cuenta.

Ventajas

  • Un solo Bearer token, un solo payload JSON — publica en Twitter/X, Reddit, LinkedIn, Instagram, Facebook y 10+ plataformas más.
  • Programa, publica ahora, o sube en lote — la lógica de programación viene integrada, no tienes que escribirla tú.
  • Sin SDK. Es REST puro, así que solo necesitas la librería requests de Python.
  • Primeras 2 cuentas conectadas gratis, sin tarjeta de crédito — suficiente para lanzar todo este proyecto gratis.

Desventajas

  • Pago por cuenta a partir del plan gratuito (escalonado: más barato cuanto más creces).
  • Una cuenta por plataforma por perfil, así que las agencias con varios clientes necesitan varios perfiles.

Ideal para: desarrolladores que quieren añadir programación y publicación cruzada a un script o producto sin convertirse en ingenieros de mantenimiento de APIs a tiempo completo.

Ese último punto es todo el argumento. No estás pagando por una función que no podrías construir. Estás pagando por no volver a tocar cinco flujos de OAuth nunca más.

👉 Puedes conseguir una key gratuita de Zernio aquí: zernio.link/kevin-meneses

Construyendo la automatización

Este es el plan: un script que genera publicaciones con IA y programa cuatro de ellas a lo largo de la semana siguiente — dos en Twitter, dos en Reddit — en una sola ejecución.

Lo configuras una vez. Lo ejecutas el lunes. Te olvidas.

1. Instalar y configurar

pip install requests python-dotenv openai

Crea un archivo .env con dos claves:

ZERNIO_API_KEY=your_zernio_api_key_here
OPENAI_API_KEY=your_openai_api_key_here

Consigue la key de Zernio gratis aquí y la de OpenAI en platform.openai.com/api-keys. Después entra en Zernio, abre Accounts, y conecta tus perfiles de Twitter y Reddit.

2. Configurar los clientes

import os
import json
import random
import requests
from datetime import datetime, timedelta
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
ZERNIO_BASE = "https://zernio.com/api/v1"
HEADERS = {
    "Authorization": f"Bearer {os.getenv('ZERNIO_API_KEY')}",
    "Content-Type": "application/json",
}
TOPICS = [
    "Python automation tips",
    "productivity for developers",
    "shipping side projects",
]

3. Obtener tus cuentas conectadas

Zernio le da un ID a cada perfil conectado. Necesitas esos IDs para decirle a la API dónde publicar.

def get_accounts():
    r = requests.get(f"{ZERNIO_BASE}/accounts", headers=HEADERS)
    r.raise_for_status()
    return {a["platform"]: a["id"] for a in r.json()}

Esto devuelve un mapa limpio:

reddit   → 6a2135f22b2567671ac3e5e4
twitter  → 6a2136552b2567671ac3e855

4. Generar el contenido

Una función para tuits, otra para publicaciones de Reddit. La de Reddit le pide a GPT un JSON estructurado para obtener un título y un cuerpo limpios.

def generate_tweet(topic):
    resp = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{
            "role": "user",
            "content": f"Write one punchy tweet about {topic}. "
                       f"Max 280 characters. One emoji max, no hashtag spam.",
        }],
    )
    return resp.choices[0].message.content.strip()
def generate_reddit_post(topic):
    resp = client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{
            "role": "user",
            "content": f"Write a Reddit post about {topic}. "
                       f"Return JSON with keys 'title' and 'body'. No markdown.",
        }],
        response_format={"type": "json_object"},
    )
    return json.loads(resp.choices[0].message.content)

5. Programar una sola publicación

Esta es la llamada principal. Un mismo formato de payload, sin importar la plataforma.

def schedule_post(content, platform, account_id, when, subreddit=None):
    payload = {
        "content": content,
        "platforms": [{"platform": platform, "accountId": account_id}],
        "publishNow": False,
        "scheduledFor": when,
        "timezone": "America/New_York",
    }
    if subreddit:
        payload["platforms"][0]["subreddit"] = subreddit
r = requests.post(f"{ZERNIO_BASE}/posts", headers=HEADERS, json=payload)
    r.raise_for_status()
    return r.json()["id"]

Esa es toda la integración. Sin gestionar OAuth en tu código, sin ramificación por plataforma más allá de un campo de subreddit. Zernio normaliza el resto.

6. Programar toda la semana

Recorre cuatro franjas, repartidas en siete días, alternando plataformas.

def schedule_week(accounts):
    start = datetime.now()
    plan = [("twitter", 0), ("reddit", 2), ("twitter", 4), ("reddit", 6)]
for platform, day_offset in plan:
        when = (start + timedelta(days=day_offset)).replace(
            hour=10, minute=0, second=0, microsecond=0
        ).isoformat()
        topic = random.choice(TOPICS)
        if platform == "twitter":
            content = generate_tweet(topic)
            post_id = schedule_post(content, "twitter", accounts["twitter"], when)
        else:
            post = generate_reddit_post(topic)
            content = f"{post['title']}\n\n{post['body']}"
            post_id = schedule_post(
                content, "reddit", accounts["reddit"], when, subreddit="learnprogramming"
            )
        print(f"✅ {platform:8} | {when} | ID: {post_id}")

if __name__ == "__main__":
    print("🔗 Connecting to Zernio...")
    accounts = get_accounts()
    print("🤖 Generating content and scheduling posts...\n")
    schedule_week(accounts)
    print("\n🎉 Done. Check your Zernio dashboard.")

Ejecútalo:

python main.py

Y la salida:

🔗 Connecting to Zernio...
🤖 Generating content and scheduling posts...
✅ twitter  | 2025-06-04T10:00:00 | ID: 6a2142f2d786bdfc96598f5b
  ✅ reddit   | 2025-06-06T10:00:00 | ID: 6a2143aad786bdfc96598f6c
  ✅ twitter  | 2025-06-08T10:00:00 | ID: 6a2144bbd786bdfc96598f7d
  ✅ reddit   | 2025-06-10T10:00:00 | ID: 6a2145ccd786bdfc96598f8e🎉 Done. Check your Zernio dashboard.

Cuatro publicaciones. Una semana completa. Un solo comando.

Hazlo tuyo

El script es un esqueleto a propósito. Tres cosas que cambiar:

Temas. Edita la lista TOPICS con tu nicho. Trading, diseño, devops, crianza — lo que sea que publiques de verdad.

Frecuencia. La lista plan controla cuántas publicaciones salen y cuándo. Añade franjas, cambia las horas, pásalo a diario.

Plataformas. Zernio también gestiona LinkedIn, Instagram y Facebook. Añade una línea al plan con "linkedin" y el ID de cuenta correspondiente, y la misma función schedule_post simplemente funciona — sin ninguna integración nueva.

Desde esta base puedes construir:

  • un calendario de contenido que se rellena solo cada domingo,
  • un producto que deje a tus usuarios programar en varias plataformas,
  • un cron job en un VPS barato que hace todo esto mientras duermes.

Ideas clave

  • La constancia le gana al brillo en redes sociales, y la constancia se puede automatizar.
  • La parte difícil de la automatización no es el contenido con IA — es la fontanería entre plataformas.
  • Una API unificada elimina esa fontanería, así que un programador completo de publicaciones cabe en ~80 líneas de Python.

No necesitas un equipo de marketing. Necesitas un script y una API que se encargue de la parte aburrida.

El código completo y funcional está en GitHub: github.com/Kevinelectronics/social-media-automation.

Consigue la API key de Zernio

Para ejecutar esto, necesitarás una cuenta de Zernio. El plan gratuito cubre tus primeras 2 cuentas conectadas con acceso completo a la API y sin tarjeta de crédito — suficiente para lanzar todo este proyecto gratis.

👉 Consigue tu key gratuita de Zernio aquí

Conecta Twitter y Reddit, añade tus claves, y tendrás una semana de publicaciones programada antes de que se enfríe el café.

Preguntas frecuentes

❓ ¿Existe una API gratuita para publicar en redes sociales?
✅ Sí. El plan gratuito de Zernio incluye tus primeras 2 cuentas conectadas con publicaciones ilimitadas y acceso completo a la REST API, sin tarjeta de crédito. Es suficiente para construir y ejecutar esta automatización en Python de principio a fin.

❓ ¿Puedo programar publicaciones en varias plataformas con una sola llamada a la API?
✅ Sí. Zernio acepta un array platforms en una sola petición, así que una llamada puede apuntar a Twitter, Reddit, LinkedIn y más a la vez. Envías un solo payload JSON y ella se encarga del formato de cada plataforma.

❓ ¿Necesito un SDK para usar Zernio con Python?
✅ No. Zernio es una REST API sencilla con autenticación Bearer, así que solo necesitas la librería requests de Python. Ningún SDK de proveedor que instalar o mantener actualizado.

❓ ¿Qué plataformas soporta Zernio?
✅ Twitter/X, Reddit, LinkedIn, Instagram, Facebook, y unas diez más, incluyendo YouTube, TikTok, Threads, Pinterest y Bluesky — todas a través del mismo endpoint.

¿Buscas contenido técnico para tu empresa? Puedo ayudarte — LinkedIn · kevinmenesesgonzalez@gmail.com