Skip to content

CasperOng/FrameExtractionTool

Repository files navigation

FrameExtractionTool-iOS-ClearDark-1024x1024@1x

Frame Extraction Tool

A powerful iOS app for extracting high-quality frames from videos with precision timing control.

Features

🎬 Video Selection - Choose videos from your photo library
πŸ“ Frame Marking - Mark specific frames during playback
πŸ’Ύ High-Quality Extraction - Extract frames at original video quality
πŸ“š Custom Album Support - Save extracted frames to custom photo albums
πŸ—‘οΈ Smart Delete - Remove frames from both app AND Photos library
πŸ“± Long-Press & Multi-Select - Advanced deletion with haptic feedback
✨ Modern UI - Built with SwiftUI and iOS design guidelines

πŸ†• What's New in v1.5.1

πŸ—‘οΈ Complete Photo Library Integration

  • Smart Delete: Deleting frames now removes them from BOTH the app AND your Photos library
  • No More Clutter: No orphaned photos left behind in your camera roll
  • Seamless Experience: Automatic photo library cleanup with proper permissions

πŸ“± Enhanced Delete Features

  • Long-Press Delete: Hold any frame to delete it instantly (with confirmation)
  • Multi-Select Mode: Tap "Select" to choose multiple frames for bulk deletion
  • Visual Feedback: Blue selection overlays and haptic feedback for all operations
  • Smart Controls: Context-aware toolbar that adapts to your selection

⚑ Performance & Reliability

  • Background Deletion: Photo library cleanup happens asynchronously
  • Error Handling: Graceful handling of already-deleted or missing assets
  • Permission Management: Automatic photo library write access requests

⚠️ Developer Account Status

Important Notice: This project is developed without an Apple Developer Program membership. This means:

  • ❌ No App Store Distribution - The app cannot be published to the App Store
  • ❌ No Code Signing - All builds are unsigned and for development/testing only
  • ❌ No TestFlight - No distribution through Apple's beta testing platform
  • βœ… Open Source - Full source code available for learning and contribution
  • βœ… Local Development - Can be built and run locally using Xcode
  • βœ… CI/CD Builds - Automated unsigned builds available through GitHub Actions and CodeMagic

If you want to use this app on your device, you'll need to build it yourself using Xcode or use the unsigned IPA files for development purposes.

Screenshots

Introduction Screen
Simulator Screenshot - iPhone 14 Pro - 2025-08-14 at 22 16 18 Simulator Screenshot - iPhone 14 Pro - 2025-08-14 at 22 16 24 Simulator Screenshot - iPhone 14 Pro - 2025-08-14 at 22 16 29

Working Screen
Simulator Screenshot - iPhone 14 Pro - 2025-08-14 at 22 16 36 Simulator Screenshot - iPhone 14 Pro - 2025-08-14 at 22 16 41 Simulator Screenshot - iPhone 14 Pro - 2025-08-14 at 22 42 04 Simulator Screenshot - iPhone 14 Pro - 2025-08-14 at 22 42 59 Simulator Screenshot - iPhone 14 Pro - 2025-08-14 at 22 45 22 Simulator Screenshot - iPhone 14 Pro - 2025-08-14 at 22 45 26

Words from the Developer

This is a very barebone app as a side project of mine. The main goal of this app is to let me know how AI makes app, play around with the SwiftUI, and play with the Icon Composer. This app is very heavily developed using AI. Bugs are expected. Feel free to open a pull request and help me fix :D

Requirements

  • iOS 17.0 or later
  • iPhone or iPad
  • Photo library access permission

Installation

Note: Since this project doesn't have an Apple Developer Program membership, the app is not available on the App Store and cannot be code signed for general distribution.

Option 1: Build from Source (Recommended)

  1. Clone this repository
  2. Open FrameExtractionTool.xcodeproj in Xcode
  3. Connect your iOS device or use the simulator
  4. Build and run directly from Xcode

Option 2: Unsigned IPA Installation

For advanced users with development tools

  • Download unsigned IPA files from GitHub Actions or CodeMagic CI/CD builds
  • Install using development tools like Xcode, iOS App Installer, or enterprise deployment methods
  • Note: Unsigned apps have limitations and may require re-installation periodically

Option 3: Fork and Sign Yourself

If you have an Apple Developer Program membership:

  1. Fork this repository
  2. Update the bundle identifier in the project settings
  3. Configure code signing with your developer certificate
  4. Build and distribute as needed

How to Use

  1. Launch the app and complete the onboarding tutorial
  2. Select a video from your photo library using the video picker
  3. Play the video and use the timeline to navigate to desired frames
  4. Mark frames by tapping the mark button during playback
  5. Review marked frames in the timeline (red markers)
  6. Extract frames to save high-quality images to your photo library
  7. Manage settings including custom album names and haptic feedback

Architecture

  • SwiftUI - Modern declarative UI framework
  • AVFoundation - Video processing and playback
  • Photos/PhotosUI - Photo library integration
  • Combine - Reactive programming patterns
  • Swift Concurrency - Modern async/await patterns

CI/CD Workflows

This project includes two CI/CD platforms for automated building and testing:

GitHub Actions

  • Build Trigger: Push to main branch or pull requests
  • Output: Unsigned IPA files for development and testing
  • iOS SDK: Automatically detects and uses latest iOS SDK (iOS 26+)
  • Configuration: .github/workflows/build-ipa.yml

CodeMagic CI/CD

  • ios-unsigned-workflow: Standard unsigned builds for development
  • ios-release-workflow: Release builds triggered by Git tags (v1.0.0, etc.)
  • Output: Unsigned IPA files suitable for development and testing
  • Configuration: codemagic.yaml

Both platforms produce unsigned IPA files that can be installed on development devices or simulators. No Apple Developer account is required.

Privacy

This app requires photo library access to:

  • Select videos for frame extraction
  • Save extracted frames as images
  • Create and manage custom photo albums

All processing happens locally on your device. No data is transmitted to external servers.

Contributing

Contribution guidelines to be added

Support

For questions, issues, or feature requests, please open an issue in this repository.


Built with ❀️ by Casper N.Y. Ong using SwiftUI, GitHub Copilot and AVFoundation

About

A powerful iOS app for extracting high-quality frames from videos with precision timing control.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages