← Back to portfolio
Online training · Proof of concept for video with an AI avatar

I automated the production of a course video, from the URL of its course page to the final file

The business

An online training platform with one page for each course in the catalog. Each page has a promotional video in which a presenter tells the camera what the course is about and why it is worth it.

Those videos had already been made with AI, but about a year and a half ago. Video generation was at a different point back then and it showed in the result: it didn't have the quality the academy wants to show on its website today. They wanted to renew them, taking advantage of how much the technology has improved since.

This was done as a proof of concept: one video, on a real course page, to see what the system could do. Since the idea was to renew the whole catalog, I built the complete automation from the start instead of just enough for that one piece.

The problem

  • The published videos gave away the technology they were made with. A video that looks mediocre on a course page works against the sale.
  • Writing each course's script by hand, one by one and for the whole catalog, is slow and ends up sounding the same in all of them.
  • The character didn't stay the same from one scene to the next, and the lip sync didn't match either. Those are the two things that first give away that a video is generated, and the two the client cared about most.
  • Until recently you could only put one avatar in a scene, so there was no way to put together a scene with two characters.

What I built

The script comes from the course page itself

You give the system the URL of the course page. From there it reads the actual content of the page and writes the script with a sales angle, without making up anything the course doesn't offer. The client reads it and approves it before a single second of video is generated: if something doesn't fit, you change the text and that's it.

From script to scenes, and from scenes to video

The script is broken down into scenes. For each one the image is generated first and, from it, the video, with its motion description: what the camera does and how the presenter moves in the shot.

The same character from start to finish

The presenter is recognizably the same in every scene, even as the setting and the shot change. It was the requirement the client put ahead of everything else.

Voice and lips that match

The voiceover is generated in Spanish with the chosen voice and synced to the lips. The pronunciation was tuned word by word with a custom dictionary, the pace of the speech was adjusted so it doesn't sound slow, and the audio of the final video was cleaned up.

A final scene with two avatars

The video closes with a scene in which two avatars of the presenter appear at the same time. Until very recently this couldn't be done: each scene allowed only one avatar.

One finished video for each course page

The system chains all the scenes together, lines up the audio and delivers a single 16:9 file ready for the course page and for social media.

Under the hood: Claude · Veo 3.1 · ElevenLabs · Sync · ffmpeg · command-line tool in Node

The result

  • The test video came out complete and end to end: it was given a URL and returned a finished file, without writing the script by hand or editing anything along the way.
  • Character consistency and lip sync are the two points that hold up best, which was exactly where the previous videos failed.
  • The scene with two avatars worked, and until recently it couldn't be done.
  • We confirmed that going up to 1080p is possible and decided not to: it makes each video more expensive without adding anything to the real use, which is the course page and social media.
  • The automation is built and tested end to end, so producing the rest of the catalog means passing in one URL after another. And it works just the same for any other academy that has published course pages.

What I needed from the client

  • The URL of the course page. No other material: the script comes from there.
  • An image of the presenter and the voice they wanted to use.
  • A little of the client's time to read and approve the script before generating, and to give me her opinion on the result.
  • No technical staff was needed on their side, no touching the website, and nothing had to stop. The course page stayed published as it was while the video was being produced.

Do you have a similar case?

30 minutes by video call. If I don't see a clear opportunity, I'll tell you.

Let's talk for 30 min, free

More cases like this

See all projects
Media and content · AI automation

Automated Social Media Publishing

An AI news profile publishes its daily carousel on Instagram and LinkedIn without anyone touching it.

Claude API · gpt-image-1 · Python
Data · Analysis

Competitor Analysis with AI

Find your competitors' weak points and make better decisions with real data.

Claude API · Apify