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.