Hasty Briefsbeta

Bilingual

Reconstructing a Mixbook movie from its data API with FFmpeg

4 days ago
  • #Video Reconstruction
  • #ffmpeg Techniques
  • #Reverse Engineering
  • Mixbook movies are not pre-rendered video files but are dynamically generated in the browser from JSON definitions containing Lottie animations, transitions, and music.
  • The absence of a download button is due to the architecture where videos are composed frame-by-frame on playback, requiring users to reconstruct the movie manually if they want a downloadable file.
  • Reverse engineering involved accessing a separate 'Memory Explorer' app to find the API endpoint that returns the movie's JSON definition.
  • The JSON includes details like photos (as assets), music track, segments, and transitions, allowing reconstruction using tools like ffmpeg.
  • Reconstruction steps: pull raw materials (photos and music), create a slideshow with crossfades, add Ken Burns motion using zoompan with a single-frame trick, and overlay text via PNGs when drawtext is unavailable.
  • Lessons: grep minified code for feature keywords, treat data APIs as interfaces, understand zoompan's stutter fix, and bypass missing ffmpeg filters with alternative methods like Pillow for text rendering.