Skip to main content
Glama
peakmojo

Zoom Recordings No-Auth

by peakmojo

zoom_get_recording_details

Retrieve detailed metadata and file information for a specific Zoom meeting recording using a meeting ID and access token, simplifying recording management and access.

Instructions

Get detailed information about a specific Zoom meeting recording including recording files and metadata

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
meeting_idYesThe Zoom meeting ID to retrieve recording details for
zoom_access_tokenYesZoom OAuth2 access token

Implementation Reference

  • Core handler function in ZoomClient class that retrieves detailed recording information for a specific Zoom meeting using the API endpoint /meetings/{meeting_id}/recordings. Handles token refresh and datetime conversion.
    def get_recording_details(self, meeting_id: str) -> str:
        """Get detailed information about a specific meeting recording
        
        Args:
            meeting_id: The Zoom meeting ID to get recordings for
            
        Returns:
            JSON string with recording details
        """
        try:
            # Define the operation
            def _operation():
                logger.debug(f"Fetching recording details for meeting_id={meeting_id}")
                
                # Get recording information for meeting
                response = requests.get(
                    f"{self.base_url}/meetings/{meeting_id}/recordings",
                    headers=self._get_headers()
                )
                
                if response.status_code != 200:
                    return json.dumps({
                        "error": f"Failed to retrieve recording details. Status code: {response.status_code}",
                        "details": response.text,
                        "status": "error"
                    })
                
                recording_details = response.json()
                
                # Process and return recording details
                return json.dumps(convert_datetime_fields(recording_details))
            
            # Execute the operation with token refresh handling
            return self._handle_token_refresh(_operation)
                
        except Exception as e:
            logger.error(f"Exception in get_recording_details: {str(e)}", exc_info=True)
            return json.dumps({"error": str(e)})
  • Input schema definition for the zoom_get_recording_details tool, specifying required parameters zoom_access_token and meeting_id.
    types.Tool(
        name="zoom_get_recording_details",
        description="Get detailed information about a specific Zoom meeting recording including recording files and metadata",
        inputSchema={
            "type": "object",
            "properties": {
                "zoom_access_token": {"type": "string", "description": "Zoom OAuth2 access token"},
                "meeting_id": {"type": "string", "description": "The Zoom meeting ID to retrieve recording details for"}
            },
            "required": ["zoom_access_token", "meeting_id"]
        },
    ),
  • Dispatch logic in the main @server.call_tool() handler that routes calls to zoom_get_recording_details, extracts arguments, initializes ZoomClient, and invokes the core handler method.
    elif name == "zoom_get_recording_details":
        # Initialize Zoom client with just access token
        zoom = ZoomClient(
            access_token=access_token
        )
        
        meeting_id = arguments.get("meeting_id")
        
        if not meeting_id:
            raise ValueError("meeting_id is required")
        
        results = zoom.get_recording_details(meeting_id=meeting_id)
        return [types.TextContent(type="text", text=results)]
  • JavaScript implementation of the core getRecordingDetails method in ZoomClient class, fetching recording details via Zoom API.
    async getRecordingDetails(meeting_id) {
      try {
        logger.debug(`Fetching recording details for meeting_id=${meeting_id}`);
        
        const response = await axios.get(
          `${this.baseUrl}/meetings/${meeting_id}/recordings`,
          { headers: this._getHeaders() }
        );
        
        if (response.status !== 200) {
          return JSON.stringify({
            error: `Failed to retrieve recording details. Status code: ${response.status}`,
            details: response.data,
            status: "error"
          });
        }
        
        return JSON.stringify(response.data);
      } catch (error) {
        logger.error(`Exception in getRecordingDetails: ${error.message}`);
        if (error.response?.status === 401) {
          return JSON.stringify({
            error: "Unauthorized. Token might be expired. Please refresh your token.",
            status: "error"
          });
        }
        return JSON.stringify({ error: error.message });
      }
  • server.js:358-377 (registration)
    JavaScript server.tool registration, schema with Zod, and inline handler dispatcher for zoom_get_recording_details.
    server.tool(
      'zoom_get_recording_details',
      'Get detailed information about a specific Zoom meeting recording including recording files and metadata',
      {
        zoom_access_token: z.string().describe('Zoom OAuth2 access token'),
        meeting_id: z.string().describe('The Zoom meeting ID to retrieve recording details for')
      },
      async ({ zoom_access_token, meeting_id }) => {
        try {
          const zoom = new ZoomClient({ accessToken: zoom_access_token });
          const result = await zoom.getRecordingDetails(meeting_id);
          return {
            content: [{ type: 'text', text: result }]
          };
        } catch (error) {
          return {
            content: [{ type: 'text', text: `Error: ${error.message}` }]
          };
        }
      }
Install Server

Other Tools

Related Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/peakmojo/mcp-server-zoom-noauth'

If you have feedback or need assistance with the MCP directory API, please join our Discord server