{"id":44164925,"url":"https://github.com/petabite/libsonyapi","last_synced_at":"2026-02-09T09:08:46.975Z","repository":{"id":54405241,"uuid":"138100565","full_name":"petabite/libsonyapi","owner":"petabite","description":"Python binding for the Sony Camera API","archived":false,"fork":false,"pushed_at":"2020-08-22T19:38:24.000Z","size":18,"stargazers_count":71,"open_issues_count":2,"forks_count":9,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-11-27T18:30:33.414Z","etag":null,"topics":["photography","python","sony-camera","sony-camera-api"],"latest_commit_sha":null,"homepage":"https://philipzha.ng/libsonyapi/","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/petabite.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":"2018-06-21T00:38:56.000Z","updated_at":"2025-11-18T01:53:30.000Z","dependencies_parsed_at":"2022-08-13T14:40:29.471Z","dependency_job_id":null,"html_url":"https://github.com/petabite/libsonyapi","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/petabite/libsonyapi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petabite%2Flibsonyapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petabite%2Flibsonyapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petabite%2Flibsonyapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petabite%2Flibsonyapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/petabite","download_url":"https://codeload.github.com/petabite/libsonyapi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/petabite%2Flibsonyapi/sbom","scorecard":{"id":728370,"data":{"date":"2025-08-11","repo":{"name":"github.com/petabite/libsonyapi","commit":"c6482b4ad90f199b7fb4e344f8e61d4ed0f9466f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"checks":[{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 0/7 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}}]},"last_synced_at":"2025-08-22T13:36:31.218Z","repository_id":54405241,"created_at":"2025-08-22T13:36:31.218Z","updated_at":"2025-08-22T13:36:31.218Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29260426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-09T04:11:57.159Z","status":"ssl_error","status_checked_at":"2026-02-09T04:11:56.117Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["photography","python","sony-camera","sony-camera-api"],"created_at":"2026-02-09T09:08:46.436Z","updated_at":"2026-02-09T09:08:46.961Z","avatar_url":"https://github.com/petabite.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# libsonyapi\n\nPython binding for the [Sony Camera API](https://developer.sony.com/develop/cameras/)\n\n---\n\n# REQUIREMENTS\n\n- a compatible Sony camera (find your camera [here](https://developer.sony.com/develop/cameras/api-information/supported-devices))\n- wifi connection\n\n# INSTALLATION\n\n## `pip install libsonyapi`\n\n**OR FROM SOURCE:**\n\n1. `git clone https://github.com/petabite/libsonyapi.git` or download the [latest release](https://github.com/petabite/libsonyapi/releases)\n2. `cd libsonyapi`\n3. `python setup.py install`\n\nRequires:\n\n- [requests](https://requests.readthedocs.io/en/master/user/install/#install)\n\n# QUICKSTART\n\n```python\nfrom libsonyapi.camera import Camera\nfrom libsonyapi.actions import Actions\n\ncamera = Camera()  # create camera instance\ncamera_info = camera.info()  # get camera camera_info\nprint(camera_info)\n\nprint(camera.name)  # print name of camera\nprint(camera.api_version)  # print api version of camera\n\ncamera.do(Actions.actTakePicture)  # take a picture\n\nfNumber = camera.do(Actions.getFNumber)\nprint(fNumber)  # prints fnumber\n\ncamera.do(Actions.setFNumber, \"5\")  # set aperture to 5\n```\n\n# CHANGELOG\n\n- **v1.0 - 8/22/20**\n  - first official release\n\n# HOW IT WORKS\n\n1. establishes connection with camera thru upnp ssdp protocol\n2. make calls to camera via http post and json body\n3. camera responds with json w/ info such as status and info if required by http call\n\n# DOCS\n\n##### Objects\n\n- libsonyapi.Camera()\n  - init a Camera object\n- libsonyapi.Actions()\n  - do not need to create instance\n  - contains string literals of sony camera api methods for convenience (auto-complete)\n\n##### Parameters\n\n- **Camera.name**\n  - name of the camera\n- **Camera.api_version**\n  - api version of camera\n- **Camera.services**\n  - list of services available on camera\n- **Camera.available_apis**\n  - list of apis currently available on camera\n\n##### Methods\n\n- **Camera.info(self)**\n  - returns camera info(name, api_version, supported services, available api) in dict\n- **Camera.do(self, method, param=[]):**\n  - **METHOD:** libsony.Actions.method, where method is one listed in the API LIST below\n  - **PARAM(optional):** accepts string of param if METHOD is a method that sets a value on the camera\n  - Returns the json response from the camera (for debugging)\n  - NOTE: your camera may not support all methods. use `Camera.do(\"getAvailableApiList\")['result']` to get currently available APIs.\n  - Refer to [Sony Camera API](https://developer.sony.com/develop/cameras/) docs for function of method and supported params\n\n# EXAMPLES\n\n- [**pylapse**](https://github.com/petabite/pylapse) - uses libsonyapi to automatically capture pictures for a timelapse\n\n# API LIST\n\n###### The table below shows the name of variables in the libsonyapi Actions class and its corresponding Sony Camera API method name\n\n| libsonyapi Variable Name         | Sony API Method Name               |\n| -------------------------------- | ---------------------------------- |\n| setShootMode                     | 'setShootMode'                     |\n| getShootMode                     | 'getShootMode'                     |\n| getSupportedShootMode            | 'getSupportedShootMode'            |\n| getAvailableShootMode            | 'getAvailableShootMode'            |\n| actTakePicture                   | 'actTakePicture'                   |\n| awaitTakePicture                 | 'awaitTakePicture'                 |\n| startContShooting                | 'startContShooting'                |\n| stopContShooting                 | 'stopContShooting'                 |\n| startMovieRec                    | 'startMovieRec'                    |\n| stopMovieRec                     | 'stopMovieRec'                     |\n| startAudioRec                    | 'startAudioRec'                    |\n| stopAudioRec                     | 'stopAudioRec'                     |\n| startIntervalStillRec            | 'startIntervalStillRec'            |\n| stopIntervalStillRec             | 'stopIntervalStillRec'             |\n| startLoopRec                     | 'startLoopRec'                     |\n| stopLoopRec                      | 'stopLoopRec'                      |\n| startLiveview                    | 'startLiveview'                    |\n| stopLiveview                     | 'stopLiveview'                     |\n| startLiveviewWithSize            | 'startLiveviewWithSize'            |\n| getLiveviewSize                  | 'getLiveviewSize'                  |\n| getSupportedLiveviewSize         | 'getSupportedLiveviewSize'         |\n| getAvailableLiveviewSize         | 'getAvailableLiveviewSize'         |\n| setLiveviewFrameInfo             | 'setLiveviewFrameInfo'             |\n| getLiveviewFrameInfo             | 'getLiveviewFrameInfo'             |\n| actZoom                          | 'actZoom'                          |\n| setZoomSetting                   | 'setZoomSetting'                   |\n| getZoomSetting                   | 'getZoomSetting'                   |\n| getSupportedZoomSetting          | 'getSupportedZoomSetting'          |\n| getAvailableZoomSetting          | 'getAvailableZoomSetting'          |\n| actHalfPressShutter              | 'actHalfPressShutter'              |\n| cancelHalfPressShutter           | 'cancelHalfPressShutter'           |\n| setTouchAFPosition               | 'setTouchAFPosition'               |\n| getTouchAFPosition               | 'getTouchAFPosition'               |\n| cancelTouchAFPosition            | 'cancelTouchAFPosition'            |\n| actTrackingFocus                 | 'actTrackingFocus'                 |\n| cancelTrackingFocus              | 'cancelTrackingFocus'              |\n| setTrackingFocus                 | 'setTrackingFocus'                 |\n| getTrackingFocus                 | 'getTrackingFocus'                 |\n| getSupportedTrackingFocus        | 'getSupportedTrackingFocus'        |\n| getAvailableTrackingFocus        | 'getAvailableTrackingFocus'        |\n| setContShootingMode              | 'setContShootingMode'              |\n| getContShootingMode              | 'getContShootingMode'              |\n| getSupportedContShootingMode     | 'getSupportedContShootingMode'     |\n| getAvailableContShootingMode     | 'getAvailableContShootingMode'     |\n| setContShootingSpeed             | 'setContShootingSpeed'             |\n| getContShootingSpeed             | 'getContShootingSpeed'             |\n| getSupportedContShootingSpeed    | 'getSupportedContShootingSpeed'    |\n| getAvailableContShootingSpeed    | 'getAvailableContShootingSpeed'    |\n| setSelfTimer                     | 'setSelfTimer'                     |\n| getSelfTimer                     | 'getSelfTimer'                     |\n| getSupportedSelfTimer            | 'getSupportedSelfTimer'            |\n| getAvailableSelfTimer            | 'getAvailableSelfTimer'            |\n| setExposureMode                  | 'setExposureMode'                  |\n| getExposureMode                  | 'getExposureMode'                  |\n| getSupportedExposureMode         | 'getSupportedExposureMode'         |\n| getAvailableExposureMode         | 'getAvailableExposureMode'         |\n| setFocusMode                     | 'setFocusMode'                     |\n| getFocusMode                     | 'getFocusMode'                     |\n| getSupportedFocusMode            | 'getSupportedFocusMode'            |\n| getAvailableFocusMode            | 'getAvailableFocusMode'            |\n| setExposureCompensation          | 'setExposureCompensation'          |\n| getExposureCompensation          | 'getExposureCompensation'          |\n| getSupportedExposureCompensation | 'getSupportedExposureCompensation' |\n| getAvailableExposureCompensation | 'getAvailableExposureCompensation' |\n| setFNumber                       | 'setFNumber'                       |\n| getFNumber                       | 'getFNumber'                       |\n| getSupportedFNumber              | 'getSupportedFNumber'              |\n| getAvailableFNumber              | 'getAvailableFNumber'              |\n| setShutterSpeed                  | 'setShutterSpeed'                  |\n| getShutterSpeed                  | 'getShutterSpeed'                  |\n| getSupportedShutterSpeed         | 'getSupportedShutterSpeed'         |\n| getAvailableShutterSpeed         | 'getAvailableShutterSpeed'         |\n| setIsoSpeedRate                  | 'setIsoSpeedRate'                  |\n| getIsoSpeedRate                  | 'getIsoSpeedRate'                  |\n| getSupportedIsoSpeedRate         | 'getSupportedIsoSpeedRate'         |\n| getAvailableIsoSpeedRate         | 'getAvailableIsoSpeedRate'         |\n| setWhiteBalance                  | 'setWhiteBalance'                  |\n| getWhiteBalance                  | 'getWhiteBalance'                  |\n| getSupportedWhiteBalance         | 'getSupportedWhiteBalance'         |\n| getAvailableWhiteBalance         | 'getAvailableWhiteBalance'         |\n| actWhiteBalanceOnePushCustom     | 'actWhiteBalanceOnePushCustom'     |\n| setProgramShift                  | 'setProgramShift'                  |\n| getSupportedProgramShift         | 'getSupportedProgramShift'         |\n| setFlashMode                     | 'setFlashMode'                     |\n| getFlashMode                     | 'getFlashMode'                     |\n| getSupportedFlashMode            | 'getSupportedFlashMode'            |\n| getAvailableFlashMode            | 'getAvailableFlashMode'            |\n| setStillSize                     | 'setStillSize'                     |\n| getStillSize                     | 'getStillSize'                     |\n| getSupportedStillSize            | 'getSupportedStillSize'            |\n| getAvailableStillSize            | 'getAvailableStillSize'            |\n| setStillQuality                  | 'setStillQuality'                  |\n| getStillQuality                  | 'getStillQuality'                  |\n| getSupportedStillQuality         | 'getSupportedStillQuality'         |\n| getAvailableStillQuality         | 'getAvailableStillQuality'         |\n| setPostviewImageSize             | 'setPostviewImageSize'             |\n| getPostviewImageSize             | 'getPostviewImageSize'             |\n| getSupportedPostviewImageSize    | 'getSupportedPostviewImageSize'    |\n| getAvailablePostviewImageSize    | 'getAvailablePostviewImageSize'    |\n| setMovieFileFormat               | 'setMovieFileFormat'               |\n| getMovieFileFormat               | 'getMovieFileFormat'               |\n| getSupportedMovieFileFormat      | 'getSupportedMovieFileFormat'      |\n| getAvailableMovieFileFormat      | 'getAvailableMovieFileFormat'      |\n| setMovieQuality                  | 'setMovieQuality'                  |\n| getMovieQuality                  | 'getMovieQuality'                  |\n| getSupportedMovieQuality         | 'getSupportedMovieQuality'         |\n| getAvailableMovieQuality         | 'getAvailableMovieQuality'         |\n| setSteadyMode                    | 'setSteadyMode'                    |\n| getSteadyMode                    | 'getSteadyMode'                    |\n| getSupportedSteadyMode           | 'getSupportedSteadyMode'           |\n| getAvailableSteadyMode           | 'getAvailableSteadyMode'           |\n| setViewAngle                     | 'setViewAngle'                     |\n| getViewAngle                     | 'getViewAngle'                     |\n| getSupportedViewAngle            | 'getSupportedViewAngle'            |\n| getAvailableViewAngle            | 'getAvailableViewAngle'            |\n| setSceneSelection                | 'setSceneSelection'                |\n| getSceneSelection                | 'getSceneSelection'                |\n| getSupportedSceneSelection       | 'getSupportedSceneSelection'       |\n| getAvailableSceneSelection       | 'getAvailableSceneSelection'       |\n| setColorSetting                  | 'setColorSetting'                  |\n| getColorSetting                  | 'getColorSetting'                  |\n| getSupportedColorSetting         | 'getSupportedColorSetting'         |\n| getAvailableColorSetting         | 'getAvailableColorSetting'         |\n| setIntervalTime                  | 'setIntervalTime'                  |\n| getIntervalTime                  | 'getIntervalTime'                  |\n| getSupportedIntervalTime         | 'getSupportedIntervalTime'         |\n| getAvailableIntervalTime         | 'getAvailableIntervalTime'         |\n| setLoopRecTime                   | 'setLoopRecTime'                   |\n| getLoopRecTime                   | 'getLoopRecTime'                   |\n| getSupportedLoopRecTime          | 'getSupportedLoopRecTime'          |\n| getAvailableLoopRecTime          | 'getAvailableLoopRecTime'          |\n| setWindNoiseReduction            | 'setWindNoiseReduction'            |\n| getWindNoiseReduction            | 'getWindNoiseReduction'            |\n| getSupportedWindNoiseReduction   | 'getSupportedWindNoiseReduction'   |\n| getAvailableWindNoiseReduction   | 'getAvailableWindNoiseReduction'   |\n| setAudioRecording                | 'setAudioRecording'                |\n| getAudioRecording                | 'getAudioRecording'                |\n| getSupportedAudioRecording       | 'getSupportedAudioRecording'       |\n| getAvailableAudioRecording       | 'getAvailableAudioRecording'       |\n| setFlipSetting                   | 'setFlipSetting'                   |\n| getFlipSetting                   | 'getFlipSetting'                   |\n| getSupportedFlipSetting          | 'getSupportedFlipSetting'          |\n| getAvailableFlipSetting          | 'getAvailableFlipSetting'          |\n| setTvColorSystem                 | 'setTvColorSystem'                 |\n| getTvColorSystem                 | 'getTvColorSystem'                 |\n| getSupportedTvColorSystem        | 'getSupportedTvColorSystem'        |\n| getAvailableTvColorSystem        | 'getAvailableTvColorSystem'        |\n| startRecMode                     | 'startRecMode'                     |\n| stopRecMo                        | 'stopRecMo'                        |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetabite%2Flibsonyapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpetabite%2Flibsonyapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpetabite%2Flibsonyapi/lists"}