https://github.com/zoom/kaltura-sample-code
https://github.com/zoom/kaltura-sample-code
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/zoom/kaltura-sample-code
- Owner: zoom
- License: other
- Created: 2018-05-23T18:43:59.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2022-06-20T23:01:28.000Z (over 3 years ago)
- Last Synced: 2023-02-26T10:17:08.635Z (about 3 years ago)
- Language: Java
- Size: 55.7 KB
- Stars: 1
- Watchers: 6
- Forks: 5
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
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)
# Kaltura Connector #
This is a CMS connector specifically generates Metadata required for Kaltura to upload recordings into Kaltura platform.
# Getting Started #
Download the project.
Edit the application-dev.properties file :
Enter your App's Development Client Id, Client Secret, Database settings.
Edit the application-prod.properties file :
Enter your App's Production Client Id, Client Secret, Database settings.
Run CmsConnectorApplication
#Prerequisites #
JDK 8.171
#### Check jdk version ####
sudo java -version
#### Database ####
MySql - run the db scripts under docs/scripts
####Framework used #####
The project is build using SpringBoot framework.
Make sure all the dependencies are loaded as per pom.xml.
#Example#
##### Sample Recording Complete Event Payload parsing and populating Kaltura MetaData ######
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"}";
RecordingCompletePayload convertedObject = new Gson().fromJson(jsonString, RecordingCompletePayload.class);
// Sample Kaltura Account Details
String userName = "Bob Smith"; # Your kaltura username
String userId = "bob.smith@zoom.us"; # Your kaltura userid
int partnerId = samplepartnerid; # Your kaltura partnerid
String administratorSecret = "sampleadmin"; # Your Kaltura administrator secret
int enableUpload = 1;
String categoryByZoomRecording = "1";
// Payload Parsing and invoke kaltura upload
Meeting meeting = convertedObject.getPayLoad().getMeeting();
String hostEmail = meeting.getHostEmail();
String hostId = meeting.getHostId();
String topic = meeting.getTopic();
meeting.getRecordingFiles().stream().forEach((recordingFile) -> {
//create a thread for each file
CompletableFuture completableFuture = new CompletableFuture<>();
CompletableFuture.runAsync(() -> {
int success = 0;
try {
KalturaUtil.uploadToKaltura(userName, userId, partnerId, administratorSecret, categoryByZoomRecording,
recordingFile.getDownloadUrl(), topic, hostId, hostEmail);
} catch (Exception e) {
e.printStackTrace();
}
}).thenApply((Void) -> {
System.out.println("Completed" );
return null;
});
});
# License #
This project is licensed under the MIT License.
## Need help?
If 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.