{"library":"pyobjc-framework-screencapturekit","title":"PyObjC ScreenCaptureKit Framework Bindings","description":"PyObjC-framework-ScreenCaptureKit provides Python bindings for Apple's ScreenCaptureKit framework on macOS. It enables Python applications to interact with macOS screen recording functionalities. This library is part of the larger PyObjC project, receiving updates in sync with macOS SDK changes and Python versions. The current version is 12.1, released with a focus on macOS SDK updates and Python 3.10+ compatibility.","language":"python","status":"active","last_verified":"Sat May 16","install":{"commands":["pip install pyobjc-framework-screencapturekit"],"cli":null},"imports":["import ScreenCaptureKit","from ScreenCaptureKit import SCShareableContent"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import ScreenCaptureKit\nfrom Foundation import NSLog, NSDate\nimport objc\n\n# Define a completion handler for the asynchronous call\ndef completion_handler(content, error):\n    if error:\n        NSLog(\"Error getting shareable content: %@\", error)\n    elif content:\n        NSLog(\"Successfully retrieved shareable content:\")\n        NSLog(\"Applications: %s\", content.applications())\n        NSLog(\"Displays: %s\", content.displays())\n        NSLog(\"Windows: %s\", content.windows())\n    else:\n        NSLog(\"No content or error.\")\n\n# Asynchronously get available screen capture content\n# Note: This requires 'Screen Recording' permission in macOS System Settings.\nScreenCaptureKit.SCShareableContent.getShareableContentWithCompletionHandler_(completion_handler)\n\n# Keep the runloop active briefly for the completion handler to execute.\n# In a full Cocoa application, this would be handled by the app's main runloop.\nobjc.currentEventLoop().runUntilDate_(NSDate.dateWithTimeIntervalSinceNow_(2))\n","lang":"python","description":"This quickstart demonstrates how to list available screen capture content (applications, displays, windows) using `SCShareableContent`. Note that running this code requires 'Screen Recording' permissions to be granted to your Python environment in macOS System Settings > Privacy & Security. Asynchronous operations in `ScreenCaptureKit` require the `NSRunLoop` to be active for completion handlers to execute.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-16","installed_version":null,"pypi_latest":"12.1","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":0,"avg_install_s":null,"avg_import_s":null,"wheel_type":null},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.9,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":2.4,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pyobjc-framework-screencapturekit","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":3.6,"import_time_s":null,"mem_mb":null,"disk_size":null}]}}