{"id":18267144,"url":"https://github.com/afathi/arvideokit","last_synced_at":"2025-04-15T03:49:21.012Z","repository":{"id":38815045,"uuid":"109212956","full_name":"AFathi/ARVideoKit","owner":"AFathi","description":"Capture \u0026 record ARKit videos 📹, photos 🌄, Live Photos 🎇, and GIFs 🎆.","archived":false,"fork":false,"pushed_at":"2022-10-24T18:26:45.000Z","size":6963,"stargazers_count":1645,"open_issues_count":56,"forks_count":226,"subscribers_count":56,"default_branch":"swift_5","last_synced_at":"2025-04-15T03:49:17.048Z","etag":null,"topics":["arkit","ios"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AFathi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-02T03:23:30.000Z","updated_at":"2025-04-12T07:50:54.000Z","dependencies_parsed_at":"2022-07-16T10:00:29.932Z","dependency_job_id":null,"html_url":"https://github.com/AFathi/ARVideoKit","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AFathi%2FARVideoKit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AFathi%2FARVideoKit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AFathi%2FARVideoKit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AFathi%2FARVideoKit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AFathi","download_url":"https://codeload.github.com/AFathi/ARVideoKit/tar.gz/refs/heads/swift_5","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249003942,"owners_count":21196794,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arkit","ios"],"created_at":"2024-11-05T11:26:11.521Z","updated_at":"2025-04-15T03:49:20.988Z","avatar_url":"https://github.com/AFathi.png","language":"Swift","funding_links":["https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=ahmedfbekhit@gmail.com\u0026item_name=Support+ARVideoKit+Developer\u0026item_number=ARVideoKit+Framework+Donations\u0026amount=0%2e00\u0026currency_code=USD"],"categories":[],"sub_categories":[],"readme":"\u003e Use [swift_4_2](https://github.com/AFathi/ARVideoKit/tree/swift_4_2) branch for projects written in Swift 4.2\n\n\u003e Use [master](https://github.com/AFathi/ARVideoKit/tree/master) branch for projects written in Swift 4.0\n\n## Sponsors\n[**Chemical Wedding**](https://www.chemicalwedding.tv)\n\n![Chemical Wedding](https://www.chemicalwedding.tv/imgs/general/logo-main.png)\n\n## ARVideoKit\n\n![intro image](http://www.ahmedbekhit.com/projects/repo-header-arvideokit.png)\n\nAn iOS Framework that enables developers to capture videos 📹, photos 🌄, Live Photos 🎇, and GIFs 🎆 with ARKit content.\n\nIn other words, you **NO LONGER** have to ~screen record~/~screenshot~ to capture videos 📹 and photos 🌄 of your awesome ARKit apps!\n\n\n| Table of Contents  |  Description       |\n| ------------------ |:------------------:|\n| [Documentation](https://github.com/AFathi/ARVideoKit/wiki) | Describes the configuration options `ARVideoKit` offers |\n| [Preview](#preview)                                        | Displays 2 GIF images captured using the supported [`gif`](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-gifforduration-durationtimeinterval-exportbool-_-finished-_-statusbool-_-gifpath-url-_-permissionstatusphauthorizationstatus-_-exportedbool---swiftvoid--nil) method in `ARVideoKit`|\n| [Key Features](#key-features) | Lists the key features `ARVideoKit` offers     |\n| [Compatibility](#compatibility) | Describes the `ARVideoKit` device and iOS compatibality |\n| [Example Projects](#example-projects) | Explains how to run the example project provided in this repository |\n| [Installation](#installation) | Describes the [Cocoapods](#cocoapods), [Carthage](#carthage) \u0026 [Manual](#manual) options to install `ARVideoKit`   |\n| [Implementation](#implementation) | Lists the [steps needed](#implementation) for Objective-C \u0026 Swift, [notes](#note), and [reference](#youre-all-set-) for more options  |\n| [Publishing to the App Store](#publishing-to-the-app-store) | Describes the steps **required** before submitting an application using `ARVideoKit` to the App Store. |\n|[![Donate](https://www.paypalobjects.com/webstatic/en_US/i/btn/png/btn_donate_92x26.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=ahmedfbekhit@gmail.com\u0026item_name=Support+ARVideoKit+Developer\u0026item_number=ARVideoKit+Framework+Donations\u0026amount=0%2e00\u0026currency_code=USD) | [Donations](#donate) will support me to keep maintaining `ARVideoKit` ❤️|\n|[Sponsors](#sponsors) | Featuring the sponsors of this project |\n| [Contributions](#contributions) | Describes how you can contribute to this project |\n| [Apps using ARVideoKit](#apps-using-arvideokit) | A list of published applications using ARVideoKit |\n| [License](#license) | Describes `ARVideoKit` license |\n| [AppCoda Tutorial](https://www.appcoda.com/record-arkit-video/) | Check out a detailed tutorial about implementing `ARVideoKit` with SpriteKit ☺️ |\n\n## Preview\n|👾 [Initialized with SpriteKit](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#init-arspritekitarskview)👇|🚀 [Initialized with SceneKit](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#init-arscenekitarscnview) 👇|\n|--------------|--------------|\n| ![SpriteKit Preview](http://www.ahmedbekhit.com/SK_PREV.gif) | ![SceneKit Preview](http://www.ahmedbekhit.com/SCN_PREVIEW.gif)|\n \n## Key Features\n✅ Capture [Photos](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-photo---uiimage) from [`ARSCNView`](https://developer.apple.com/documentation/arkit/arscnview), [`ARSKView`](https://developer.apple.com/documentation/arkit/arskview), and [`SCNView`](https://developer.apple.com/documentation/scenekit/scnview)\n\n✅ Capture [Live Photos](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-livephotoexportbool-_-finished-_-statusbool-_-livephotophlivephotoplus-_-permissionstatusphauthorizationstatus-_-exportedbool---swiftvoid--nil) \u0026 [GIFs](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-gifforduration-durationtimeinterval-exportbool-_-finished-_-statusbool-_-gifpath-url-_-permissionstatusphauthorizationstatus-_-exportedbool---swiftvoid--nil) from [`ARSCNView`](https://developer.apple.com/documentation/arkit/arscnview), [`ARSKView`](https://developer.apple.com/documentation/arkit/arskview), and [`SCNView`](https://developer.apple.com/documentation/scenekit/scnview)\n\n✅ [Record](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-record) Videos from [`ARSCNView`](https://developer.apple.com/documentation/arkit/arscnview), [`ARSKView`](https://developer.apple.com/documentation/arkit/arskview), and [`SCNView`](https://developer.apple.com/documentation/scenekit/scnview)\n\n✅ [Pause/Resume](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#func-pause) video\n\n✅ Allow device's Music playing in the [background while recording a video](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#var-enablemixwithothersbool)\n\n✅ [Returns](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#var-onlyrenderwhilerecordingbool) rendered and raw buffers in a [protocol](https://github.com/AFathi/ARVideoKit/wiki/RecordAR#var-renderarrenderardelegate) [method](https://github.com/AFathi/ARVideoKit/wiki/RenderARDelegate#func-framedidrender-buffercvpixelbuffer-with-timecmtime-using-rawbuffercvpixelbuffer) for additional Image \u0026 Video processing\n## Compatibility\n`ARVideoKit` is compatible on iOS devices that support both [`ARKit`](https://developer.apple.com/documentation/arkit) and [`Metal`](https://developer.apple.com/documentation/metal). Check Apple's [iOS Device Compatibility Reference](https://developer.apple.com/library/content/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html#//apple_ref/doc/uid/TP40013599-CH17-SW1) for more information.\n\n`ARVideoKit` requires:\n- iOS 11\n- Swift 3.2 or higher\n\n## Example Projects\nTo try the example project, simply clone this repository and open the `Examples` folder to choose between the Objective-C and Swift project files.\n\n## Installation\n### Cocoapods\n1. Add this line to your project's `Podfile` (for Swift 5.0)\n```\npod 'ARVideoKit', '~\u003e 1.5.51'\n\n```\n2. Install the pod\n```\n$ pod install\n```\n\n### Carthage\n1. Add this line to your project's `Cartfile`\n```\ngithub \"AFathi/ARVideoKit\" ~\u003e 1.31\n```\n2.  Update your Carthage directory\n```\n$ carthage update\n```\n\n### Swift Package Manager (available Xcode 11.2 and forward)\n\n1. In Xcode, select File \u003e Swift Packages \u003e Add Package Dependency.\n2. Follow the prompts using the URL for this repository.\n\n### Manual\nDrag `ARVideoKit.xcodeproj` into your project and click the **+** button in the embedded binaries section of your project's target.\n![example embed framework](http://www.ahmedbekhit.com/embeddedBinary.png)\n## Implementation\n### Swift\n[Click here to check the Swift implementation steps.](https://github.com/AFathi/ARVideoKit/tree/master/Examples/Swift)\n### Objective-C\n[Click here to check the Objective-C implementation steps.](https://github.com/AFathi/ARVideoKit/tree/master/Examples/Objective-C)\n\n### NOTE\nMake sure you add the usage description of the `camera`, `microphone`, and `photo library` in the app's `Info.plist`.\n```\n\u003ckey\u003eNSCameraUsageDescription\u003c/key\u003e\n\u003cstring\u003eAR Camera\u003c/string\u003e\n\u003ckey\u003eNSPhotoLibraryAddUsageDescription\u003c/key\u003e\n\u003cstring\u003eExport AR Media\u003c/string\u003e\n\u003ckey\u003eNSPhotoLibraryUsageDescription\u003c/key\u003e\n\u003cstring\u003eExport AR Media\u003c/string\u003e\n\u003ckey\u003eNSMicrophoneUsageDescription\u003c/key\u003e\n\u003cstring\u003eAudiovisual Recording\u003c/string\u003e\n```\n![Info Plist Screenshot](http://www.ahmedbekhit.com/infoPlistUsage.png)\n\n### You're all set. 🤓\nCheck [`RecordAR`](https://github.com/AFathi/ARVideoKit/wiki/RecordAR) documentation for more options!\n\n## Publishing to the App Store\nBefore publishing to the App Store make sure to add the [ARVideoKit License](#license) to your app licences list.\n\n1. Build ARVideoKit for release\n\u003e Open ARVideoKit.xcodeproj\n\n\u003e Select ARVideoKitRelease scheme with Generic iOS Device\n\n\u003e Build the project (cmd + B)\n\n\u003e Right click on Products/ARVideoKit.framework -\u003e Show in finder\n\n\u003e Copy and replace ARVideoKit.framework in your project \n\nAdditionally, if you are using the binary build from `Framework Build` or the latest release, you MUST **strip out the simulator architectures** from the framework before pushing an application to the App Store.\n\nTo do so, follow those steps:\n\n2. Install Carthage\n\u003e Download `Carthage.pkg` [from here](https://github.com/Carthage/Carthage/releases)\n\n\u003e Or install with Homebrew using this command `brew install carthage` \n3. Go to your project target's `Build Phase`\n\u003cimg width=\"684\" alt=\"screen shot 2017-11-14 at 8 21 44 pm\" src=\"https://user-images.githubusercontent.com/4106695/32813978-e70ae5a0-c97a-11e7-9d19-3ef434e4c4f1.png\"\u003e\n\n4. Add a new `Run Script Phase`\n\u003cimg width=\"686\" alt=\"screen shot 2017-11-14 at 8 22 14 pm\" src=\"https://user-images.githubusercontent.com/4106695/32814003-0ab4cffc-c97b-11e7-97d0-cf3143afec6d.png\"\u003e\n\n5. Add the following command to the `Run Script Phase`\n```\n/usr/local/bin/carthage copy-frameworks\n```\n\u003cimg width=\"676\" alt=\"screen shot 2017-11-14 at 8 30 12 pm\" src=\"https://user-images.githubusercontent.com/4106695/32814033-3302bece-c97b-11e7-867c-e8707ac7dd6b.png\"\u003e\n\n6. Finally, add `ARVideoKit.framework` file path as an `Input File`. In my case, I have it in a folder named `Frameworks` inside my project folder\n\u003cimg width=\"672\" alt=\"screen shot 2017-11-14 at 8 41 06 pm\" src=\"https://user-images.githubusercontent.com/4106695/32814258-327bd048-c97c-11e7-8148-8d606d545214.png\"\u003e\n\n## Donate\nDonations will support me to keep maintining **ARVideoKit Framework** ❤️\n\n[![Donate](https://www.paypalobjects.com/webstatic/en_US/i/btn/png/btn_donate_92x26.png)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=ahmedfbekhit@gmail.com\u0026item_name=Support+ARVideoKit+Developer\u0026item_number=ARVideoKit+Framework+Donations\u0026amount=0%2e00\u0026currency_code=USD)\n \n## Contributions\nIf you have an idea for a new **ARVideoKit** feature/functionality and want to add it to this repository, feel free to fork the project and create a pull request!\n\nAlso, feel free to create an issue if you have any suggestions or need any help ☺️\n\n## Apps using ARVideoKit\n| App  |  Description   |\n| ------------------ |:------------------:|\n| [Pathica](https://apps.apple.com/us/app/pathica/id1564780182) | The first proof of the theory of \"six degrees of separation\" which is the idea that any two people on the planet can be connected through five or fewer individuals. |\n| [Our SolAR](https://itunes.apple.com/app/id1267675913) | An app that allows you to see our Solar System anywhere at all! |\n| [In The Walls](https://apps.apple.com/us/app/id1522257130) | Uses real time face tracking and AR to put your face in any real world wall! |\n| [ScribScrab](https://apps.apple.com/in/app/scribscrab/id1339432955) | ScribScrab is a tool for creativity. You’re only limited to your imagination and your battery life. |\n\n_Feel free to add your application to this list!_\n## License\n### ARVideoKit Framework\nCopyright 2018 Ahmed Fathi Bekhit, www.ahmedbekhit.com, me@ahmedbekhit.com\n\n`ARVideoKit` is licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at\n\n[http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.\n\n### ARVideoKit Logo \u0026 Header\nDesigned by [**Gabriel Garcia**](https://github.com/ggabogarcia) and licensed under the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/)\n![DERECHOS.jpg](https://cdn.steemitimages.com/DQmVSH7hxt3nuyDxNRdWUBUBtfR11TyvLxM1F1C4vYW5UzG/DERECHOS.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafathi%2Farvideokit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fafathi%2Farvideokit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fafathi%2Farvideokit/lists"}