Skip to content

GavinHarbus/Video2Live

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 Video2Live

Turn any video into a real Live Photo β€” on macOS, in one click.

Native Swift Β· 100% offline Β· Fully sandboxed Β· Open source (MIT)

Download macOS License Stars

⬇️ Download for macOS Β· 🌐 Product page Β· πŸ› Report a bug Β· ⭐ Star the repo


πŸ‘€ Demo

demo.mp4

Drop a video β†’ pick a 3-second moment β†’ click convert β†’ it's already in your Photos app as a real Live Photo. That's it.


✨ Why Video2Live?

You found a perfect video clip β€” a sunset, a pet doing something hilarious, a beautiful drone shot β€” and you wish it could be your iPhone wallpaper or a Live Photo to share. Apple lets you set Live Photos as wallpapers and share them with the iconic press-to-play effect, but converting a regular video into a real Live Photo is surprisingly painful:

  • 🚫 Online converters upload your private videos to unknown servers.
  • 🚫 Most "Live Photo maker" apps cost money, are buggy, or strip your audio.
  • 🚫 Manual workflows require Shortcuts hacks, command-line tools, and a lot of patience.

Video2Live fixes all of that. It's a tiny, native macOS app that uses Apple's own frameworks (AVFoundation, Photos) to produce real Live Photos with the proper QuickTime metadata β€” the same kind iPhones produce β€” and drops them straight into your Photos library. No upload, no account, no subscription, no telemetry.


πŸš€ Features

  • πŸͺ„ One-click conversion β€” drag, drop, done.
  • 🎚 Interactive timeline scrubber β€” pick the perfect 3-second segment with thumbnail preview.
  • πŸ”Š Audio preserved β€” unlike most converters, your original audio stays in the Live Photo.
  • πŸ“₯ Direct Photos library import β€” no Finder shuffle, no AirDrop dance.
  • πŸ”’ Fully sandboxed β€” runs inside the macOS App Sandbox; only sees the video you pick.
  • πŸ›‘ Photos Add-Only permission β€” Video2Live can save photos but cannot read your library.
  • πŸ“‘ 100% offline β€” zero network requests, zero analytics, zero tracking.
  • 🍎 Native Swift + SwiftUI β€” fast, lightweight, no Electron, no bundled Chromium.
  • πŸ†“ Free & open source β€” MIT licensed; audit, fork, and build it yourself.
  • πŸ“ Wide format support β€” MOV, MP4, M4V, AVI, MKV, and more.

⬇️ Install

Recommended: Download the DMG

  1. Go to the latest release.
  2. Download Video2Live.dmg.
  3. Open the DMG and drag Video2Live.app into your Applications folder.
  4. Launch it. On first run, macOS may ask you to confirm β€” go to System Settings β†’ Privacy & Security if needed.

Requirements: macOS 14.0 (Sonoma) or later. Apple Silicon and Intel Macs both supported.

Or build from source

git clone https://github.com/GavinHarbus/Video2Live.git
cd Video2Live
open Video2Live.xcodeproj

In Xcode, select your development team under Signing & Capabilities (required for Photos library access), then press Cmd + R.


🎯 Usage

  1. Load a video β€” drag and drop a video onto the app window, or click Choose File. Supports MOV, MP4, M4V, AVI, MKV, and more.
  2. Pick your moment (videos > 5s only) β€” drag the timeline scrubber to choose the 3-second segment you want as your Live Photo.
  3. Convert β€” click Convert to Live Photo. Video2Live will:
    • Extract a key frame from the middle of your selected range
    • Generate a HEIC still image with the proper Apple maker metadata
    • Export a MOV clip with the quicktime.content.identifier and still-image-time tags
    • Import the paired files into your Photos library as a Live Photo
  4. Enjoy β€” open Photos, find your new Live Photo, long-press it (or hover with Force Touch), and watch it animate. Set it as your wallpaper, share it on iMessage, or upload to Instagram.

πŸ’‘ Use cases

  • πŸ“± Wallpapers β€” turn cinematic clips into stunning iOS / iPadOS Live Wallpapers.
  • πŸ“Έ Social sharing β€” Live Photos look way cooler than static images on iMessage and Instagram.
  • 🎁 Memory archives β€” convert old .mp4 family footage into Live Photos for the Photos timeline.
  • πŸ›Ή Sports highlights β€” slow, looping moments make great Live Photos.
  • 🐢 Pet content β€” your dog's perfect 3 seconds, immortalized.
  • 🎨 Creators β€” build wallpaper packs to sell or share.

πŸ§ͺ How It Works

Step What happens
Analyze Reads video duration, resolution, and track info via AVURLAsset
Extract Frame Uses AVAssetImageGenerator to capture a precise frame at the midpoint of your selection
Write HEIC Creates a HEIC image with kCGImagePropertyMakerAppleDictionary containing the shared content identifier UUID
Write MOV Exports the clip with com.apple.quicktime.content.identifier and com.apple.quicktime.still-image-time metadata so Photos recognizes it as a Live Photo pair
Import Uses PHAssetCreationRequest to add the HEIC + MOV pair to your Photos library

A Live Photo is just a paired HEIC + MOV with matching metadata. Video2Live handles the entire pipeline correctly β€” frame extraction, metadata embedding, and Photos import β€” in one click.


πŸ—‚ Project Structure

Video2Live/
β”œβ”€β”€ Video2LiveApp.swift             # App entry point
β”œβ”€β”€ Models/
β”‚   β”œβ”€β”€ ConversionState.swift       # State machine for the conversion flow
β”‚   └── VideoProject.swift          # Observable model holding video state
β”œβ”€β”€ Views/
β”‚   β”œβ”€β”€ ContentView.swift           # Root view with state-based switching
β”‚   β”œβ”€β”€ DropZoneView.swift          # Drag-and-drop + file picker
β”‚   β”œβ”€β”€ VideoPreviewView.swift      # AVPlayerView wrapper
β”‚   β”œβ”€β”€ TimelineScrubberView.swift  # Thumbnail strip with range selector
β”‚   └── ConvertButton.swift         # Convert button + progress indicator
β”œβ”€β”€ Services/
β”‚   β”œβ”€β”€ VideoAnalyzer.swift         # Video metadata analysis
β”‚   β”œβ”€β”€ HEICWriter.swift            # Key frame extraction + HEIC writing
β”‚   β”œβ”€β”€ MOVWriter.swift             # Video trimming + QuickTime metadata
β”‚   β”œβ”€β”€ LivePhotoGenerator.swift    # Conversion pipeline orchestrator
β”‚   └── PhotosImporter.swift        # Photos library import
└── Utilities/
    β”œβ”€β”€ MetadataConstants.swift     # Metadata key constants
    └── Errors.swift                # Error types

πŸ” Permissions & Privacy

Video2Live requests the absolute minimum:

  • Photos Library (Add Only) β€” to save the generated Live Photo. Cannot read your existing library.
  • User-Selected File Access (Read Only) β€” to read the single video file you pick.

The app runs inside the macOS App Sandbox and never makes a network request. There is no analytics SDK, no telemetry, no crash reporter, nothing. Your videos never leave your Mac.

Read the full privacy policy on the product page.


πŸ“¦ Build a DMG yourself

./scripts/build-dmg.sh

This archives, exports, and creates build/Video2Live.dmg with a drag-to-Applications layout β€” ready to share.


πŸ›Ÿ Troubleshooting

  • "Photos library access was denied" β†’ System Settings β†’ Privacy & Security β†’ Photos β†’ enable Video2Live.
  • Conversion succeeded but the Live Photo doesn't animate β†’ Make sure the source has at least one video track. Pure-audio files or some screen recordings may not work.
  • Metadata seems missing β†’ In rare cases, passthrough export strips custom tags. The app automatically falls back to AVAssetWriter when this is detected.
  • App is "damaged" / unsigned warning β†’ Right-click Video2Live.app β†’ Open β†’ confirm. Or run xattr -cr /Applications/Video2Live.app.

Still stuck? Open an issue β€” happy to help.


πŸ™Œ Support the project

If Video2Live saved you time, please:

  • ⭐ Star this repo β€” it really helps others discover it.
  • 🐦 Share it on X / 小纒书 / Threads β€” tag with #Video2Live.
  • πŸ› File issues and feature requests.
  • πŸ”§ Pull requests welcome β€” see Project Structure to get oriented.

Want more native, privacy-first tools for creators? Check out the rest of Gavin Schnee Studio.


πŸ“„ License

MIT Β© Gavin Schnee Studio

About

🎬 macOS app to convert videos (MOV/MP4/MKV...) into real Apple Live Photos in one click. Native Swift, fully offline, sandboxed, audio preserved. Free & open source.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors