Skip to content

Kapture is a screen recorder for android and wear os that allows to record/capture the microphone audio while sharing it with other apps.

License

Notifications You must be signed in to change notification settings

hms-douglas/kapture

Repository files navigation

lang lang

Kapture - Screen recorder

Kapture is a screen recorder for Android (and Wear OS) that allows to capture microphone audio while sharing it with other apps.

I was looking for an app that allow me to record my screen and microphone while sharing the microphone with other apps, like games. Unfortunately I didn't find any inside the Google Play. The ones I found required sideload, which I was a bit concerned about installing because it required some dangerous permissions and I didn't have access to the code. Therefore I decided to build one on my own. I'm also sharing it here. You can download the .apk and install it, or you can download the source code, read it and built it yourself.

¹ Phone gif is from version 1.4.0, new versions might be different (features might change between android versions!);
² Watch gif is from version 1.0.0, new versions might be different.

Features

Phone Watch
  • Capture the screen:
    • Set resolution;
    • Set quality (bit rate);
    • Set orientation;
    • Set recording FPS.
  • Capture internal audio (if the app that is playing the audio allows it to be captured):
    • Capture in mono or stereo.
  • Capture microphone audio (while sharing with other apps);
  • Pause/Resume capturing;
  • Profiles;
  • Floating UI;
    • Menu (Stop, pause, screenshot, draw, minimize, close, time, time limit, camera);
    • Camera (front, back / extra styles);
    • Text (extra styles);
    • Draw (extra styles).
    • Image;
    • App shortcuts.
  • Generate extra video files:
    • Without audio;
    • With internal audio only;
    • With microphone audio only.
  • Generate extra audio files:
    • Both audio;
    • Internal audio only;
    • Microphone audio only.
  • Notification shortcuts;
  • Quick tile shortcut:
    • Start/stop capturing;
    • WiFi share.
  • Widgets:
    • Basic - Start/Stop;
    • Full - Start/Stop and Pause/Resume;
    • WiFi Share shortcut;
    • Profiles shortcut;
  • Launcher static shortcuts;
  • Manage all captures made by the app:
    • Check info like resolution, date of creation, size, ...
    • Remove from the app;
    • Delete file(s) from the device;
    • Check related files (extra files generated);
    • Rename;
    • Share.
  • WiFi share;
  • Countdown to start capturing;
  • Multiple auto stop options;
  • Multiple auto before start options;
  • Internal viewer (player):
    • Audio player;
    • Video player.
  • App language:
    • English
    • Português (Brasil).
  • Light and dark mode (auto or manually).
  • Storage control.
  • Tablet UI.
  • Capture the screen:
    • Set resolution;
    • Set quality (bit rate);
    • Set recording FPS.
  • Capture internal audio (if the app that is playing the audio allows it to be captured / NOT RECOMMEND TO DO ON WATCH!):
    • Capture in mono or stereo.
  • Capture microphone audio (while sharing with other apps);
  • Pause/Resume capturing;
  • Tile:
    • Full - Start/Stop and Pause/Resume.
  • Manage all captures made by the app:
    • Check info like resolution, date of creation, size, ...
    • Delete file(s) from the device;
    • Send to phone.
  • WiFi share;
  • Countdown to start capturing;
  • Multiple auto stop options;
  • Multiple auto before start options;
  • Internal viewer (player):
    • Video player.
  • App language:
    • English
    • Português (Brasil).
  • Storage control.

Sharing microphone

According to the Android documentation, after the Android 10/11, apps can only share the microphone input between them in specific cases.

Kapture is built over an accessibility service, turning it into a specific case, like mentioned here in the android docs.

Android permissions (required to use)

Phone¹ Watch
  • Microphone: Used to capture the microphone and internal audio:
    • android.permission.RECORD_AUDIO
  • Notification: Used to show notifications and start the foreground service:
    • android.permission.POST_NOTIFICATIONS
  • Storage: Used to create and manage the files:
    • android.permission.WRITE_EXTERNAL_STORAGE
    • android.permission.READ_EXTERNAL_STORAGE
    • android.permission.MANAGE_EXTERNAL_STORAGE
  • Secure settings: Used to share the microphone with other apps and start the accessibility service:
    • android.permission.WRITE_SECURE_SETTINGS
    • android.permission.FOREGROUND_SERVICE
  • Internet: Used to search for updates (does not auto update), to open external links and to share files over WiFi:
    • android.permission.INTERNET
    • android.permission.ACCESS_NETWORK_STATE
  • Camera: Used to show the camera overlay:
    • android.permission.CAMERA
  • Optimization: Used as shortcut to disable the phone's battery optimization for the app:
    • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • Packages: Used to launch apps and add shortcuts to the floating menu:
    • android.permission.QUERY_ALL_PACKAGES
  • Other: Used for general purposes:
    • android.permission.VIBRATE
  • Microphone: Used to capture the microphone and internal audio:
    • android.permission.RECORD_AUDIO
  • Notification: Used to show notifications and start the foreground service:
    • android.permission.POST_NOTIFICATIONS
  • Storage: Used to create and manage the files:
    • android.permission.WRITE_EXTERNAL_STORAGE
    • android.permission.READ_EXTERNAL_STORAGE
    • android.permission.MANAGE_EXTERNAL_STORAGE
  • Secure settings: Used to share the microphone with other apps and start the accessibility service:
    • android.permission.WRITE_SECURE_SETTINGS
    • android.permission.FOREGROUND_SERVICE
  • Internet: Used to search for updates (does not auto update), to open external links and to share files over WiFi:
    • android.permission.INTERNET
    • android.permission.ACCESS_NETWORK_STATE
  • Optimization: Used as shortcut to disable the phone's battery optimization for the app:
    • android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • Packages: Used to launch apps and add shortcuts to the floating menu:
    • android.permission.QUERY_ALL_PACKAGES
  • Other: Used for general purposes:
    • android.permission.VIBRATE
    • android.permission.WAKE_LOCK

¹ Starting on Android 14, some devices display a popup informing that the accessibility service is a restricted settings and it is unavailable or that it must be manually enabled when you try to manually enable the accessibility service. In case you are using the ADB command this message will not even show up, the app will just not start a capture. Any of these cases can be fixed by doing the following steps:

  1. On your Android device, open the Settings app;
  2. Tap Apps;
  3. Tap the app that you want to turn on a restricted setting for (Kapture);
    • If you can't find it, first tap See all apps or App info.
  4. Tap More icon (three dots) and then Allow restricted settings;
  5. Follow the on-screen instructions.
For more information check the documentation.

Download the lastest apks¹ ² ³ ⁴

apk apk

¹ All apks listed inside this repository were built by me and are not minified;
² Phone versions < 1.5.0 are stored on my google drive, phone versions >= 1.5.0 are stored inside the folder "/dist/apks/phone".
³ Link to all phone versions (>= 1.5.0) can be found here and to all watch versions here;
⁴ Links to phone apks bellow 1.5.0 were removed, but release code are still available.

Installing

Phone Watch

Option 1:

- Download the source code, or clone this repository, and build the app using Android Studio.

Option 2:

- Download the phone apk (link above) and manually install it on your phone¹;

¹ Google Play Protect might block the installation. In this case, disable it, install, then enable it.

Option 1:

- Download the source code, or clone this repository, and build the app using Android Studio.

Option 2 (recommended):

- Download the phone apk (link above) and manually install it on your phone¹;
- Once it is installed, open the phone app;
- Navigate to the "Settings" screen;
- Click on the more icon (three dots, top right side);
- Click on "Install on watch";
- Follow the instructions to install the app on your watch.

Option 3:

- Download the watch apk (link above) and manually install it on your watch²;

¹ Google Play Protect might block the installation. In this case, disable it, install, then enable it.
² You can use adb or a specific app (for example or any other similar app / there are tons of videos on youtube teaching how to sideload apks/apps to your watch).

Donations

  • If you would like to support me, you can use one of the options bellow... Thank you! ❤️


Coin Address
Bitcoin 3NkK4LMwMhKefe2phqf7Vrp1uQynu1Gs6x
Ethereum 0xfea5dd21ebf73c5b4a2445c7713f6b5316dfac4d

Log

Phone Watch
v1.8.1
  • Code logic fixed.
v1.8.0
  • Internal file picker added;
  • Support to SD card and dual message storage added.
v1.7.0
  • Watch installer added;
  • Minor UI fix.
v1.6.0
  • Fixed a bug where the app crashes while resuming if the internal audio is not being captured;
  • QRCode shortcut added to WiFi Share;
  • Wear OS support added (watch);
  • Minor UI changes.
v1.5.0
  • FFmpegKit library was removed, as it was officially retired;
  • Option to make video seekable was removed (not needed anymore);
  • Microphone custom volume option was removed;
  • Option to block WiFi Share notification was added;
  • Fixed a bug where the app was brought to foreground while using a quick tile in case the application was open in background;
  • Fixed a bug where starting a capturing using widgets closes the app;
  • Fixed a bug where actions from notification closes the app;
  • Fixed a bug where multiple shortcuts of home screen was shown if the slot was empty;
  • Minor UI changes;
  • compileSdk updated to 34, for this reason some changes:
    • Recycle token feature is not available anymore on android >= 14 (google is now blocking it, as listed here in the documentation);
    • Removed the option to capture single app on android >= 14 (this option was added by google on android 14 and was causing crashes).
v1.4.1
  • Fixed static shortcuts not working;
  • Fixed auto orientation on DeX mode.
v1.4.0
  • Quick tile for WiFi Share added;
  • App shortcut added to floating menu;
  • Password added to WiFi Share (+ "refresh password feature")
  • Profiles added;
  • Profiles widget added;
  • Before start options added;
  • Back to top button added to kaptures screen;
  • Language is now manageable through the system menu;
  • Notifications improved;
  • Bug fix;
  • Minor UI changes.
v1.3.0
  • Auto stop option based on battery level added;
  • Storage usage option added + Clear cache option;
  • Image overlay added;
  • Widgets added (Basic, Full, WiFi share);
  • Option to control token recycling added;
  • Option to make video seekable added inside the video viewer;
  • Table UI support added;
  • Draw overlay now supports colors with alpha channel;
  • Draw overlay now supports screenshots (draw only and/or screen);
  • FFmpegKit license changed from LGPL v3.0 to GPL v3.0;
  • Bug fix;
  • Minor UI changes.
v1.2.0
  • Loading performance improved;
  • Pause/resume option added;
  • Launcher static shortcuts added.
v1.1.0
  • Fixed notification actions not closing activity when action is completed;
  • Fixed notification channel name;
  • Fixed some translation errors;
  • New menu overlay UI;
  • Camera overlay added;
  • Text overlay added;
  • Draw overlay added;
  • WiFi share added;
  • Countdown to start added;
  • Auto stop options added;
  • Screenshot (print screen) while capturing added;
  • Option to enable/disable some notifications added;
  • Capturing orientation added;
  • Option to ignore phone's battery optimization added;
  • UI updated;
  • Credits updated.
v1.0.0
  • Release.
v1.0.0
  • Release.

Compatibility

Phone Watch
1.6.0 - 1.8.11.0.0
1.5.0-
1.4.1-
1.4.0-
1.3.0-
1.2.0-
1.1.0-
1.0.0-

License

Copyright 2024-present Douglas Silva

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

 http://www.apache.org/licenses/LICENSE-2.0

Unless 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.

About

Kapture is a screen recorder for android and wear os that allows to record/capture the microphone audio while sharing it with other apps.

Topics

Resources

License

Stars

Watchers

Forks

Languages