{"id":16780324,"url":"https://github.com/patrickjahns/vncrecordingserver","last_synced_at":"2025-06-10T17:38:51.377Z","repository":{"id":76944618,"uuid":"127554445","full_name":"patrickjahns/vncrecordingserver","owner":"patrickjahns","description":"📼💻 simple http api for remote start/stop of a vnc2flv recording","archived":false,"fork":false,"pushed_at":"2023-05-01T20:14:35.000Z","size":17,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-11T08:59:12.501Z","etag":null,"topics":["api","recording","server","vnc","vnc2flv"],"latest_commit_sha":null,"homepage":"","language":"Python","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/patrickjahns.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-03-31T17:21:01.000Z","updated_at":"2019-08-22T14:34:00.000Z","dependencies_parsed_at":"2024-03-23T21:00:41.298Z","dependency_job_id":null,"html_url":"https://github.com/patrickjahns/vncrecordingserver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickjahns%2Fvncrecordingserver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickjahns%2Fvncrecordingserver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickjahns%2Fvncrecordingserver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickjahns%2Fvncrecordingserver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patrickjahns","download_url":"https://codeload.github.com/patrickjahns/vncrecordingserver/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243926070,"owners_count":20369910,"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":["api","recording","server","vnc","vnc2flv"],"created_at":"2024-10-13T07:34:48.506Z","updated_at":"2025-03-16T20:13:16.301Z","avatar_url":"https://github.com/patrickjahns.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n📼💻  vncrecordingserver\n========================\n\nProvides a simple HTTP Api to remote control recording a vnc stream. \n\n[![Build Status](https://cloud.drone.io/api/badges/patrickjahns/vncrecordingserver/status.svg)](https://cloud.drone.io/patrickjahns/vncrecordingserver)\n\n\n## Installation\n\nvia pip/setuptools:\n\n```\npip install git+git://github.com/patrickjahns/vncrecordingserver.git --process-dependency-links \n```\n\nnote: `--process-dependency-links` is required to install the correct version of [vnc2flv](https://github.com/patrickjahns/vnc2flv)\n\n## Usage\n\n### Start a recording\n\nA recording can be started by issuing a `POST` to the endpoint `/recodring`.\n\nFollowing options can be passed via the body:\n\n- `filename`  \nfilename of the recording ( defaults to: `out%Y%m%d%H%M.flv`)\n\n- `output_path`  \nthe path where the recording will be saved ( defaults to the current working directory of the server )\n\n- `host`  \nip/dns of the vnc server ( default `localhost`)\n\n- `port`  \nport of the vnc server (default: `5900` )\n\n- `password`  \npassword for connecting to the vnc server\n\n- `framerate`  \nframerate for the recording\n\n- `keyframe`  \ndefine after which amount of frames a keyframe will be inserted\n\n- `clipping`  \nspecific the clipping rectangle in the form of `widthxheight+left+top` ( example: `400x300+120+0` )\n\n- `debug`  \nwill output the debug information ( on the server ) provided by vnc2flv library\n\n- example:  \n\n```\ncurl -X POST \\\n  http://localhost:5000/recording \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n\t\"blocksize\": 32,\n\t\"clipping\": null,\n\t\"debug\": false,\n\t\"filename\": \"recording-name.flv\",\n\t\"framerate\": 12,\n\t\"host\": \"localhost\",\n\t\"keyframe\": 120,\n\t\"output_path\": \".\",\n\t\"password\": \"secret\",\n\t\"port\": 5900,\n\t\"preferred_encoding\": [\n    \t0,\n    \t-232,\n    \t-239\n\t]\n}'\n```\n\n\n\n### Stop recording\n\nA recording can be stopped by issuing a `DELETE` to the endpoint `/recodring`\n\n- example:\n\n```\ncurl -X DELETE http://localhost:5000/recording\n```\n\n### Get recording information\n\nInformation on the recording (server) can be fetched by issuing `GET` to the endpoint `/recodring`\n\n\nExample:\n```\ncurl -X GET http://localhost:5000/recording\n```\n\nThe response contains information, wether or not a recording is currently running ( `active: true/false`) and the information on the recording ( `filename`, `host` ....)\n\n```\n{\n    \"active\": false,\n    \"config\": {\n        \"blocksize\": 32,\n        \"clipping\": null,\n        \"debug\": false,\n        \"filename\": \"out201903152046.flv\",\n        \"framerate\": 12,\n        \"host\": \"localhost\",\n        \"keyframe\": 120,\n        \"output_path\": \".\",\n        \"password\": null,\n        \"port\": 5900,\n        \"preferred_encoding\": [\n            0,\n            -232,\n            -239\n        ]\n    }\n}\n```\n\n## Testing\n\n\n\n - starting the recordingserver\n```\npython -m vncrecordingserver\n```\n\n- have a vnc server (example with selenium containers)\n```\ndocker run --rm -p 5900:5900 selenium/standalone-chrome-debug\n```\n- start a recording\n```\ncurl -X POST \\\n  http://localhost:5000/recording \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"password\": \"secret\"}\n```\n\n- stop the recording\n```\ncurl -X GET \\\n  http://localhost:5000/recording \n```\n\n\n## Issues, Feedback and Ideas\n\nOpen an [Issue](https://github.com/patrickjahns/vncrecordingserver/issues)\n\n\n## Contributing\n\nFork -\u003e Patch -\u003e Push -\u003e Pull Request\n\n\n## Authors\n\n* [Patrick Jahns](https://github.com/patrickjahns)\n\n\n## License\n\nMIT\n\n\n## Copyright\nCopyright (c) 2018 Patrick Jahns \u003cgithub@patrickjahns.de\u003e\n\n## Credits\nYusuke Shinyama - for the [original vnc2flv implementation](http://www.unixuser.org/~euske/python/vnc2flv/index.html)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickjahns%2Fvncrecordingserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrickjahns%2Fvncrecordingserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickjahns%2Fvncrecordingserver/lists"}