Retrieving file paths for the Recording Connector


When utilizing the Recording Connector, unlike normal Cloud Recordings, the file path for the recording is not available within the web portal and will need to be retrieved via a custom Marketplace Oauth app. Once the Marketplace app and credentials have been created, developers can create custom integrations for retrieving on-premise recordings from the Recording Connector.  

This article covers:

Prerequisites for retrieving file paths for the Recording Connector

How to create the Marketplace app and credentials

Creating the Marketplace app

  1. Sign in to Zoom Marketplace as an admin.
  2. Click Develop, then Build App.
  3. Under Choose your app type, navigate to Server-to-Server OAuth.
  4. Click Create.
  5. Under App Name, enter the name of the app.
  6. In the left navigation, click Information.
  7. Fill out the following fields:
    • App name: Name of the application.
    • Note: This will utilize the App Name added in previous steps by default.
    • Short description: Description of the app
    • Company name: Name of your organization. 
    • Under Developer Contact Information enter the following:
      • Name: Name of the developer.
      • Email Address: Contact address for the developer.
  8. In the left navigation, click Scopes.
  9. Click + Add Scopes.
  10. Under Scope Type, click Recording
  11. Enable the following:
    • View and manage sub account's user recordings
    • View all user recordings
    • View and manage all user recordings
  12. Click Done.
  13. In the left navigation, click Activation.
  14. Click Activate your app.

Retrieving the client ID and client secret

  1. Sign in to Zoom Marketplace as an admin.
  2. Click Manage.
  3. Find and click on the app created in the previous steps.
  4. Under App Credentials, copy the Account ID, Client ID, and Client Secret.

Retrieving the access token

Once the application has been created, an access token will be necessary for retrieving the file path. To learn more about retrieving the token, please refer to our Zoom Developer documentation. The format for the token is as follows:

Format:

curl -X POST https://zoom.us/oauth/token -d 'grant_type=account_credentials' -d 'account_id={accountID}' -H 'Host: zoom.us' -H 'Authorization: Basic Base64Encoded(clientId:clientSecret)'

Example:

curl -X POST https://zoom.us/oauth/token -d 'grant_type=account_credentials' -d 'account_id=8o---fNN56ttyyzXtXmfl65eQ' -H 'Host: zoom.us' -H 'Authorization: Basic SXpVXprfds0xqWW53WU10UTpscGFYcUV2bTNMWG5tdWNqMjFFGjkiNiR1FjbmJYadsfdfsgRA=='

How to retrieve file paths for the Recording Connector

Once the Marketplace app has been created, and the app credentials, as well as the access token, have been retrieved, the file paths for recordings from the Recording Connector utilizing the API call for List recordings of an account. For examples of the call and result, see below:

Example call:

curl --location 'https://zoom.us/v2/accounts/me/recordings?page_size=1&from=2022-3-21&to=2023-3-22&mc=true' --header 'Authorization: Bearer eyJzdiI6IjAwMDAwMSIsImFsZyI6IkhTNTEyIiwidiI6IjIuMCIsImtpZCI6IjY5NDBlYjZkLTcwZWYtNGQ1Ny1iNTgxLTBlOGY2ZGVlMzlmOSJ9.eyJiOiJdfdsfsodcdvxbdfgshtyu456745637356wHRwczovL29hdXRoLnpvb20udXMiLCJ1aWQiOiI4Q1YyZ3AzY1JUaWVYc3Z2ZDJwTzFBIiwidmVyIjo5LCTliM2Q3NzEwYTllYzZjNzMyNjFlYzE5ODgiLCJuYmYiOjE2Nzk0NzQ5MTAsImNvZGUiOiJ5T245NTR5MVFHVzVQYmRma1h5TWFBSTZrcEJ0MVp3Y20iLCJppnclM1VXpUNUtKQ0xqWW53WU10USIsImdubyI6MCwiZXhwIjoxNjc5NDc4NTEwLCJ0eXBlIjozLCJpYXQiOjE2Nzk0NzQ5MTAsImFpZCI6IjhvLWZOTkFuUVdpelh0WG1mbDY1ZVEifQ._PbHPnhMKxjQOx5wD-qJgL8l9BxN_frr6FhW05IUJHFXd2GcThnBmWp-fAOz-kexI3Fqeh9XQ5MPbg2N2W9ZVQ'

Example result:

{
"from": "2023-02-22",
"to": "2023-03-22",
"page_size": 1,
"total_records": 17,
"next_page_token": "NamAdoHjog1ubMVSbOy8i87ViZH7YNhsGE2",
"meetings": [{
"uuid": "ImyFoRZXQDGrF9wxmGFdxQ==",
"id": 123456789,
"account_id": "8o-fNNAnQWizXtXmfl65eQ",
"host_id": "8CV2gp3cRTieXsvvd2pO1A",
"topic": Zoom Meeting",
"type": 1,
"start_time": "2023-03-17T02:12:06Z",
"timezone": "",
"host_email": "org_dev@org.com",
"duration": 36,
"total_size": 71409435,
"recording_count": 4,
"share_url": "https://org.zoom.us/rec/share/RKYQzsdsfdsfZKBbEppKY_-wo39f4lp2EhKc_ncQmqbpadEGytgX6in1Ldi0r7qbcvbcvh34523pEAnJr.m5aB8dPAgK-qIWNr",
"recording_files": [{
"id": "34a80cac-fbf6-428d-9072-dec6a07239a9",
"meeting_id": "ImyFoRasfds567ZXQDGrF9wxmGFdxQ==",
"recording_start": "2023-03-17T02:12:09Z",
"recording_end": "2023-03-17T02:15:20Z",
"file_type": "M4A",
"file_extension": "M4A",
"file_size": 3032822,
"file_path": "/2023/03/17/226C85A1-1657-4031-AB17-DC3198615DC5/GMT20230317-021209_Recording.m4a",
"status": "completed",
"recording_type": "audio_only"
}, {
"id": "552dd4cb-6075-4ca9-8a51-cc018e0fbcca",
"meeting_id": "ImyFoRZXQDcvcxGrF9wxmGFdxQ==",
"recording_start": "2023-03-17T02:24:34Z",
"recording_end": "2023-03-17T02:57:55Z",
"file_type": "M4A",
"file_extension": "M4A",
"file_size": 31833962,
"file_path": "/2023/03/17/226C85A1-1657-4031-AB17-DC3198615DC5/GMT20230317-022434_Recording.m4a",
"status": "completed",
"recording_type": "audio_only"
}, {
"id": "5a5b2711-e211-4f1b-a086-1c97ac86324b",
"meeting_id": "ImyFoRZXQDGrF9wxmGFdxQ==",
"recording_start": "2023-03-17T02:12:09Z",
"recording_end": "2023-03-17T02:15:20Z",
"file_type": "MP4",
"file_extension": "MP4",
"file_size": 3179510,
"file_path": "/2023/03/17/226C85A1-1657-4031-AB17-DC3198615DC5/GMT20230317-021209_Recording_640x360.mp4",
"status": "completed",
"recording_type": "shared_screen_with_speaker_view"
}],
"recording_play_passcode": "Ghigyz1-eZ7QEKzwZxHysvxbcvbdtgkWBbbsFQ"}]
}]
}

In this example, the file_path parameter returns the following recording file paths for 3 recordings:

"file_path": "/2023/03/17/226C85A1-1657-4031-AB17-DC3198615DC5/GMT20230317-021209_Recording.m4a",
"file_path": "/2023/03/17/226C85A1-1657-4031-AB17-DC3198615DC5/GMT20230317-022434_Recording.m4a",
"file_path": "/2023/03/17/226C85A1-1657-4031-AB17-DC3198615DC5/GMT20230317-021209_Recording_640x360.mp4",