{"id":17047817,"url":"https://github.com/konradit/camcontrol","last_synced_at":"2025-06-26T16:37:46.881Z","repository":{"id":74740660,"uuid":"77837779","full_name":"KonradIT/CamControl","owner":"KonradIT","description":"Open source app to connect with popular action cameras, replacing your vendor's closed source app system.","archived":false,"fork":false,"pushed_at":"2019-06-04T20:30:41.000Z","size":3217,"stargazers_count":116,"open_issues_count":6,"forks_count":28,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-12T15:56:09.785Z","etag":null,"topics":["action-camera","android","android-app","gopro","xiaomi"],"latest_commit_sha":null,"homepage":"","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KonradIT.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null},"funding":{"github":"konradit","patreon":"konraditurbe","custom":"https://liberapay.com/konraditurbe/"}},"created_at":"2017-01-02T14:07:26.000Z","updated_at":"2025-03-30T14:22:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"7928d6f2-648b-4987-ace9-af50327e4d76","html_url":"https://github.com/KonradIT/CamControl","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/KonradIT/CamControl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonradIT%2FCamControl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonradIT%2FCamControl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonradIT%2FCamControl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonradIT%2FCamControl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KonradIT","download_url":"https://codeload.github.com/KonradIT/CamControl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KonradIT%2FCamControl/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262103327,"owners_count":23259434,"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":["action-camera","android","android-app","gopro","xiaomi"],"created_at":"2024-10-14T09:50:23.075Z","updated_at":"2025-06-26T16:37:46.839Z","avatar_url":"https://github.com/KonradIT.png","language":"Kotlin","funding_links":["https://github.com/sponsors/konradit","https://patreon.com/konraditurbe","https://liberapay.com/konraditurbe/","http://paypal.me/konraditurbe"],"categories":[],"sub_categories":[],"readme":"## Action Cam Control App for Android\n\n![banner](https://user-images.githubusercontent.com/40510200/46581317-0e97b400-ca69-11e8-8cd4-b1702fed6051.png)\n\nOpen source vendor agnostic client application to interface with most popular sports cameras (eg: GoPro, Yi, SJCam, etc...).\n\n### Quick Links:\n\n- [Bug List](https://github.com/KonradIT/CamControl/labels/bug)\n- [Feature Requests](https://github.com/KonradIT/CamControl/labels/feature%20request)\n- [Open Pull Requests](https://github.com/KonradIT/CamControl/pulls)\n- [GoPro - Scrum board](https://github.com/KonradIT/CamControl/projects/2)\n- [App - Scrum board](https://github.com/KonradIT/CamControl/projects/1)\n- [GitHub Releases](https://github.com/KonradIT/CamControl/releases)\n\n### Downloads:\n\nDownloads will be hosted on F-Droid and the GitHub releases page.\n\nGoogle Play releases will also be uploaded.\n\n### Aims:\n\n- Open source and login-free\n- Virtually permissionless\n- Support most action cameras\n- Have all the features from the vendor's client\n- Run without Google Play Services\n\n### Mockup of the app UI:\n\n*Disclaimer: Not a designer.*\n\n![](sketch.png)\n\n### Works with:\n\n- GoPro - [API](http://github.com/konradit/goprowifihack)\n\n### Planned:\n\n- Xiaomi Yi\n- Insta 360 One X\n- DJI Action Cameras\n- Sony Action Cameras\n- SJcam\n- Other ChinaPro to be added\n\n### Features:\n\nThe app must *at least* have the following features regardless of camera used:\n\n- Preview live stream\n- Control basic features eg: record, take picture, change modes, turn on or off\n- Get camera status messages\n- Get videos and photos off memory\n- Camera detection\n\n### Contribute!\n\nI maintain the GoPro Wifi API and I will be doing the GoPro support, if you want to add support for your action camera:\n\n- See the /camera/goproAPI folder, this is what provides the app with instructions and assets on how to connect to a GoPro camera, add a new folder inside /camera/ named ```camera name```API, inside you'll need to place the following files: \n\t- Camera.kt: \n\t    - Details about the camera(s) itself: \n\t        - ```model_name``` array, \n\t        - ```ip_address``` as a string, \n\t        - ```baseURL```, ```statusURL```, \n\t        - ```settingsURL```, \n\t        - ```commandURL``` as string (with :port if needed), \n\t        - ```connectionMsg``` array as string (this is to check if the camera is connected, first item should be a URL and second item should be a string), \n\t        - ```info``` array with information from the vendor (eg: vendor name, vendor country, vendor website)\n\t- Constants.kt: \n\t    - Host your commands in this file, I tend to follow a Video/Photo/MultiShot/Setup/Command structure which is easy to understand and use. Other cameras are different but try to stick to that structure.\n\t- Live.kt: \n\t    - This should have a function called ```getStream``` that returns a Uri or a Video that ExoPlayer can play.\n\t- Media.kt: \n\t    - Many cameras have a media front end in their IP addresses with port 8080, you'll need the URL the vendor app uses, for GoPro for instance its a JSON. It should have a ```mediaURL``` Uri and a function called ```getMedia()``` which returns an array with the URLs of the photos and videos.\n\t- Status.kt: \n\t    - Should be a list of Strings or integers with an appropriate Status name.\n\n### License \u0026 Libraries used\n\n[LICENSE](https://github.com/KonradIT/CamControl/blob/master/LICENSE)\n\n- [com.github.armcha:SpaceNavigationView](https://github.com/armcha/Space-Navigation-View)\n- [de.mrmaffen:libvlc-android](https://github.com/mrmaffen/vlc-android-sdk)\n- [com.github.gabrielemariotti.changeloglib](https://github.com/gabrielemariotti/changeloglib)\n- [com.github.medyo:android-about-page](https://github.com/medyo/android-about-page)\n\n### Donation:\n\n- [PayPal](http://paypal.me/konraditurbe)\n- [Liberapay](https://liberapay.com/konraditurbe/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonradit%2Fcamcontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkonradit%2Fcamcontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkonradit%2Fcamcontrol/lists"}