tldv
$
npx mdskill add vm0-ai/vm0-skills/tldvFetch meeting recordings and summaries via the tl;dv API.
- Retrieves meeting data when users ask for summaries or recordings.
- Integrates with the tl;dv API using x-api-key authentication.
- Executes requests based on user mentions of tl;dv or meeting analysis.
- Returns structured JSON responses containing meeting metadata and links.
SKILL.md
.github/skills/tldvView on GitHub ↗
---
name: tldv
description: tl;dv API for meeting recordings. Use when user mentions "tl;dv", "meeting
recording", "meeting summary", or asks about call analysis.
---
## Troubleshooting
If requests fail, run `zero doctor check-connector --env-name TLDV_TOKEN` or `zero doctor check-connector --url https://pasta.tldv.io/v1alpha1/health --method GET`
## How to Use
All examples below assume you have `TLDV_TOKEN` set.
Base URL: `https://pasta.tldv.io`
API version: `v1alpha1` (alpha — endpoints may change before stable v1 release).
Authentication uses the `x-api-key` header (not Bearer).
## Health Check
### Verify API Connectivity
```bash
curl -s "https://pasta.tldv.io/v1alpha1/health" --header "x-api-key: $TLDV_TOKEN" | jq .
```
## Meetings
### List Meetings
```bash
curl -s "https://pasta.tldv.io/v1alpha1/meetings" --header "x-api-key: $TLDV_TOKEN" | jq '.results[] | {id, name, happenedAt, duration, organizer: .organizer.name}'
```
### List Meetings with Pagination
```bash
curl -s "https://pasta.tldv.io/v1alpha1/meetings?page=1&pageSize=10" --header "x-api-key: $TLDV_TOKEN" | jq '{page, pages, total, meetings: [.results[] | {id, name, happenedAt}]}'
```
### Get Meeting by ID
```bash
curl -s "https://pasta.tldv.io/v1alpha1/meetings/<meeting_id>" --header "x-api-key: $TLDV_TOKEN" | jq '{id, name, happenedAt, duration, url, organizer, invitees}'
```
### Download Meeting Recording
Returns a 302 redirect to a signed download URL (expires after 6 hours). Use `-L` to follow the redirect, or omit it to inspect the URL:
```bash
curl -s -I "https://pasta.tldv.io/v1alpha1/meetings/<meeting_id>/download" --header "x-api-key: $TLDV_TOKEN" | grep -i location
```
To download the recording directly:
```bash
curl -s -L -o /tmp/tldv_recording.mp4 "https://pasta.tldv.io/v1alpha1/meetings/<meeting_id>/download" --header "x-api-key: $TLDV_TOKEN"
```
### Import a Meeting
Write to `/tmp/tldv_request.json`:
```json
{
"url": "https://example.com/recording.mp4"
}
```
```bash
curl -s -X POST "https://pasta.tldv.io/v1alpha1/meetings/import" --header "x-api-key: $TLDV_TOKEN" --header "Content-Type: application/json" -d @/tmp/tldv_request.json | jq .
```
## Transcripts
### Get Meeting Transcript
```bash
curl -s "https://pasta.tldv.io/v1alpha1/meetings/<meeting_id>/transcript" --header "x-api-key: $TLDV_TOKEN" | jq '.data[] | {speaker, text, startTime, endTime}'
```
### Get Full Transcript as Plain Text
```bash
curl -s "https://pasta.tldv.io/v1alpha1/meetings/<meeting_id>/transcript" --header "x-api-key: $TLDV_TOKEN" | jq -r '.data[] | "\(.speaker): \(.text)"'
```
## Highlights / Notes
### Get Meeting Highlights
```bash
curl -s "https://pasta.tldv.io/v1alpha1/meetings/<meeting_id>/highlights" --header "x-api-key: $TLDV_TOKEN" | jq '.data[] | {text, startTime, source, topic: .topic.title, summary: .topic.summary}'
```
### Get Topic Summaries Only
```bash
curl -s "https://pasta.tldv.io/v1alpha1/meetings/<meeting_id>/highlights" --header "x-api-key: $TLDV_TOKEN" | jq '[.data[] | .topic | select(. != null)] | unique_by(.title) | .[] | {title, summary}'
```
## Guidelines
1. Authentication uses the `x-api-key` header, not `Authorization: Bearer`. Every request must include `--header "x-api-key: $TLDV_TOKEN"`.
2. The API is versioned at `v1alpha1`. This is an alpha API — endpoints and response formats may change.
3. All requests must use HTTPS. Plain HTTP requests are rejected.
4. API access requires the meeting organizer to have a Pro, Business, or Enterprise plan. Free plan organizers have no API access.
5. Meeting IDs are strings. Use `jq` to extract `id` fields from list responses.
6. Transcripts are only returned when processing is complete. If a meeting was just recorded, the transcript may not be available yet.
7. Download URLs from the `/download` endpoint expire after 6 hours.
8. Pagination: the meetings list returns `page`, `pages`, `total`, and `pageSize` fields. Use `?page=N` to navigate pages.
9. Use `<placeholder>` for dynamic IDs that the user must replace (e.g., `<meeting_id>`).
10. Write request bodies to `/tmp/tldv_request.json` before sending.