{"id":48908462,"url":"https://github.com/fastpix/android-data-kaltura","last_synced_at":"2026-04-21T12:01:21.965Z","repository":{"id":351632294,"uuid":"1113706784","full_name":"FastPix/android-data-kaltura","owner":"FastPix","description":"This SDK enables seamless integration with Kaltura Player, offering advanced video analytics via the FastPix Dashboard","archived":false,"fork":false,"pushed_at":"2026-04-15T19:49:20.000Z","size":142,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-16T22:33:50.111Z","etag":null,"topics":["analytics","android-sdk","data","fastpix","kaltura","kaltura-player","metrics","sdk","video","video-metrics"],"latest_commit_sha":null,"homepage":"https://docs.fastpix.io/docs/monitor-kaltura-player","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FastPix.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.MD","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-10T10:55:23.000Z","updated_at":"2026-04-15T19:45:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/FastPix/android-data-kaltura","commit_stats":null,"previous_names":["fastpix/android-data-kaltura"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/FastPix/android-data-kaltura","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastPix%2Fandroid-data-kaltura","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastPix%2Fandroid-data-kaltura/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastPix%2Fandroid-data-kaltura/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastPix%2Fandroid-data-kaltura/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FastPix","download_url":"https://codeload.github.com/FastPix/android-data-kaltura/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FastPix%2Fandroid-data-kaltura/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32091053,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T11:25:29.218Z","status":"ssl_error","status_checked_at":"2026-04-21T11:25:28.499Z","response_time":128,"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":["analytics","android-sdk","data","fastpix","kaltura","kaltura-player","metrics","sdk","video","video-metrics"],"created_at":"2026-04-16T22:03:00.932Z","updated_at":"2026-04-21T12:01:21.929Z","avatar_url":"https://github.com/FastPix.png","language":"Kotlin","readme":"## Monitor Kaltura Player (Android)\nThe FastPix Data SDK with [KalturaPlayer](https://github.com/FastPix/android-data-KalturaPlayer) helps you track key video metrics like user interactions, playback quality, and performance to enhance the viewing experience. It lets you customize data tracking, monitor streaming quality, and securely send insights for better optimization and error resolution.\n\n### Key features:\n- Capture user engagement through detailed viewer interaction data.\n- Monitor playback quality with real-time performance analysis.\n- Identify and fix video delivery bottlenecks on Android.\n- Customize tracking to match specific monitoring needs.\n- Handle errors with robust reporting and diagnostics.\n- Gain deep insights into video performance with streaming diagnostics.\n\n### Prerequisites:\nTo track and analyze video performance, initialize the SDK with your Workspace key. Learn about [Workspaces](https://docs.fastpix.io/docs/workspaces).\n\n1. Access the FastPix [Dashboard](https://dashboard.fastpix.io/login?redirect=https://dashboard.fastpix.io/): Log in and navigate to the Workspaces section.\n2. Locate Your Workspace Key: Copy the Workspace Key for client-side monitoring. Include this key in your Swift code on every page where you want to track video performance.\n\n### Step 1: Install and setup\n\n1. Open your Android Studio project where you want to integrate the SDK.\n\n2. Add the FastPix Data SDK dependency:\n\n3. Navigate to your app-level `build.gradle` file (or `build.gradle.kts` if using Kotlin DSL).\n\n```groovy\n// FastPix Kaltura Player SDK\nimplementation \"io.fastpix.data:kaltura:1.0.2\"\n```\n\nNavigate to your `settings.gradle` file\n\n```groovy\ndependencyResolutionManagement {\n    repositories {\n        google()\n        mavenCentral()\n        maven {\n            url = uri(\"https://maven.pkg.github.com/FastPix/android-data-kalturaPlayer\")\n            credentials {\n                username = \"your-github-userName\"\n                password = \"your-PAT\"\n            }\n        }\n    }\n}\n```\n\n3. Sync your project with Gradle files\n   Click `Sync Now` in the notification bar to download and integrate the FastPix Data SDK.\n\n\n### Step 2: Import the SDK\n\nEnsure kalturaPlayer is already configured in your project.\n```kotlin\nimport io.fastpix.data.domain.model.CustomDataDetails\nimport io.fastpix.data.domain.model.PlayerDataDetails\nimport io.fastpix.data.domain.model.VideoDataDetails\nimport io.fastpix.data.kaltura_player_data.src.FastPixKalturaPlayer\n```\n\n\n### Step 3: Basic Integration\n\nEnsure that the `workSpaceId` is provided, as it is a mandatory field for FastPix integration, uniquely identifying your workspace. Install and import `FastPixKalturaPlayer` into your project, and create an `fastPixKalturaPlayer` instance to bind it to. If you are using any other custom player then create an instance of that player.\n\nNext, create an instance of `FastPixKalturaPlayer` for tracking the analytics. Once the video URL is loaded and playback has started, the SDK will begin tracking the analytics.\n\n```kotlin\nimport ...\nclass MainActivity : AppCompatActivity() {\n private var fastPixKalturaPlayer: FastPixKalturaPlayer? = null}\n```\n\nYou can initialize KalturaBasicPlayer with a `kalturaPlayer` in your Android application to enable seamless functionality. Use the following Kotlin or Java code in your Android application to configure kalturaPlayer with FastPix:\n\n```kotlin\n        val videoData = VideoDataDetails(\n            videoId = \"video-id\",\n            videoTitle = \"Sample Video\",\n        )\n\n        val customData = CustomDataDetails(\n            customField1 = \"custom-value-1\",\n            customField2 = \"custom-value-2\"\n        )\n\n        val playerData = PlayerDataDetails(\n            playerName = \"Kaltura Basic Player\",\n            playerVersion = \"5.0.3\"\n        )\n        fastPixKalturaPlayer = FastPixKalturaPlayer(\n            context = this,\n            playerView = binding.playerContainer,\n            kalturaPlayer = kalturaPlayer!!,\n            workspaceId = \"your-workspace-id\",\n            videoDataDetails = videoData,\n            playerDataDetails = playerData,\n            customDataDetails = customData,\n            enableLogging = true\n        )\n```\n\n### Step 4: Including custom data and metadata\n- `workSpaceId` is a mandatory parameter that tells the SDK on which workspace the data will collect.\n- `playerView` is another mandatory parameter.\n\nCheck out the user-passable metadata documentation to see the metadata supported by FastPix. You can use custom metadata fields like `customField1` to `customField10` for your business logic, giving you the flexibility to pass any required values. Named attributes, such as `videoId` and `videoTitle`, can be passed directly as they are.\n\n```kotlin\n     val videoData = VideoDataDetails(\n            videoId = \"video-id\",\n            videoTitle = \"Sample Video\",\n            videoSeries = \"Demo Series\",\n            videoProducer = \"Producer Name\",\n            videoContentType = \"Video\",\n            videoVariant = \"HD\",\n            videoLanguage = \"en\",\n            videoCDN = \"cloudflare\"\n        )\n\n        val customData = CustomDataDetails(\n            customField1 = \"custom-value-1\",\n            customField2 = \"custom-value-2\"\n        )\n```\n\nTo set up video analytics, create a FastPixKalturaPlayer object by providing the following parameters: your application's `Context` (usually the Activity), the `KalturaPlayer` instance, and the `customerData`.\n\n```kotlin\n  fastPixKalturaPlayer = FastPixKalturaPlayer(\n            context = this,\n            playerView = binding.playerContainer,\n            kalturaPlayer = kalturaPlayer!!,\n            workspaceId = \"your-workspace-id\",\n            videoDataDetails = videoData,\n            playerDataDetails = playerData,\n            customDataDetails = customData,\n            enableLogging = true\n        )\n```\n\nFinally, when destroying the player, make sure to call the `fastPixKalturaPlayer?.release()` function to properly release resources.\n\n```kotlin\noverride fun onDestroy() {\n    super.onDestroy()\n    fastPixKalturaPlayer?.release() // Cleanup FastPix tracking\n}\n```\n\nAfter completing the integration, start playing a video in your player. A few minutes after stopping playback, you’ll see the results in your FastPix Video Data dashboard. Log in to the dashboard, navigate to the workspace associated with your ws_key, and look for video views.\n\n### CustomerData Parameters\n\nThe `CustomerData` class accepts the following parameters:\n\n| Parameter           | Type              | Required | Description                                       |\n|---------------------|-------------------|----------|---------------------------------------------------|\n| `workSpaceId`       | String            | ✅        | Your FastPix workspace identifier                 |\n| `beaconUrl`         | String            | ❌        | Custom beacon URL (default: metrix.ws)            |\n| `videoData`      | VideoDataDetails  | ❌        | Video metadata (see below)                        |\n| `playerData`        | PlayerDataDetails | ❌        | Player information |\n| `customData` | CustomDataDetails | ❌        | Custom metadata fields  |\n\n\n\n\n### What FastPix Tracks\nOnce initialized, the SDK automatically collects:\n| Category          | Examples                                  |\n| ----------------- | ----------------------------------------- |\n| Playback events   | play, pause, playing, ended               |\n| Buffer events     | buffering, buffered                       |\n| Seek behavior     | seeking, seeked                           |\n| QoS metrics       | bitrate, resolution, FPS (when available) |\n| Errors            | kalturaPlayer error codes and messages       |\n| Player metadata   | fullscreen, autoplay, MIME type etc       |\n\n\n### Example to configure Kaltura with FastPix Data SDK.\nAdd your Stream URL in url `\"your-stream-url.m3u8\"` and FastPix Workspace Key in  `workspaceId`\n```kotlin\nclass MainActivity : AppCompatActivity() {\n\n    private lateinit var binding: ActivityMainBinding\n    private var kalturaPlayer: KalturaBasicPlayer? = null\n    private var fastPixKalturaPlayer: FastPixKalturaPlayer? = null\n\n    override fun onCreate(savedInstanceState: Bundle?) {\n        super.onCreate(savedInstanceState)\n        binding = ActivityMainBinding.inflate(layoutInflater)\n        setContentView(binding.root)\n\n        setupKalturaPlayer()\n        setupFastPixSDK()\n    }\n\n    private fun setupKalturaPlayer() {\n        val initOptions = PlayerInitOptions().setAutoPlay(true)\n        kalturaPlayer = KalturaBasicPlayer.create(this, initOptions)\n\n        kalturaPlayer?.setPlayerView(\n            FrameLayout.LayoutParams.MATCH_PARENT,\n            FrameLayout.LayoutParams.MATCH_PARENT\n        )\n\n        val playerView = kalturaPlayer?.getPlayerView() ?: run {\n            return\n        }\n\n        binding.playerContainer.addView(playerView)\n\n        val entry = PKMediaEntry().apply {\n            mediaType = PKMediaEntry.MediaEntryType.Vod\n            sources = listOf(\n                PKMediaSource().apply {\n                    url = \"your-stream-url.m3u8\"\n                }\n            )\n        }\n\n        kalturaPlayer?.setMedia(entry)\n    }\n\n    private fun setupFastPixSDK() {\n        val videoData = VideoDataDetails(\n            videoId = \"video-id\",\n            videoTitle = \"Sample Video\",\n            videoSeries = \"Demo Series\",\n            videoProducer = \"Producer Name\",\n            videoContentType = \"Video\",\n            videoVariant = \"HD\",\n            videoLanguage = \"en\",\n            videoCDN = \"cloudflare\"\n        )\n\n        val customData = CustomDataDetails(\n            customField1 = \"custom-value-1\",\n            customField2 = \"custom-value-2\"\n        )\n\n        val playerData = PlayerDataDetails(\n            playerName = \"Kaltura Basic Player\",\n            playerVersion = \"5.0.3\"\n        )\n\n        fastPixKalturaPlayer = FastPixKalturaPlayer(\n            context = this,\n            playerView = binding.playerContainer,\n            kalturaPlayer = kalturaPlayer!!,\n            workspaceId = \"your-workspace-id\",\n            videoDataDetails = videoData,\n            playerDataDetails = playerData,\n            customDataDetails = customData,\n            enableLogging = true\n        )\n    }\n\n    override fun onDestroy() {\n        super.onDestroy()\n        fastPixKalturaPlayer?.release()\n        kalturaPlayer?.destroy()\n    }\n}\n\n```\n### Debug Logging\nEnable logs using:\n```kotlin\nenableLogging = true\n```\n\n## Troubleshooting\n\n#### SDK Not Tracking Events\n\n- Ensure you've initialized the SDK after configuring Kaltura Player\n- Check that `workSpaceId` is correct\n- Verify Kaltura Player events are firing (check Kaltura Player logs)\n- Enable logging to see FastPix SDK activity\n\n#### Memory Leaks\n\n- Always call `release()` in `onDestroy()`\n- Ensure ` kalturaPlayer?.destroy()` is called before releasing FastPix SDK\n\n#### Missing Events\n\n- The SDK automatically tracks all events from Kaltura Player\n- Events are tracked based on Kaltura Player native event system\n- Check that Kaltura player is properly configured and receiving events\n\n\n\n### Support\n📩 Email: support@fastpix.io\n📚 Docs: https://docs.fastpix.io\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastpix%2Fandroid-data-kaltura","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffastpix%2Fandroid-data-kaltura","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffastpix%2Fandroid-data-kaltura/lists"}