← Tutte le idee Intelligenza artificiale

Vid.AI

Da un'idea o un copione a un video breve con voce, immagini e montaggio

Incasso mensile: 46.929 USD (fonte indicata nella scheda)

Cosa fa

Trasforma un'idea o un copione in un video breve per TikTok, Reels e Shorts: l'AI crea la voce, le immagini e il montaggio, senza saper usare un editor video.

Come guadagna

Abbonamenti da 39, 99 e 199 $ al mese, oltre 700 abbonati, 1,6 milioni di dollari incassati in totale. Cresciuta con pubblicità su Meta e influencer. Team di 2-5 persone senza investitori. Incassi verificati con Stripe.

Rendilo tuo

  • Per chi vende online: video del prodotto in italiano da 3 foto.
  • Ricette in 30 secondi per chi ha un blog di cucina.
  • Video per agenti immobiliari dalle foto della casa.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Clip Pronta": un'app che trasforma un'idea o un copione in un video verticale di 30-60 secondi con voce AI, immagini, sottotitoli animati e musica. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con esempi e prezzi
2. Registrazione
3. Nuovo video: idea o copione, voce, stile delle immagini
4. Anteprima a scene con modifiche veloci
5. I miei video

Stile: giovane e dinamico: sfondo #0F0F14, giallo neon #FDE047, azzurro #38BDF8, carattere "Inter" in grassetto, anteprime verticali. Nessuna immagine generica di stock.

Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.

2. Database, account e sicurezza

Collega il progetto a Supabase e attiva la registrazione con email e password.

Crea queste tabelle:
- "video": idea, copione, voce, stile, stato, file finale
- "scene": video, ordine, frase, immagine, durata
- "crediti": saldo e movimenti dell'utente

Regole di sicurezza obbligatorie:
- ogni utente vede solo i suoi video
- i file sono privati con link temporanei
- i crediti si scalano solo dal server

Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.

3. Copione, voce, immagini e sottotitoli

Se l'utente scrive solo un'idea, Claude prepara il copione con un gancio forte all'inizio. Il copione si divide in frasi; ogni frase diventa una scena.

La voce si crea con ElevenLabs chiedendo anche i tempi di ogni parola: servono per i sottotitoli animati parola per parola, quelli gialli e grandi tipici dei video virali. Per ogni scena si genera un'immagine nello stile scelto. Il montaggio finale lo fa Remotion su un server: immagini con movimento, sottotitoli, musica libera da diritti.

Il credito si scala solo quando il video è pronto: se qualcosa va storto, non si paga.

4. Modifiche veloci prima dell'esportazione

Nell'anteprima si cambia una frase (si rigenerano solo la sua voce e i suoi sottotitoli), si rigenera un'immagine che non piace, si cambia la musica.

Esportazione in 9:16 a 1080p, con il testo per la descrizione e gli hashtag proposti.

5. Pagamenti con Stripe

Aggiungi pacchetti di crediti: 20 video a 15 €, 60 video a 39 €. Ogni nuovo utente riceve 2 crediti gratis. Ogni video fino a 60 secondi costa un credito. Mostra sempre in alto quanti crediti restano e, quando finiscono, un riquadro per comprarne altri.

A pagamento riuscito il webhook aggiunge i crediti del pacchetto con la funzione aggiungi_crediti.

Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.

6. Controlli specifici di questo progetto

Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. Crediti: fai fallire apposta la creazione di un video (es. testo vuoto) e controlla che il credito non venga scalato.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Sottotitoli parola per parola

ElevenLabs restituisce i tempi di ogni carattere; da questi si ricavano i tempi di ogni parola, poi si raggruppano a 3 parole per riga.

type Allineamento = { characters: string[]; character_start_times_seconds: number[]; character_end_times_seconds: number[] };
type Parola = { testo: string; inizio: number; fine: number };

export function parole(a: Allineamento): Parola[] {
  const out: Parola[] = [];
  let attuale: Parola | null = null;
  a.characters.forEach((c, i) => {
    if (c.trim() === "") { if (attuale) out.push(attuale); attuale = null; return; }
    if (!attuale) attuale = { testo: "", inizio: a.character_start_times_seconds[i], fine: 0 };
    attuale.testo += c;
    attuale.fine = a.character_end_times_seconds[i];
  });
  if (attuale) out.push(attuale);
  return out;
}

export function righe(p: Parola[], perRiga = 3) {
  const out: Parola[] = [];
  for (let i = 0; i < p.length; i += perRiga) {
    const gruppo = p.slice(i, i + perRiga);
    out.push({ testo: gruppo.map((x) => x.testo).join(" ").toUpperCase(), inizio: gruppo[0].inizio, fine: gruppo.at(-1)!.fine });
  }
  return out;
}

Scalare il credito solo a video pronto

Una funzione che toglie un credito e segna il video come pronto nello stesso momento: o tutte e due le cose, o nessuna.

create function video_pronto(p_video uuid, p_file text)
returns void language plpgsql security definer set search_path = public as $
declare v_utente uuid;
begin
  update video set stato = 'pronto', file = p_file
  where id = p_video and stato <> 'pronto'
  returning utente_id into v_utente;
  if v_utente is null then return; end if;          -- già pronto: niente doppio addebito
  update profili set crediti = crediti - 1 where id = v_utente and crediti > 0;
  if not found then raise exception 'crediti finiti'; end if;
end $;
revoke execute on function video_pronto from public, anon, authenticated;   -- solo dal server

Pezzi comuni a tutti i progetti

Glossario

Storage
Lo spazio di Supabase dove si salvano i file, come foto e audio, con le sue regole di accesso.
Remotion
Una libreria che crea video scrivendo componenti React: ogni fotogramma è una pagina web.