iArt.ai
AI motion graphics software — the After Effects alternative anyone can use. Create animations and explainer videos from a text prompt in minutes.
Raw footage in, finished episode, trailer, reels and thumbnails out. Free and open source.
MediaGitHub @dattaeswarOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Turn raw multi-camera podcast footage into a graded, mastered episode, trailer, reels and thumbnails from one YAML file.
Loading the full README.
Read the full README ↗Turn raw multi-camera podcast footage into a finished episode, trailer, vertical reels and thumbnails, from one YAML file.
You film two people on two (or more) cameras. podcast-forge syncs the cameras, finds who is speaking, cuts the dead air and fillers, switches cameras like a human editor would, colour-matches everything, masters the audio to −14 LUFS, drops in photos and stat cards when topics come up, and exports an FCP7 XML so you can fine-tune in Premiere / Resolve / Final Cut.
It started as the pipeline behind the Datta Talks podcast, and is open so anyone can edit their own show with their own look, photos, music and rules.
raw cameras ──► sync ──► speech + speakers ──► tighten cuts ──► multicam plan ──► grade ──► overlays ──► master
│ │
transcript ─► photos / stats / chapters on the words spoken ├─► trailer (cold open)
├─► 9:16 reels
└─► thumbnails
Website: dattaeswar.github.io/podcast-forge (features, uses, 20-second demo video)
| Multicam switching | Wide, close-up and tight punch-in per camera; never the same look twice in a row (so every jump cut is hidden), listener reaction shots after long monologues, J-cuts, slow sub-pixel push-ins. |
| Tight pacing | Long pauses shortened, isolated "aa / mm" and false starts removed, optional 1.1× speed-up with pitch preserved. |
| Voice-first audio | Uses the camera with your mic audio. High-pass, denoise, de-ess, compress, limit, then two-pass loudness to −14 LUFS / −1.5 dBTP. Music ducks under speech. |
| Colour | Every camera matched to a reference camera, then one shared look (studio_warm, neutral, cinematic, punchy, or your own .cube). Exported as 3D LUTs. |
| Photo circles | A photo appears in an animated ring beside the speaker at the moment its topic is spoken (matched on the transcript), and the shot underneath is reframed so the circle never covers a face. |
| Stat cards, kinetic text, name tags, chapter tags | Animated lower-thirds, count-up numbers, word-by-word text. |
| Trailer + title card | Hand-picked hooks cut into a cold open, followed by an animated title card. |
| Reels / Shorts | 9:16 re-frames of any hook or time range, centred on whoever speaks, with hook title, CTA and logo placed above the app UI. |
| Thumbnails | YouTube + reel covers with both people cut out, headline in a safe zone, topic photos, banner, logo and credit line. |
| Any language | Transcribe in any Whisper language. pf text renders Telugu / Hindi / Tamil / Arabic… with correct shaping for titles and credits. |
| Hand-off | FCP7 XML of the multicam cut, youtube_chapters.txt, LUTs, trailer preview. |
Requirements: Python 3.10+, FFmpeg (full build, with rubberband) on your PATH.
git clone https://github.com/dattaeswar/podcast-forge
cd podcast-forge
pip install . # core (or: pip install "git+https://github.com/dattaeswar/podcast-forge")
pip install ".[transcribe]" # + faster-whisper (word timestamps for photo placement)
pip install ".[thumbs]" # + rembg (cut people out for thumbnails)
pf doctor # checks everything
No GPU required. Hardware video decode is used when available (hwaccel: auto).
pf init my-episode && cd my-episode # creates project.yaml + folders
# 1. copy your footage into footage/ and describe it in project.yaml (cameras, speakers)
pf sheet # gridded contact sheets -> read head positions, or:
pf heads # auto-detect faces (downloads a 230 KB model once)
pf run # everything, skipping finished stages
Outputs land in out/: <Name>_Master.mp4, trailer_preview.mp4, youtube_chapters.txt, timeline_episode.xml, reels/*.mp4, thumbnails/*.jpg.
Or run stage by stage and inspect each one:
pf sync # align cameras by audio (GCC-PHAT), reports offset / drift
pf speech # speech activity
pf speakers # who talks when (voice model + on-camera motion)
pf transcribe # word-level transcript
pf search "revenue|funding" # find the time something was said, to place photos / hooks
pf grade # match cameras, build LUTs, work/grade_preview.jpg
pf edl # plan cuts + shots, write timeline XML
pf build master # render everything (or: pf build trailer | episode)
pf reels # 9:16 cuts
pf thumbs # thumbnails
One project.yaml describes the episode. The minimum is two cameras and two speakers:
cameras:
- {name: wide, file: footage/a.mp4, master: true}
- {name: side, file: footage/b.mov}
audio: {source: side} # the camera that heard the wireless mics
speakers:
- {id: host, name: Alex Rivera, role: Host, side: R, seed: [[12, 22]]}
- {id: guest, name: Sam Carter, role: Founder, side: L}
Everything else (photos on topics, chapters, music, trailer hooks, reels, thumbnails, colour, pacing) is optional and documented with comments in examples/project.example.yaml.
This is the beginning of the README. Read the rest at the original. Read the full README ↗