Loom Video Scraper avatar
Loom Video Scraper

Pricing

$2.00/month + usage

Go to Store
Loom Video Scraper

Loom Video Scraper

Developed by

dz_omar

dz_omar

Maintained by Community

πŸŽ₯ Advanced Loom scraper that extracts & downloads videos, transcripts, and metadata from individual videos and entire πŸ—‚οΈfolders. Supports bulk operations, multiple formats (SRT, VTT, TXT, XML), and authentication. πŸ“š Ideal for content archiving and knowledge management.

5.0 (7)

Pricing

$2.00/month + usage

7

Total users

7

Monthly users

7

Runs succeeded

96%

Last modified

13 hours ago

You can access the Loom Video Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in Integrations settings in Apify Console.

{
"openapi": "3.0.1",
"info": {
"version": "2.0",
"x-build-id": "3tBd9rYXy20XoB7uB"
},
"servers": [
{
"url": "https://api.apify.com/v2"
}
],
"paths": {
"/acts/dz_omar~loom-video-scraper/run-sync-get-dataset-items": {
"post": {
"operationId": "run-sync-get-dataset-items-dz_omar-loom-video-scraper",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/acts/dz_omar~loom-video-scraper/runs": {
"post": {
"operationId": "runs-sync-dz_omar-loom-video-scraper",
"x-openai-isConsequential": false,
"summary": "Executes an Actor and returns information about the initiated run in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/runsResponseSchema"
}
}
}
}
}
}
},
"/acts/dz_omar~loom-video-scraper/run-sync": {
"post": {
"operationId": "run-sync-dz_omar-loom-video-scraper",
"x-openai-isConsequential": false,
"summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
"tags": [
"Run Actor"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/inputSchema"
}
}
}
},
"parameters": [
{
"name": "token",
"in": "query",
"required": true,
"schema": {
"type": "string"
},
"description": "Enter your Apify token here"
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
}
},
"components": {
"schemas": {
"inputSchema": {
"type": "object",
"properties": {
"url": {
"title": "πŸ”— Loom URLs",
"type": "array",
"description": "List of Loom share URLs. Supports both individual videos and πŸ“ folders:\n\n**Individual Videos:**\n- https://www.loom.com/share/VIDEO_ID\n- VIDEO_ID (32-character hex string)\n\n**Folders:**\n- https://www.loom.com/share/folder/FOLDER_ID\n- FOLDER_ID (32-character hex string)\n\n**Mixed Input:** You can mix videos and folders in the same request.",
"default": [
"https://www.loom.com/share/5e0b6099bbe14fbabd47bcf81cc5d73f"
],
"items": {
"type": "string"
}
},
"downloadVideo": {
"title": "🎞️ Download Video Files",
"type": "boolean",
"description": "## 🎬 Download Video Files\n\nEnable this option to download and store the actual video files:\n\n- **Disabled (default)**: Only video metadata and transcript extracted\n- **Enabled**: Download MP4 video files to Apify storage\n\n⚠️ **Warning:** Video files can be large and will consume significant storage space and bandwidth.\n\nπŸ“ **Folder Support:** When processing folders, this applies to all videos in the folder.",
"default": false
},
"downloadTranscript": {
"title": "πŸ“ Download Transcript Files",
"type": "boolean",
"description": "## πŸ“ Download Transcript Files\n\nEnable this option to store transcript files in Apify storage for download:\n\n- **Disabled (default)**: Only clean text transcript included in results\n- **Enabled**: Store formatted transcript files in storage with download URLs\n\nπŸ’‘ **Note:** Clean text transcript is always included in the results regardless of this setting.\n\nπŸ“ **Folder Support:** When processing folders, this applies to all videos in the folder.",
"default": false
},
"outputFormat": {
"title": "πŸ“„ Transcript Download Format",
"enum": [
"srt",
"vtt",
"txt",
"xml"
],
"type": "string",
"description": "## 🎯 Select Transcript Format (only applies if transcript download is enabled)\n\nChoose the subtitle format for downloaded transcripts:\n\n- **SubRip (SRT)**: Standard format compatible with most video players (default)\n- **WebVTT (VTT)**: Web-friendly format with CSS styling support for HTML5 videos\n- **Plain Text (TXT)**: Raw transcript text without timestamps\n- **XML**: Original structure with full metadata\n\nπŸ’‘ **Recommendations:**\n- Use SRT for general compatibility\n- Choose VTT for web embedding\n- Select TXT for NLP/text analysis\n- Keep XML for full technical details\n\nπŸ“ **Folder Support:** This format applies to all videos when processing folders.",
"default": "srt"
},
"includeAccountVideos": {
"title": "πŸ‘€ Include My Account Videos",
"type": "boolean",
"description": "## πŸ“š Access Your Personal Loom Library\n\nEnable this to automatically discover and process videos from your Loom account:\n\n- **Disabled (default)**: Only process URLs provided above\n- **Enabled**: Scan your account for videos and include them in results\n\nπŸ” **Authentication Required:**\n- This feature ONLY works with proper authentication (email + password OR browser cookies)\n- Without authentication, this setting has no effect\n- If enabled but no authentication provided, only URL-based videos will be processed\n\nπŸ“Š **What You Get:**\n- All videos from your account workspace\n- Video metadata, transcripts, and comments\n- Same download options apply (video files, transcripts)\n- Perfect for bulk analysis, backup, or content management\n\n⚠️ **Important Notes:**\n- If your account has no videos, results will be empty\n- Large accounts may take longer to process\n- Respects your account's privacy settings\n\nπŸ’‘ **Use Cases:**\n- Backup all your Loom content\n- Analyze your video library\n- Bulk download transcripts for documentation\n- Content audit and management",
"default": false
},
"videoSortOrder": {
"title": "πŸ“… Video Sort Order",
"enum": [
"DESC",
"ASC"
],
"type": "string",
"description": "## 🧭 Choose how to sort your videos\n\n- **Newest to Oldest**: Shows the most recently uploaded videos first\n- **Oldest to Newest**: Shows the earliest videos first\n\nπŸ“ This applies to how videos are listed when scraping folders or organizing downloads.",
"default": "ASC"
},
"startDate": {
"title": "πŸ“… Start Date",
"type": "string",
"description": "Select the earliest upload date to include. Default is when Loom was likely active."
},
"endDate": {
"title": "πŸ“… End Date",
"type": "string",
"description": "Select the latest upload date to include. Defaults to today."
},
"email": {
"title": "πŸ“§ Email (optional)",
"type": "string",
"description": "**Method 1: Automatic Login** 🎯\n\nYour Loom account email for automatic login.\n\n**How it works:**\nβœ… System logs in automatically\nπŸͺ Creates fresh session cookies\nπŸ”„ If login fails β†’ falls back to browser cookies below\n\nπŸ’‘ **Leave empty** to skip automatic login and use browser cookies instead."
},
"password": {
"title": "πŸ”‘ Password (optional)",
"type": "string",
"description": "**Required only if using email above** πŸ”’\n\nYour Loom account password.\n\n**Security:** Password is encrypted and deleted after use.\n\n**What happens:**\nβœ… **Login succeeds** β†’ You're authenticated\n❌ **Login fails** β†’ System tries browser cookies below\n❌ **Both fail** β†’ Only public content accessible"
},
"customCookies": {
"title": "πŸͺ Browser Cookies (optional)",
"type": "array",
"description": "**Method 2: Import Browser Session** πŸͺ\n\nCopy cookies from your browser to access private content.\n\nπŸ”„ **How Authentication Works:**\n\n**Priority Order:**\n1. **Email + Password** (if provided) β†’ Automatic login\n2. **Browser Cookies** (if login fails or no credentials)\n3. **No Authentication** β†’ Public content only\n\nπŸ“‹ **Getting Your Cookies:**\n\n**Easy Method - Copy Cookies Extension:**\n1. Install: [Copy Cookies Extension](https://chromewebstore.google.com/detail/copy-cookies/jcbpglbplpblnagieibnemmkiamekcdg)\n2. Go to loom.com and log in\n3. Click the extension β†’ Copy as JSON\n4. Paste here\n\n**Alternative - Cookie-Editor:**\n1. Install: [Cookie-Editor](https://cookie-editor.com/)\n2. Go to loom.com and log in\n3. Open extension β†’ Export β†’ JSON format\n4. Paste here\n\n ",
"default": []
}
}
},
"runsResponseSchema": {
"type": "object",
"properties": {
"data": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"actId": {
"type": "string"
},
"userId": {
"type": "string"
},
"startedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"finishedAt": {
"type": "string",
"format": "date-time",
"example": "2025-01-08T00:00:00.000Z"
},
"status": {
"type": "string",
"example": "READY"
},
"meta": {
"type": "object",
"properties": {
"origin": {
"type": "string",
"example": "API"
},
"userAgent": {
"type": "string"
}
}
},
"stats": {
"type": "object",
"properties": {
"inputBodyLen": {
"type": "integer",
"example": 2000
},
"rebootCount": {
"type": "integer",
"example": 0
},
"restartCount": {
"type": "integer",
"example": 0
},
"resurrectCount": {
"type": "integer",
"example": 0
},
"computeUnits": {
"type": "integer",
"example": 0
}
}
},
"options": {
"type": "object",
"properties": {
"build": {
"type": "string",
"example": "latest"
},
"timeoutSecs": {
"type": "integer",
"example": 300
},
"memoryMbytes": {
"type": "integer",
"example": 1024
},
"diskMbytes": {
"type": "integer",
"example": 2048
}
}
},
"buildId": {
"type": "string"
},
"defaultKeyValueStoreId": {
"type": "string"
},
"defaultDatasetId": {
"type": "string"
},
"defaultRequestQueueId": {
"type": "string"
},
"buildNumber": {
"type": "string",
"example": "1.0.0"
},
"containerUrl": {
"type": "string"
},
"usage": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "integer",
"example": 1
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
},
"usageTotalUsd": {
"type": "number",
"example": 0.00005
},
"usageUsd": {
"type": "object",
"properties": {
"ACTOR_COMPUTE_UNITS": {
"type": "integer",
"example": 0
},
"DATASET_READS": {
"type": "integer",
"example": 0
},
"DATASET_WRITES": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_READS": {
"type": "integer",
"example": 0
},
"KEY_VALUE_STORE_WRITES": {
"type": "number",
"example": 0.00005
},
"KEY_VALUE_STORE_LISTS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_READS": {
"type": "integer",
"example": 0
},
"REQUEST_QUEUE_WRITES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_INTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"DATA_TRANSFER_EXTERNAL_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
"type": "integer",
"example": 0
},
"PROXY_SERPS": {
"type": "integer",
"example": 0
}
}
}
}
}
}
}
}
}
}

Loom Video Scraper - Download & Extract Tool OpenAPI definition

OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.

OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.

By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.

You can download the OpenAPI definitions for Loom Video Scraper from the options below:

If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.

You can also check out our other API clients: