---
title: Vimeo Mass Import
menu_group: Vimeo Mass Import
menu_order: 40
tab: —
tab_order: 10
admin_slug: r_vimeo_import
summary: Guided card-based Vimeo Mass Import with summary stats, Review & Import, and cached library sync.
requires_vimeo: true
---

# Vimeo Mass Import

**Location:** MediaBlaster → **Vimeo Mass Import** (admin slug `r_vimeo_import`)

Choose videos from your connected Vimeo library and import them into MediaBlaster. The page is a **guided import workflow** (not a spreadsheet-style dashboard): a plain-language summary, a video card grid, collapsed import settings, and a **Review & Import** step before bulk imports run.

The default **Show** filter is **Ready to Import** (not imported yet and playable on Vimeo). Imported posts default to **Draft** unless you change post status in Import Settings.

## Prerequisites

1. **Enable Vimeo Integration** on General Settings (saved on).
2. Vimeo connected under [Integrations](integrations-vimeo-oauth.md).
3. At least one post type enabled (Movies, Short Videos, Episodes).
4. Optional import preferences under [Vimeo Settings](vimeo-settings.md) for refreshing existing posts.

## Using the importer

1. Open **MediaBlaster → Vimeo Mass Import**.
2. Confirm the header shows **Connected to Vimeo**.
3. Read the summary (how many videos are ready to import, already imported, or unavailable).
4. Use **Search**, **Show**, and **Sort** to find videos. The default filter is **Ready to Import**.
5. Click **Refresh from Vimeo** in the header to sync your library in batches (recommended for large libraries).
6. Review **Import Settings** on the card above the grid; click **Change settings** to adjust post type, status, thumbnails, tags, and genres.
7. Select videos with **Select** (or the checkbox), then click **Review & Import** in the bottom bar.
8. Confirm details in the review step, then click **Import N Videos** to start the import.
9. For a single video, you can still use **Import** on the card without the review step.

## Page layout

| Area | Purpose |
|------|---------|
| **Header** | Title, intro, **Connected to Vimeo** pill, **Refresh from Vimeo** |
| **Summary** | One sentence: ready to import / already imported / unavailable counts |
| **Toolbar** | Search, **Show** filter, **Sort** only (no refresh in toolbar) |
| **Import Settings** | Collapsed summary card; **Change settings** opens a dialog |
| **Video grid** | Cards with **Select**, status badges, per-card **Import** or **Retry** |
| **Bottom bar** | Appears when videos are selected: **Review & Import**, **Clear Selection** |
| **Loading Data** | Modal with spinner while the library loads (page load, search, filter, pagination) |

Bulk imports always go through **Review & Import** → confirm → **Import N Videos**. Progress shows `Importing X of Y…` and a completion notice.

## Import settings

| Option | Description |
|--------|-------------|
| **Import As** | Target MediaBlaster post type (Movies, Short Videos, Episodes, etc.) |
| **Post Status** | Defaults to **Draft**; choose **Published** only when ready |
| **Import thumbnail** | Sets the WordPress featured image from Vimeo |
| **Import description** | Copies Vimeo description into post content |
| **Import duration** | Saves duration to `rovidx_smarttv_Duration` |
| **Import tags from Vimeo** | Merges Vimeo tags with any selected WordPress tags |
| **Update existing imported videos** | Re-syncs posts that already match the Vimeo URL (allows selecting already-imported videos) |
| **WordPress tags / Genres** | Optional; set in Import Settings (not on the main browse screen) |

## Show filters

| Label | Meaning |
|-------|---------|
| **Ready to Import** | Not in MediaBlaster yet and playable on Vimeo (default) |
| **Already Imported** | A WordPress post already exists for this Vimeo URL |
| **Unavailable** | Vimeo reports the video as private or not playable |
| **Failed Imports** | Import failed during this browser session (use **Retry**) |
| **All Videos** | Full cached library |

## Status labels on cards

| Label | Meaning |
|-------|---------|
| **Already imported** | A WordPress post already exists for this Vimeo URL |
| **Not in MediaBlaster yet** | No matching post yet |
| **Importing…** | Import in progress |
| **Failed** | Import failed during this session (use **Retry**) |
| **Unavailable or private** | Cannot import from Vimeo in current state |

## Troubleshooting

| Symptom | Solution |
|---------|----------|
| **Loading Data** modal stays open | Wait for the AJAX request to finish; check browser Network tab for `mediablaster_vimeo_get_videos` errors |
| **Not connected** | Complete OAuth under **MediaBlaster → Integrations** |
| **All caught up** (empty Ready to Import) | Every playable video is already imported; try **All Videos** or **Refresh from Vimeo** |
| No videos match search | Use **Clear search** in the empty state |
| Empty library after load | Click **Refresh from Vimeo** and wait for sync progress to finish |
| SSL certificate problem | Common on Local WP — MediaBlaster uses the WordPress CA bundle; verify PHP cURL configuration |
| Duplicate imported anyway | Enable **Update existing imported videos** to refresh instead of creating duplicates; duplicates match on `rovidx_smart_tv_vm_pro_url` |

## For developers

Modern Mass Import UI (3.x card importer):

| Piece | Path |
|-------|------|
| Admin page | `includes/class-wp-smart-tv-vimeo-mass-import.php` |
| Importer service | `includes/vimeo/class-wp-smart-tv-vimeo-importer.php` |
| AJAX | `includes/controls/class-wp-smart-tv-vimeo-importer-ajax.php` |
| JS | `admin/js/wp-smart-tv-vimeo-importer.js` |
| CSS | `admin/css/wp-smart-tv-vimeo-importer.css` (scoped `.mediablaster-vimeo-importer`) |

**AJAX actions** (nonce `mediablaster_vimeo_importer`): `mediablaster_vimeo_get_videos`, `mediablaster_vimeo_refresh`, `mediablaster_vimeo_import_video`, `mediablaster_vimeo_import_selected`, `mediablaster_vimeo_get_stats`.

**Filter keys:** `ready_to_import` (default; not imported + available), `imported`, `unavailable`, `failed` (client-side session failures), `all`. Legacy `not_imported` / `available` remain in the importer service for compatibility.

**Legacy:** `rovidx_wpstv_vimeo_mass_import` and `admin/js/wp-smart-tv-vimeo-multi-import.js` (DataTables `#r_table`) are not enqueued on the Mass Import page; do not document or test DataTables for this screen.

Styles and scripts enqueue on `r_vimeo_import` only when `wpstv_is_vimeo_enabled()`.

## After import

- Review posts in Movies, Short Videos, or Episodes admin lists (check **Drafts** if you kept the default status).
- Spot-check **Video Data** and featured images.
- Validate entries via `GET /wp-json/mediablaster/v3/content` or [Import and Export](import-export.md).

## Related guides

- [Vimeo OAuth](integrations-vimeo-oauth.md)
- [Vimeo Settings](vimeo-settings.md)
- [Vimeo metabox](metabox-vimeo-import.md)
