# tl;dv Video Downloader (TLDV Google Meet Recording Download) (`madeingermany/tldv-video-downloader`) Actor

Downloads Google Meet's meeting recordings from tl;dv using meeting URLs and auth tokens.

Bulk upload meeting links, allows multiple concurrent meetings to be downloaded.

$5 per meeting :)

- **URL**: https://apify.com/madeingermany/tldv-video-downloader.md
- **Developed by:** [Made In Germany](https://apify.com/madeingermany) (community)
- **Categories:** Automation, Lead generation
- **Stats:** 120 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5,000.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## tl;dv Video Downloader

This Apify Actor allows you to easily batch download video recordings from your tl;dv meetings.

It takes a list of URLs and securely downloads the original `.mp4` recordings directly into the Apify Key-Value Store, outputting a clean dataset for easy integration.

### Features

- **Parallel Downloading**: Processes and downloads up to 3 videos concurrently to speed up extraction.
- **Dataset Export**: Clean output mapping your meeting names to direct MP4 download links.
- **Progress Tracking**: Reports download progress in the Apify Logs so you can verify that long downloads are advancing properly.

### Performance Expectations

Because the Actor relies on `ffmpeg` to download the chunks and stitch together the video streams, the processing time linearly depends on the length of the meetings.
**Expectation:** It generally takes around **10 minutes of processing time for every 1 hour of meeting recording**.

### How to Configure and Run

#### 1. Extract your Auth Token

To download private recordings, you must provide your tl;dv Auth Token.

Follow these steps to extract your Auth Token:

1. Open your web browser (Chrome, Edge, Firefox).
2. Go to [tldv.io](https://tldv.io/) and log in to your account.
3. Open any of your meeting recordings.
4. Open the Developer Tools (Right-click anywhere on the page > **Inspect** > Select the **Network** tab).
5. Refresh the page so that network requests start populating.
6. In the **Filter/Search** box of the Network tab, type `auth`
7. Click on the request that is labelled `auth`.
8. Scroll down in **Headers** tab and you will find **Authorization** header
9. Copy the entire value. It starts with `Bearer` then a space then followed by a long string of characters.
10. It will look something like this:
    `Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCIFkLWFiZjNjOWEwMWJjYyJ9.eyJpZCI6IjY0N2Ykjhkjh......21haWwuY29tIiwiaWF0IjoxNzczMzMyODk3L`

#### 2. Enter Input Data

- Open your meeting, hit share in top right, make sure to set  meeting link as public ie: anyone can view. Copy the link.
- **Meeting URLs**: Paste the list of full URLs for the tl;dv meetings you want to download (e.g., `https://tldv.io/app/meetings/123456789/`).
- **Auth Token**: Paste the token you extracted in Step 1.

#### 3. Output

When the run finishes, navigate to the **Dataset** tab of the Actor run. You will receive a clean export containing:

- `meeting id`
- `name of meeting`
- `source tldv url`
- `download url of video`

# Actor input Schema

## `meetingUrls` (type: `array`):

List of tl;dv meeting URLs to download.

## `authToken` (type: `string`):

Authentication token from tl;dv (found in the network tab for 'watch-page' request headers).

## Actor input object example

```json
{}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("madeingermany/tldv-video-downloader").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("madeingermany/tldv-video-downloader").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call madeingermany/tldv-video-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=madeingermany/tldv-video-downloader",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ciDvTpAKwMzJxcbiy/builds/65dXWyn0DkYHJ0Inx/openapi.json
