{"id":39148712,"url":"https://github.com/funjack/launchcontrol","last_synced_at":"2026-01-17T21:37:54.868Z","repository":{"id":57523190,"uuid":"87731428","full_name":"funjack/launchcontrol","owner":"funjack","description":"Launchcontrol is a server that can control/playback scripts on a Launch","archived":false,"fork":false,"pushed_at":"2018-11-19T19:35:13.000Z","size":1430,"stargazers_count":24,"open_issues_count":2,"forks_count":3,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-06-05T14:18:07.807Z","etag":null,"topics":["funscript","launch","launchcontrol"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/funjack.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-04-09T18:49:34.000Z","updated_at":"2025-04-10T16:39:38.000Z","dependencies_parsed_at":"2022-08-28T11:21:23.270Z","dependency_job_id":null,"html_url":"https://github.com/funjack/launchcontrol","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/funjack/launchcontrol","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funjack%2Flaunchcontrol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funjack%2Flaunchcontrol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funjack%2Flaunchcontrol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funjack%2Flaunchcontrol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/funjack","download_url":"https://codeload.github.com/funjack/launchcontrol/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/funjack%2Flaunchcontrol/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28518648,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T18:55:29.170Z","status":"ssl_error","status_checked_at":"2026-01-17T18:55:03.375Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["funscript","launch","launchcontrol"],"created_at":"2026-01-17T21:37:52.592Z","updated_at":"2026-01-17T21:37:54.700Z","avatar_url":"https://github.com/funjack.png","language":"Go","readme":"# Launchcontrol\n\n[![GoDoc](https://godoc.org/github.com/funjack/launchcontrol?status.svg)](https://godoc.org/github.com/funjack/launchcontrol)\n[![Go Report Card](https://goreportcard.com/badge/github.com/funjack/launchcontrol)](https://goreportcard.com/report/github.com/funjack/launchcontrol)\n[![Build Status](https://travis-ci.org/funjack/launchcontrol.svg?branch=master)](https://travis-ci.org/funjack/launchcontrol)\n[![codecov.io](https://codecov.io/github/funjack/launchcontrol/coverage.svg?branch=master)](https://codecov.io/github/funjack/launchcontrol)\n\n![Launchcontrol logo](contrib/kodi/script.service.launchcontrol/icon.png \"Launchcontrol\")\n\nLaunchcontrol is a server that can control/playback scripts on a Launch. This\nproject contains plugins for both Kodi and VLC to communicate with the\nLaunchcontrol server (loading scripts, pausing playback, etc.)\n\nThe main platform for Launchcontrol is Linux, but it has been successfully\ntested on Mac OS X. Works great on a Raspberry Pi with\n[LibreELEC](https://libreelec.tv/) using the Kodi addon.\n\nWindows versions **require** [Buttplug.io](https://buttplug.io/) Websocket\nserver.  Information on how to install and run Buttplug.io Websocket server can\nbe found\n[here](https://metafetish.club/t/tutorial-buttplug-c-app-suite-0-1-0/80).\nCheck out the Metafetish [blog](https://www.metafetish.com/) and\n[forums](https://metafetish.club/) for the latest status.\n\nThe Kodi and VLC addons work on all platforms (Linux, Mac and Windows.) Kodi's\naddon also works with their Android versions.\n\nThe Launch's firmware needs to be 1.2 (or higher.)\n\n## Script formats\n\nSupported haptic script formats:\n\n| Format | Content Type | File extensions |\n| ------ | ------------ | --------------- |\n| [Funscript](https://godoc.org/github.com/funjack/launchcontrol/protocol/funscript) | `application/prs.funscript+json` | `.funscript` `.json` |\n| [Raw](https://godoc.org/github.com/funjack/launchcontrol/protocol/raw) | `application/prs.launchraw+json` | `.launch` `.json` |\n| [Kiiroo](https://godoc.org/github.com/funjack/launchcontrol/protocol/kiiroo) | `text/prs.kiiroo` | `.kiiroo` |\n| [Kiiroo (Feel-Me/VR)](https://godoc.org/github.com/funjack/launchcontrol/protocol/kiiroo) | `application/prs.kiiroo+json` | `.meta` |\n\nCreate your own Funscripts using the [Funscripting Blender addon](https://github.com/funjack/funscripting/tree/master/).\n\n## Downloads\n\nCheck the [releases](https://github.com/funjack/launchcontrol/releases) page\nfor the latest binary downloads.\n\n| Filename                           | Description                 |\n| ---------------------------------- | ----------------------------|\n| `launchcontrol_linux_amd64`        | Linux (64-bit)              |\n| `launchcontrol_linux_386`          | Linux (32-bit)              |\n| `launchcontrol_darwin_amd64`       | Mac OS X                    |\n| `launchcontrol_linux_arm`          | Linux ARM (Raspberry Pi)    |\n| `launchcontrol_windows_amd64`      | Windows (64-bit) (see note) |\n| `launchcontrol_windows_386`        | Windows (32-bit) (see note) |\n| `script.service.launchcontrol.zip` | Kodi Addon                  |\n| `launchcontrol.lua`                | VLC Extension               |\n\n**NOTE:** Windows versions of Launchcontrol do not have native Bluetooth\nsupport and require [Buttplug.io](https://buttplug.io/) Websocket server.\nInformation on how to install and run Buttplug.io Websocket server can be found\n[here](https://metafetish.club/t/tutorial-buttplug-c-app-suite-0-1-0/80). Check\nout the Metafetish [blog](https://www.metafetish.com/) and\n[forums](https://metafetish.club/) for the latest status.\n\n## Usage\n\n```\nUsage of launchcontrol:\n  -buttplug string\n    \tbuttplug server websocket address\n  -ca string\n    \tcertificate authority in PEM format\n  -insecure\n    \tskip certificate verification\n  -licenses\n    \tshow licenses\n  -listen string\n    \tlisten address (default \"127.0.0.1:6969\")\n  -noact\n    \tsimulate launch on console\n  -version\n    \tshow version\n```\n\n### Start using native Bluetooth (BLE)\n\n```sh\n# Start server (listening on localhost:6969 by default)\n./launchcontrol\n```\n\n### Start using Buttplug.io Websocket Server\n\nButtplug.io can take care of communicating with BLE toys. This is the only way for\nLaunchcontrol to communicate with a Launch on Windows.\n\n#### With TLS\n\nBy default Buttplug is running with TLS enabled using a self-signed\ncertificate. (Note that the certificate is stored in PFX format and needs to be\nconverted to PEM before Launchcontrol can use it.)\n\n```sh\n./launchcontrol -ca certificate.pem -buttplug wss://localhost:12345/buttplug\n```\n\nAlternatively the certificate validation can be skipped:\n\n```sh\n./launchcontrol -insecure -buttplug wss://localhost:12345/buttplug\n```\n\n#### Without TLS\n\n```sh\n./launchcontrol -buttplug ws://localhost:12345/buttplug\n```\n\n### Execute commands on HTTP endpoint using cURL\n\n```sh\n# Load and play script\ncurl -XPOST -H \"Content-Type: text/prs.kiiroo\" --data-ascii \\\n\t\"{0.50:1,1.00:4,1.15:0,2.00:2}\" http://localhost:6969/v1/play\n# Pause a playing script\ncurl http://localhost:6969/v1/pause\n# Resume paused script\ncurl http://localhost:6969/v1/resume\n# Jump to a position in the script\ncurl http://localhost:6969/v1/skip\\?p=1m3s\n# Stop and reset script\ncurl http://localhost:6969/v1/stop\n# Start playing last loaded script\ncurl http://localhost:6969/v1/play\n# Dump loaded script raw data:\ncurl http://localhost:6969/v1/dump\n```\n\n## Kodi Integration\n\nThe Launchcontrol Kodi service addon connects to a local Launchcontrol server and auto\nloads scripts and synchronizes playback, taking into account actions like\npausing and seeking.\n\n![Kodi screenshot](contrib/kodi/script.service.launchcontrol/resources/screenshot003.jpg \"Kodi Addon\")\n\nScripts that are paired with the movie file will be loaded. Pairing is done by\nplacing a script file next a movie using the same base filename (this mirrors\nthe same convention as for [nfo](http://kodi.wiki/view/NFO_files) or artwork).\nThe addon uses Kodi's VFS while searching and loading scripts, so even movies\non remote sources like SMB or HTTP servers will work.\n\n**Movie/script pairing example:**\n\n- `/my movies/title.mp4`\n- `/my movies/title.funscript`\n\n### Install\n\nDownload `script.service.launchcontrol.zip` from the\n[releases](https://github.com/funjack/launchcontrol/releases) page.  Or package\nthe plugin yourself from `contrib/kodi/script.service.launchcontrol`. Just zip\nup the directory (or use the Makefile.)\n\nThis [guide](http://kodi.wiki/view/HOW-TO:Install_add-ons_from_zip_files) shows\nhow to install the zip file in Kodi. After installation the plugin will\nautomatically start.\n\n**NOTE:** If you are running Launchcontrol on another machine then Kodi or\nare not using the default port, the address can be changed in the add-ons\n`configure` menu.\n\n## VLC Integration\n\nVLC extension for Launchcontrol loads script from the local machine into a\nLaunchcontrol server to play them in sync with a video. Pairing works the same\nas for the Kodi addon, just place the script file next to the video using the\nsame base filename.\n\n![VLC Screenshot](contrib/vlc/screenshot001.jpg \"VLC Configuration\")\n\n**Note:** The VLC extension has less features then the Kodi addon, see [VLC\nExtension README](/contrib/vlc/README.md) for details on what's included.\n\n### Install\n\nPlace the [launchcontrol.lua](contrib/vlc/launchcontrol.lua) in VLC's\n`lua/extensions/` directory and reload extensions or restart VLC. The extension\nmust be enabled every time VLC is restarted by clicking `view` `-\u003e`\n`Launchcontrol`. See [VLC Extension README](/contrib/vlc/README.md) for more\ndetails on the extension.\n\n## Build\n\n```sh\ngo get ./...\ngo build\nsudo setcap 'cap_net_raw,cap_net_admin=eip' ./launchcontrol\n```\n\n## Raspberry Pi v2/v3 with LibreELEC\n\nMake sure Bluetooth is **disabled** in the LibreELEC\n[Services](https://wiki.libreelec.tv/index.php?title=LibreELEC_Settings#tab=Services)\ntab.\n\nBuild Launchcontrol server for\n[arm](https://golang.org/doc/install/source#environment):\n\n```sh\ngo get ./...\nGOARCH=arm GOARM=7 go build\n```\n\nBuild the script addon:\n```sh\nmake -C contrib/kodi/\n```\n\n**Note:** Pre-build binaries are also available on the\n[releases](https://github.com/funjack/launchcontrol/releases) page.\n\nCopy the build results and an [autostart.sh](http://wiki.openelec.tv/index.php/Autostart.sh) to the Raspberry Pi:\n```sh\nssh root@libreelec 'mkdir /storage/launchcontrol'\nscp launchcontrol root@libreelec:/storage/launchcontrol/\nscp contrib/kodi/autostart.sh root@libreelec:/storage/.config/\nscp contrib/kodi/script.service.launchcontrol.zip root@libreelec:/storage/\n```\n\nReboot LibreELEC and\n[install](http://kodi.wiki/view/HOW-TO:Install_add-ons_from_zip_files) the\n`script.service.launchcontrol.zip` addon.\n\nThats it!\n\n![Personalize screenshot](contrib/kodi/script.service.launchcontrol/resources/screenshot001.jpg \"Personalize\")\n\n## Bluetooth requirements\n\nSee the [gatt docs](https://godoc.org/github.com/currantlabs/gatt#hdr-SETUP)\nfor the Bluetooth requirements/setup.\n\n## Other examples\n\n### Build and run example (Linux)\n\n```sh\ngo build contrib/examples/playkiiroo.go\nsudo setcap 'cap_net_raw,cap_net_admin=eip' ./playkiiroo\n./playkiiroo -file input.txt\n```\n\nLaunchcontrol is released under a [BSD-style license](./LICENSE).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunjack%2Flaunchcontrol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffunjack%2Flaunchcontrol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffunjack%2Flaunchcontrol/lists"}