{"adoption": {"forks": 212, "observed_at": "2026-08-28T04:04:44.413825+00:00", "stars": 1442}, "canonical_url": "https://ross.abutalabs.com/products/gopro-wifi-api-unofficial", "card": {"archived": true, "artifact_type": "learning-resource", "description": "Unofficial GoPro API Library for Python - connect to GoPro via WiFi.", "domain": ["hardware", "developer-tools", "apis", "media"], "enriched": true, "function": ["documentation", "api-documentation", "http-client", "sdk"], "health_score": 10, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["KonradIT/gopro-py-api", "KonradIT/goprowifihack"], "name": "GoPro WiFi API (unofficial)", "platform": ["cross-platform", "python", "cli"], "pushed_at": "2022-12-25T13:09:55+00:00", "repo": "KonradIT/gopro-py-api", "stars": 1442, "tags": ["gopro", "wifi-api", "camera-control", "unofficial-api", "livestreaming", "media-browsing", "apidoc", "hardware-hacking", "opengopro", "automation"], "topics": ["gopro", "hero4", "hero3", "python", "api-wrapper", "api-service", "python-library", "camera", "gopro-api", "hero5", "hero4-session", "hero6"], "urls": [], "use_cases": ["control a gopro camera over wifi from a script", "start a gopro livestream programmatically", "download photos and videos from a gopro sd card over wifi", "read gopro camera status and settings remotely", "build a python app to trigger gopro recording", "automate gopro timelapse or mode switching", "reverse-engineer gopro mobile app wifi commands"], "what_it_is": "Community-maintained documentation of the unofficial GoPro WiFi (gpControl/Smarty) API used by GoPro's mobile apps, covering commands, camera status, livestreaming, and media browsing for HERO2 through HERO11, Fusion, and MAX. It is now sunset in favor of GoPro's official OpenGoPro documentation and is only minimally maintained.", "when_to_avoid": ["you target newer cameras and want an officially supported API - use OpenGoPro instead", "you need guaranteed long-term maintenance or vendor support", "you need BLE-only control with official tutorials and examples"], "when_to_choose": ["you own an older WiFi-enabled GoPro (HERO2-HERO7, Fusion, MAX) and need its undocumented WiFi API", "you want community-documented gpControl endpoints with per-model command lists", "you need a quick reference before migrating to the official OpenGoPro BLE/WiFi API"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/KonradIT/gopro-py-api", "repo": "KonradIT/gopro-py-api", "role": "sdk", "score": 10}, {"path": "/repos/KonradIT/goprowifihack", "repo": "KonradIT/goprowifihack", "role": "docs", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:44.413825+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:49:01.155031+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8a5679ef3e52192e210fa3f4bdf0cceb8a5bda01f9b7afc3ba9745bac1901b70", "fetched_at": "2026-08-28T04:04:44.413825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/KonradIT/gopro-py-api"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3480, "days_push": 1347, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}