=== Video Blog Sync for Vimeo ===
Contributors: innersitesolutions
Tags: vimeo, video, sync, import, embed
Requires at least: 6.0
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Turn your Vimeo library into WordPress blog posts — batched sync with live progress, duplicate detection, and embedded players.

== Description ==

**Video Blog Sync for Vimeo** creates a WordPress blog post for every video in your Vimeo library, with the video embedded at the top of the post and the Vimeo description as the post body.

Perfect for churches, schools, podcasters, and creators who publish to Vimeo first and want their WordPress site to stay in step — without copy-pasting embed codes.

= Features =

* **One-click full sync** — fetches your entire Vimeo library and creates a post for each video that hasn't been imported yet.
* **Batched with live progress** — videos are processed in small batches via AJAX, so even libraries with thousands of videos sync without timeouts. A progress bar shows exactly where you are.
* **No duplicates, ever** — each imported video is tracked by its Vimeo ID. Re-run the sync as often as you like; only new videos become posts.
* **Partial import** — import just the N most recent videos to test your setup before a full sync.
* **Smart live-event handling** — upcoming live event placeholders (not yet playable) are automatically skipped, and finished recordings link to the correct clip rather than the recurring event URL.
* **Import options** — choose the post status (draft or publish), a default category, and the post author for imported posts.
* **Team library support** — sync from your personal account or any Vimeo team/user ID, with a built-in Test Connection diagnostic that discovers the right ID for you.
* **Debug mode** — an optional step-by-step log of every API request and post creation, ideal for troubleshooting.

= How posts are created =

Each post contains the Vimeo video URL on its own line (WordPress converts it into an embedded player automatically via oEmbed) followed by the video's description. Posts are created with your chosen status — drafts by default, so you can review before publishing.

== Installation ==

1. Install and activate the plugin from the WordPress.org plugin directory.
2. Go to **Vimeo Sync → Settings**.
3. Create a personal access token at [developer.vimeo.com/apps](https://developer.vimeo.com/apps) with the **Private** and **Public** scopes, and paste it into the settings.
4. (Optional) If your videos live in a team library, use **Test Connection** with a video URL to discover the team's User ID and enter it.
5. Go to **Vimeo Sync**, run a small **Partial Import** to verify everything, then **Sync All Videos**.

== Frequently Asked Questions ==

= Will it create duplicate posts if I run the sync twice? =

No. Every imported video's Vimeo ID is stored as post meta, and already-synced videos are skipped on every run.

= What token scopes do I need? =

Your personal access token needs the **Private** and **Public** scopes. Without Private, the Vimeo API refuses to list your own videos.

= My videos are in a team library. How do I sync them? =

Enter the team's numeric user ID in **Settings → Vimeo User / Team ID**. Not sure what it is? Paste any video URL from the library into the **Test Connection** video-lookup field — the diagnostic reports the owner's ID for you.

= Why were some videos skipped as "live events"? =

Upcoming live event placeholders (scheduled but not yet playable) are skipped on purpose — there's no video to embed yet. Once the event has a finished recording, the next sync imports it normally.

= Are the imported posts published immediately? =

By default they're created as drafts so you can review them. You can switch to immediate publishing in **Settings → Import Options**.

= Does deleting the plugin delete my posts? =

No. Uninstalling removes the plugin's settings and tracking data, but your posts are yours and are left untouched.

== Screenshots ==

1. The sync page with full sync, partial import, and live progress bar.
2. Settings: Vimeo connection, import options, and Test Connection diagnostic.
3. Debug mode showing the step-by-step sync log.

== Changelog ==

= 1.0.0 =
* Initial public release.
* Batched AJAX sync with live progress bar.
* Partial import of the N most recent videos.
* Duplicate detection via Vimeo ID post meta.
* Live-event placeholder filtering with automatic compensation.
* Import options: post status, default category, post author.
* Test Connection diagnostic with team-ID discovery.
* Optional debug logging.

== Upgrade Notice ==

= 1.0.0 =
Initial release.
