{"id":21319516,"url":"https://github.com/zoom/kaltura-sample-code","last_synced_at":"2025-07-23T23:05:28.468Z","repository":{"id":39962158,"uuid":"134611877","full_name":"zoom/kaltura-sample-code","owner":"zoom","description":null,"archived":false,"fork":false,"pushed_at":"2022-06-20T23:01:28.000Z","size":57,"stargazers_count":1,"open_issues_count":3,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2023-02-26T10:17:08.635Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zoom.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-05-23T18:43:59.000Z","updated_at":"2021-06-09T14:03:28.000Z","dependencies_parsed_at":"2022-08-27T11:32:53.121Z","dependency_job_id":null,"html_url":"https://github.com/zoom/kaltura-sample-code","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fkaltura-sample-code","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fkaltura-sample-code/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fkaltura-sample-code/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoom%2Fkaltura-sample-code/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoom","download_url":"https://codeload.github.com/zoom/kaltura-sample-code/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225795416,"owners_count":17525316,"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":[],"created_at":"2024-11-21T19:42:34.744Z","updated_at":"2024-11-21T19:42:35.356Z","avatar_url":"https://github.com/zoom.png","language":"Java","readme":"Use of this sample app is subject to our [Terms of Use](https://zoom.us/docs/en-us/zoom_api_license_and_tou.html)\n\n# Kaltura Connector #\n   \n   This is a CMS connector specifically generates Metadata required for Kaltura to upload recordings into Kaltura platform. \n   \n\n# Getting Started #\nDownload the project.\n\n    Edit the application-dev.properties file :  \n         Enter your App's Development Client Id, Client Secret, Database settings. \n    \n    Edit the application-prod.properties file : \n          Enter your App's Production Client Id, Client Secret, Database settings. \n    \n    Run CmsConnectorApplication\n\n\n#Prerequisites #\n     JDK 8.171\n\n#### Check jdk version ####\n\n    sudo java -version\n\n#### Database ####\n\n    MySql - run the db scripts under docs/scripts\n\n\n####Framework used #####\n  The project is build using SpringBoot framework. \n  Make sure all the dependencies are loaded as per pom.xml.\n  \n  \n  \n #Example#\n   ##### Sample Recording Complete Event Payload parsing and populating Kaltura MetaData ###### \n\n        String jsonString = \"{\"payload\":{\"account_id\":\"754467d1-69f2-47c8-ba05-6b1f1d8d39d8\",\"meeting\":{\"duration\":1,\"start_time\":\"2018-05-07T19:01:50Z\",\"timezone\":\"\",\"share_url\":\"https://example.com/recording/share/examplefile\",\"recording_files\":[{\"id\":\"9b70c332-22a3-40bc-b25d-ad26a701ad4e\",\"meeting_id\":\"jP9gHqGiQGikkwT1n6PTkQ==\",\"recording_start\":\"2018-05-07T18:52:56Z\",\"recording_end\":\"2018-05-07T18:53:16Z\",\"file_type\":\"MP4\",\"file_size\":1443512,\"play_url\":\"https://example.com/recording/play/playfile\",\"download_url\":\"https://example.com/recording/download/downloadfile\",\"status\":\"completed\"},{\"id\":\"754467d1-69f2-47c8-ba05-6b1f1d8d39d8\",\"meeting_id\":\"jP9gHqGiQGikkwT1n6PTkQ==\",\"recording_start\":\"2018-05-07T18:52:56Z\",\"recording_end\":\"2018-05-07T18:53:16Z\",\"file_type\":\"M4A\",\"file_size\":137852,\"play_url\":\"https://example.com/recording/play/recordingplayfile\",\"download_url\":\"https://example.com/recording/download/downloadfile\",\"status\":\"completed\"},{\"id\":\"6d4d1525-fbcf-4b57-a588-56ede2a941c1\",\"meeting_id\":\"jP9gHqGiQGikkwT1n6PTkQ==\",\"recording_start\":\"2018-05-07T18:52:56Z\",\"recording_end\":\"2018-05-07T18:53:16Z\",\"file_type\":\"\",\"file_size\":1365,\"play_url\":\"https://example.com/recording/play/recordingplayfile\",\"download_url\":\"https://example.com/recording/download/downloadfile\",\"status\":\"completed\"}],\"total_size\":1581364,\"topic\":\"Bob Smith's Zoom Meeting\",\"recording_count\":2,\"id\":456584879,\"uuid\":\"jP9gHqGiQGikkwT1n6PTkQ==\",\"host_id\":\"SulPWPxdR0ayXUPes8Sd5g\",\"host_email\":\"Bob.smith@zoom.com\"}},\"event\":\"recording_completed\",\"download_token\":\"eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJhcHBsaWNhdGlvbiIsImF1ZCI6ImR6U0JDMFpUTXVsekptOHZ6SEFiQSIsImNsYWltIjp7ImFjY291bnRJZCI6ImR6STFNMExkUVQta1BjRER6NUszVFEiLCJ1c2VySWQiOiJTdWxQV1B4ZFIwYXlYVVBlczhTZDVnIn0sImV4cCI6MTUyNTgwNjIwMjI4NH0.-I_C5R2R1I_JjSYF7vZ9gNL2qlbAkxTZJkt4WGKZf7I\"}\";\n\n        RecordingCompletePayload convertedObject = new Gson().fromJson(jsonString, RecordingCompletePayload.class);\n\n        // Sample Kaltura Account Details \n        \n        String userName = \"Bob Smith\"; # Your kaltura username \n\n        String userId = \"bob.smith@zoom.us\"; # Your kaltura userid\n\n        int partnerId = samplepartnerid; # Your kaltura partnerid\n\n        String administratorSecret = \"sampleadmin\"; # Your Kaltura administrator secret\n\n        int enableUpload = 1;\n\n        String categoryByZoomRecording = \"1\";\n        \n        // Payload Parsing and invoke kaltura upload\n        \n        Meeting meeting = convertedObject.getPayLoad().getMeeting();\n\n        String hostEmail = meeting.getHostEmail();\n        String hostId = meeting.getHostId();\n        String topic = meeting.getTopic();\n        meeting.getRecordingFiles().stream().forEach((recordingFile) -\u003e {\n            //create a thread for each file\n            CompletableFuture\u003cVoid\u003e completableFuture = new CompletableFuture\u003c\u003e();\n\n            CompletableFuture.runAsync(() -\u003e {\n                int success = 0;\n                try {\n                    KalturaUtil.uploadToKaltura(userName, userId, partnerId, administratorSecret, categoryByZoomRecording,\n                            recordingFile.getDownloadUrl(), topic, hostId, hostEmail);\n                } catch (Exception e) {\n                    e.printStackTrace();\n                }\n\n            }).thenApply((Void) -\u003e {\n                System.out.println(\"Completed\" );\n                return null;\n            });\n\n        });\n\n\n\n\n# License #\nThis project is licensed under the MIT License.\n\n## Need help?\n\nIf you're looking for help, try [Developer Support](https://devsupport.zoom.us) or our [Developer Forum](https://devforum.zoom.us). Priority support is also available with [Premier Developer Support](https://zoom.us/docs/en-us/developer-support-plans.html) plans.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoom%2Fkaltura-sample-code","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoom%2Fkaltura-sample-code","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoom%2Fkaltura-sample-code/lists"}