{"id":25449827,"url":"https://github.com/nguyluky/esp32_android_tv_remote_v2","last_synced_at":"2026-04-30T13:33:21.694Z","repository":{"id":276585354,"uuid":"926895178","full_name":"nguyluky/ESP32_android_tv_remote_v2","owner":"nguyluky","description":"ESP32-based Android TV controller using the Android TV Remote protocol v2. No ADB required.","archived":false,"fork":false,"pushed_at":"2025-02-16T13:02:10.000Z","size":9959,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T09:07:45.210Z","etag":null,"topics":["android-remote-control","esp32","esp32-arduino"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nguyluky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-04T03:26:54.000Z","updated_at":"2025-05-04T19:19:41.000Z","dependencies_parsed_at":"2025-05-16T09:07:48.659Z","dependency_job_id":null,"html_url":"https://github.com/nguyluky/ESP32_android_tv_remote_v2","commit_stats":null,"previous_names":["nguyluky/esp32_android_tv_remote_v2"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nguyluky%2FESP32_android_tv_remote_v2","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nguyluky%2FESP32_android_tv_remote_v2/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nguyluky%2FESP32_android_tv_remote_v2/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nguyluky%2FESP32_android_tv_remote_v2/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nguyluky","download_url":"https://codeload.github.com/nguyluky/ESP32_android_tv_remote_v2/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254501543,"owners_count":22081529,"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":["android-remote-control","esp32","esp32-arduino"],"created_at":"2025-02-17T21:20:18.803Z","updated_at":"2026-04-30T13:33:21.687Z","avatar_url":"https://github.com/nguyluky.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Project Overview\n\nThis project is an implementation of an ESP32-based Android TV controller using the Android TV Remote protocol v2. It leverages the PlatformIO ecosystem for development and includes various features and functionalities to control and monitor the Android TV. This implementation does not require ADB or enabling developer tools on the Android TV device. It only requires the [Android TV Remote Service](https://play.google.com/store/apps/details?id=com.google.android.tv.remote.service) that comes pre-installed on most Android TV devices.\n\nKey list you can see at [RemoteKeycode.h](./include/remote/RemoteKeycode.h)\n\n### TODO\n- [X] Pairing\n- [X] Send command\n- [ ] Add voice support\n\n### Credits\n- Official [implementation](https://android.googlesource.com/platform/external/google-tv-pairing-protocol/+/refs/heads/master) of the pairing protocol in Java\n- [Implementation](https://github.com/farshid616/Android-TV-Remote-Controller-Python) in Python but for the old v1 protocol\n- [Implementation](https://github.com/louis49/androidtv-remote) in Node JS for the v2 protocol\n- [Implementation](https://github.com/tronikos/androidtvremote2?tab=readme-ov-file) in python for the v2 protocol\n- [Description](https://github.com/Aymkdn/assistant-freebox-cloud/wiki/Google-TV-(aka-Android-TV)-Remote-Control-(v2)) of the v2 protocol\n\n### Prerequisites\n\n- [PlatformIO](https://platformio.org/) installed on your development environment.\n- ESP32 development board.\n- Necessary libraries and dependencies (specified in `platformio.ini`).\n\n### Installation\n\n1. Clone the repository:\n    ```sh\n    git clone https://github.com/nguyluky/ESP32_android_tv_remote_v2.git\n    ```\n2. Navigate to the project directory:\n    ```sh\n    cd ESP32_android_tv_remote_v2\n    ```\n3. Open the project in your preferred IDE (e.g., VS Code with PlatformIO extension).\n\n### Building and Uploading\n\n1. Connect your ESP32 board to the computer.\n2. Build the project:\n    ```sh\n    pio run\n    ```\n3. Upload the firmware to the board:\n    ```sh\n    pio run --target upload\n    ```\n\n### Usage\n\n- Power on the ESP32 board.\n- Use the remote control to operate the Android TV.\n\n## Contributing\n\nContributions are welcome! Please fork the repository and create a pull request with your changes.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnguyluky%2Fesp32_android_tv_remote_v2","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnguyluky%2Fesp32_android_tv_remote_v2","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnguyluky%2Fesp32_android_tv_remote_v2/lists"}