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}` }]
          };
        }
      }

Tool Definition Quality

Score is being calculated. Check back soon.

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