Guida

Come Pubblicare Automaticamente YouTube Shorts via API

Gli YouTube Shorts generano miliardi di visualizzazioni ogni giorno, ma pubblicarli tramite YouTube Studio e noioso, soprattutto se gestisci piu canali o vuoi fare cross-posting su TikTok e Reels. Con l'API per social media di Upload-Post, puoi caricare e programmare YouTube Shorts con una singola chiamata API. Niente problemi con OAuth, niente quote da gestire.

Perché automatizzare il caricamento di YouTube Shorts

Gli YouTube Shorts sono attualmente il modo piu veloce per far crescere un canale. L\'algoritmo spinge aggressivamente i contenuti verticali brevi, e i creator che pubblicano Shorts con costanza vedono una crescita di iscritti che richiederebbe mesi con i soli video lunghi.

Il problema e il processo di upload. YouTube Studio richiede di effettuare il login, compilare i campi dei metadati, impostare la visibilita, aggiungere i tag e premere pubblica. Moltiplica questo per cinque Shorts a settimana su due canali, e stai spendendo ore in lavoro ripetitivo.

La YouTube Data API (v3) ufficiale e un\'opzione, ma comporta una notevole complessita. Devi creare un progetto Google Cloud, configurare le schermate di consenso OAuth 2.0, gestire il rinnovo dei token e amministrare una quota di upload giornaliera che si resetta in modo imprevedibile. Per la maggior parte degli sviluppatori, e piu infrastruttura di quanto il compito richieda.

Upload-Post racchiude tutto questo in una singola richiesta POST. Invii il tuo video, imposti i metadati, e l\'API gestisce autenticazione, validazione del formato e consegna a YouTube. La stessa richiesta puo anche pubblicare contemporaneamente su TikTok e Instagram Reels.

Caricare un YouTube Short via API

L\'endpoint di upload accetta un form multipart con il tuo file video e i metadati. Affinche un video venga trattato come YouTube Short, deve essere verticale (aspect ratio 9:16) e sotto i 60 secondi. Ecco un esempio cURL:

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorizzazione: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=This cooking hack saves 20 minutes every night #shorts #cooking" \
  -F "platform[]=youtube" \
  -F "youtube_description=Quick kitchen tip that changed my meal prep routine. Full recipe on my channel." \
  -F "youtube_tags=cooking,kitchen hack,meal prep,shorts" \
  -F "youtube_visibility=public"

Quando l\'upload riesce, l\'API restituisce una risposta con i dettagli del job:

{
  "success": true,
  "job_id": "yt_short_abc123",
  "platform": "youtube",
  "status": "processing"
}

Il campo video accetta un percorso di file locale (con prefisso @ in cURL) o un URL pubblico. Il campo title corrisponde al titolo del video YouTube. Includere #shorts nel titolo non e strettamente necessario per il rilevamento degli Shorts (YouTube usa l\'aspect ratio e la durata), ma puo aiutare con la visibilita.

Parametri specifici di YouTube

Oltre ai campi standard video, title, user e platform[], l\'API espone diverse opzioni specifiche per YouTube:

Parametro Valori Descrizione
youtube_description stringa La descrizione del video mostrata sotto il player. Supporta link e interruzioni di riga. Se omesso, viene usato il campo title principale.
youtube_tags stringa separata da virgole Tag per la ricerca e la scoperta su YouTube. Esempio: "cooking,recipe,shorts". YouTube consente fino a 500 caratteri totali.
youtube_visibility "public", "private", "unlisted" Controlla chi può vedere il video. Predefinito: "pubblico" se omesso.
youtube_shorts true / false Forza il video ad essere trattato come Short, anche se non soddisfa i criteri di rilevamento automatico. Utile per casi limite come i video quadrati (1:1).
youtube_category_id intero ID della categoria YouTube. Valori comuni: 22 (Persone e Blog), 24 (Intrattenimento), 26 (How-to e Stile), 28 (Scienza e Tecnologia).
youtube_playlist_id stringa Aggiunge automaticamente il video caricato a una playlist specifica. Passa l\'ID della playlist dal tuo canale YouTube.
youtube_made_for_kids true / false Flag di conformità COPPA. Impostalo su true se il contenuto è destinato ai bambini. Questo disabilita i commenti e la pubblicità personalizzata sul video.

Il flag youtube_shorts è particolarmente utile quando vuoi garantire il trattamento come Short. Normalmente, YouTube rileva gli Shorts in base all\'aspect ratio e alla durata, ma se il tuo video e esattamente al confine (es. formato quadrato, o molto vicino ai 60 secondi), impostare esplicitamente youtube_shorts=true rimuove l\'ambiguita.

Schedule Shorts for optimal times

Pubblicare all\'orario giusto conta. Gli YouTube Shorts ottengono la maggiore trazione iniziale durante le prime ore dopo la pubblicazione, quindi far coincidere l\'upload con le ore di attivita del tuo pubblico da all\'algoritmo un segnale piu forte.

Per programmare uno Short, aggiungi scheduled_date (formato ISO-8601) e timezone (formato IANA) alla tua richiesta:

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorizzazione: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=5 AM routine that actually works #shorts #productivity" \
  -F "platform[]=youtube" \
  -F "youtube_visibility=public" \
  -F "scheduled_date=2025-09-15T08:00:00Z" \
  -F "timezone=America/New_York"

Per una programmazione senza intervento manuale, usa il sistema di coda. Configura i tuoi slot di pubblicazione preferiti una sola volta, poi aggiungi contenuti con add_to_queue=true. L\'API assegna automaticamente ogni video al prossimo slot disponibile. Questo e ideale per workflow batch in cui carichi una settimana di contenuti in una sessione. Consulta la guida completa alla programmazione per i dettagli sulla configurazione della coda.

I migliori orari di pubblicazione per gli YouTube Shorts variano per nicchia, ma i pattern generali mostrano buone prestazioni tra le 7:00 e le 9:00 ora locale (scrolling mattutino), dalle 12:00 alle 14:00 (pausa pranzo) e dalle 19:00 alle 22:00 (relax serale). Usa il calendario delle festivita per i social media per allineare i tuoi Shorts con date e eventi di tendenza.

Cross-postare gli Shorts su TikTok e Reels

Un video verticale sotto i 60 secondi funziona su YouTube Shorts, TikTok e Instagram Reels. Invece di caricare lo stesso file tre volte attraverso tre interfacce diverse, invialo una volta e lascia che l\'API lo distribuisca:

curl -X POST https://api.upload-post.com/api/upload \
  -H "Autorizzazione: Apikey your-api-key-here" \
  -F "[email protected]" \
  -F "user=mybrand" \
  -F "title=Wait for it... #shorts" \
  -F "tiktok_title=Wait for it... #fyp #viral" \
  -F "instagram_title=Wait for it... Full video on YouTube (link in bio)" \
  -F "platform[]=youtube" \
  -F "platform[]=tiktok" \
  -F "platform[]=instagram" \
  -F "media_type=REELS" \
  -F "youtube_visibility=public" \
  -F "privacy_level=PUBLIC" \
  -F "add_to_queue=true"

Nota alcuni aspetti: media_type=REELS indica a Instagram di pubblicare come Reel (non come post nel feed). Ogni piattaforma ottiene la propria didascalia tramite tiktok_title e instagram_title, mentre il campo principale title va su YouTube. Il flag add_to_queue=true programma tutti e tre in base alle impostazioni della coda.

Per un approfondimento sui workflow multi-piattaforma, consulta la guida al cross-posting. Se stai riutilizzando video YouTube piu lunghi come Shorts, la guida al riutilizzo copre l\'intera pipeline di taglio e distribuzione.

Caricamento in batch degli Shorts con Python

Quando hai una cartella piena di Shorts pronti, l'SDK Python rende il caricamento in batch semplice. Installa prima l\'SDK:

pip install upload-post

Poi scorri i tuoi video e programma ciascuno a intervalli sfalsati:

import os
import glob
from datetime import datetime, timedelta
from upload_post import UploadPostClient

client = UploadPostClient(api_key="your-api-key-here")

video_folder = "/path/to/youtube-shorts"
videos = sorted(glob.glob(os.path.join(video_folder, "*.mp4")))

# Start scheduling from tomorrow at 8 AM Eastern
base_time = (datetime.now() + timedelta(days=1)).replace(
    hour=8, minute=0, second=0, microsecond=0
)

print(f"Found {len(videos)} Shorts to schedule")

for i, video_path in enumerate(videos):
    publish_time = base_time + timedelta(hours=3 * i)  # Every 3 hours
    filename = os.path.basename(video_path)
    title = filename.replace(".mp4", "").replace("-", " ").replace("_", " ")

    try:
        response = client.upload_video(
            video_path=video_path,
            title=f"{title} #shorts",
            user="mybrand",
            platforms=["youtube"],
            scheduled_date=publish_time.isoformat(),
            timezone="America/New_York",
            youtube_visibility="public",
            youtube_tags="shorts,daily",
            youtube_shorts=True,
            async_upload=True
        )
        job_id = response.get("job_id", "in attesa")
        print(f"[{i+1}/{len(videos)}] Scheduled {filename} for {publish_time} (Job: {job_id})")
    except Exception as e:
        print(f"[{i+1}/{len(videos)}] Failed: {filename} - {e}")

print("Tutti i Shorts programmati!")

Questo script distanzia ogni Short di tre ore, dando a ciascuno il tempo di guadagnare trazione iniziale prima che il successivo vada online. Regola il timedelta per adattarlo alla cadenza che preferisci. Puoi anche passare platforms=["youtube", "tiktok", "instagram"] per fare cross-posting di ogni Short automaticamente.

Per operazioni video in blocco su larga scala, la guida al caricamento in blocco copre pattern avanzati come upload paralleli, logica di retry e tracciamento dello stato tramite webhook.

Automazione no-code con n8n

Se preferisci workflow visuali alla scrittura di codice, n8n e un\'ottima scelta. Una configurazione comune e monitorare una cartella Google Drive per nuovi video e pubblicarli automaticamente come YouTube Shorts ogni volta che appare un file.

Il workflow ha tre nodi:

  1. Google Drive Trigger: si attiva quando un nuovo file MP4 viene aggiunto alla cartella "Shorts".
  2. Richiesta HTTP: invia un POST multipart/form-data a https://api.upload-post.com/api/upload con il video, il titolo derivato dal nome del file, platform[]=youtube e add_to_queue=true.
  3. Notifica Slack/Email: conferma che l\'upload e riuscito o avvisa in caso di errore.

Abbiamo template pronti all\'uso che coprono i workflow per YouTube Shorts:

Esplora tutti i template n8n disponibili per altre idee. Puoi anche creare automazioni simili con Make.com.

Requisiti per YouTube Shorts

Prima di caricare, assicurati che i tuoi video rispettino le specifiche di YouTube per gli Shorts. Caricare un file che non soddisfa questi requisiti causera un upload fallito o il video verra trattato come upload standard (non Short).

Requisito Specifica
Durata massima 60 secondi
Rapporto d\'aspetto 9:16 (verticale). Anche quadrato (1:1) funziona ma il verticale e consigliato.
Risoluzione consigliata 1080x1920 pixel
Formati supportati MP4, MOV, WebM
Dimensione massima file 256 GB (limite YouTube), anche se gli Shorts piu brevi sono tipicamente sotto i 50 MB
Codec H.264 consigliato. H.265 (HEVC) è supportato.
Frequenza dei fotogrammi 30 o 60 fps consigliati

Se i tuoi video sorgente sono in formato orizzontale, l'API FFmpeg puo ritagliarli e ridimensionarli in verticale nel cloud prima della pubblicazione. Questo e particolarmente utile quando si riutilizzano video lunghi come Shorts.

Domande frequenti

Posso caricare anche video YouTube regolari (lunghi)?

Si. Lo stesso endpoint POST /api/upload gestisce sia gli Shorts che i video regolari. La differenza e automatica: i video sotto i 60 secondi in formato verticale vengono trattati come Shorts, mentre tutto il resto viene pubblicato come video YouTube standard. Puoi anche usare il parametro youtube_shorts=true per forzare il trattamento come Short, o ometterlo per lasciare che YouTube decida in base alle dimensioni e alla durata del file.

Funziona con più canali YouTube?

Si. Ogni canale YouTube collegato e rappresentato da un valore user diverso nel tuo account Upload-Post. Colleghi i canali tramite la dashboard, e poi specifichi su quale canale pubblicare passando il parametro user corrispondente. Puoi caricare lo stesso Short su piu canali effettuando richieste separate con valori user diversi.

E la monetizzazione degli Shorts?

Upload-Post non influisce sullo stato della tua monetizzazione. I video caricati tramite l\'API vengono trattati in modo identico ai video caricati tramite YouTube Studio. Se il tuo canale fa parte del YouTube Partner Program, gli Shorts saranno idonei per il programma di condivisione dei ricavi degli Shorts come qualsiasi altro Short. Il flag youtube_made_for_kids e rilevante qui: impostandolo su true si disabilita la pubblicita personalizzata, il che influisce sui ricavi.

Quali sono le differenze tra Shorts, Reels e TikTok?

Tutti e tre sono formati di video verticali brevi, ma hanno vincoli diversi. Gli YouTube Shorts hanno un limite di 60 secondi, gli Instagram Reels possono durare fino a 15 minuti, e TikTok consente fino a 10 minuti. Per il cross-posting, mantieni i tuoi video sotto i 60 secondi cosi si qualificano come Shorts su YouTube. Anche le didascalie differiscono: TikTok favorisce hashtag di tendenza e tono informale, mentre gli YouTube Shorts beneficiano di titoli ricercabili e descrizioni ricche di parole chiave. Usa i campi titolo specifici per piattaforma (tiktok_title, instagram_title) per personalizzare ogni didascalia. Consulta la guida alla programmazione TikTok per consigli specifici su TikTok.

Esiste un piano gratuito?

Si. Upload-Post include un piano gratuito con 10 upload al mese, e tutte le funzionalita (programmazione, coda, cross-posting, parametri specifici YouTube) sono disponibili su ogni piano, compreso quello gratuito. Non serve carta di credito per iniziare. Se hai bisogno di piu volume, i piani a pagamento scalano a prezzi accessibili. Rispetto a strumenti come Hootsuite o Buffer, l\'approccio API-first ti da molta piu flessibilita a un costo inferiore.

Start automatically publishing YouTube Shorts today

Carica, programma e fai cross-posting degli Shorts su YouTube, TikTok e Instagram con una singola chiamata API. Configura la tua coda e lascia che il sistema faccia il resto.

Nessuna carta di credito richiesta. 10 upload gratuiti inclusi.