| 开发者 | Ja1me4 |
|---|---|
| 更新时间 | 2026年10月25日 09:45 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.1 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
[bunny_video] shortcode: a single video, Bunny's own player with optional label/note overlays.[bunny_grid] shortcode: a 1 to 6 column responsive grid, filterable by category or tag.[bunny_playlist] shortcode: one live main player with a click-to-switch thumbnail grid below it, like a YouTube playlist.[bunny_video id="128"]
The same video with a corner label and a note:
[bunny_video id="128" label="NEW" note="Updated for 2026"]
A responsive grid of everything tagged "tutorials", 3 columns wide:
[bunny_grid tag="tutorials" columns="3"]
A playlist: one main player, with a click-to-switch grid of every video in the "webinars" category below it:
[bunny_playlist category="webinars"]
Videos play in the Nahnu Player by default. To use Bunny's own iframe player for one embed instead, add player="bunny":
[bunny_video id="128" player="bunny"]
Prefer the block editor? Type /nahnu or /bunny while writing a post to find "Nahnu Video", "Nahnu Video Grid", and "Nahnu Video Playlist", each with a searchable picker and a live preview, no attributes to remember. Don't want to hand-type shortcode attributes either way? Nahnu Video → Shortcode Generator builds the exact shortcode for you with a live preview and a one-click copy button.
Requirements
You'll need your own Bunny Stream account with a video library already set up. Nahnu Video does not host or transcode video itself. It's a WordPress-side companion to your existing Bunny library.
This plugin is not made by, affiliated with, or endorsed by Bunny.net. "Bunny Stream" is a product of Bunny.net; Nahnu Video is an independent, third-party integration.
nahnu-video-for-bunny-stream-bunny-net folder to /wp-content/plugins/, or install it through the WordPress Plugins screen.[bunny_video] / [bunny_grid] / [bunny_playlist] shortcodes, or the "Nahnu Video" / "Nahnu Video Grid" / "Nahnu Video Playlist" blocks.No. Video hosting, transcoding, and delivery are all handled by Bunny Stream directly. This plugin only connects your WordPress site to a library you already manage in Bunny's dashboard.
Yes. [bunny_video id="your-bunny-guid"] works with a raw Bunny video GUID directly, even before that video has been synced into WordPress.
Click Sync Now again (Nahnu Video → Settings → Library Sync). Syncing doesn't just pull in new videos, it also refreshes everything about videos you've already synced: title, duration, view count, and the cover photo/thumbnail. Turning on Auto-sync does this for you automatically on a schedule instead, and the optional Bunny webhook (Settings → Bunny Webhook) does it within seconds of the change. Either way, syncing never touches anything you've set yourself in WordPress, like categories, tags, or a video's published/draft status.
The next full sync moves its WordPress post to the Trash, so it stops showing up on your site. It's never deleted outright, so you can restore it from the Trash if that was a mistake. Developers can turn this off with the nahnu_video_remove_missing_on_sync filter.
No, it's optional. Without it, scheduled sync (or Sync Now) still picks everything up. With it, Bunny tells WordPress about new uploads, finished encodes and changes right away. Copy the URL from Nahnu Video → Settings → Bunny Webhook and paste it into Bunny under Stream → your library → API → Webhook URL. The URL contains a secret key, so treat it like a password; you can create a new one at any time.
Bunny's embed is an iframe from Bunny's servers, so nothing on your site can change how it looks. The Nahnu Player is this plugin's own player, rendered on your page from the same HLS stream your videos already have, and built on Plyr and hls.js, the same two libraries Bunny's player is built on. Because its controls are part of your page, your brand colors apply to it instantly, with no Bunny API involved. It has quality selection, speed, captions (from the captions you've added in Bunny), picture-in-picture, AirPlay and fullscreen. It's the default. We kept Bunny's player as an option, under Settings → Player or per embed with player="bunny", for three reasons: Bunny counts views through its own player, so plays in the Nahnu Player may not show in Bunny's statistics or this plugin's Stats column; the Nahnu Player loads the stream directly, so it can't play from a Pull Zone that blocks direct file access or enforces Token Authentication on every file; and anything set in Bunny's own player settings (watermark, custom controls, heatmap) only exists in Bunny's player. Chromecast works in both (see the next question).
Yes, as an option you turn on: Nahnu Video → Settings → Player → Chromecast → "Nahnu Player: add a Chromecast button". It's off by default, for one reason: casting needs Google's Cast script, and Google only allows that script to be loaded from Google's own server (www.gstatic.com), so it can't be bundled with this plugin the way the player itself is.
What happens when it's on:
www.gstatic.com. Like any file loaded from another site, that means Google receives the visitor's IP address and browser details, under Google's own privacy policy. Nothing is sent from your server, and nothing is loaded when the setting is off.Yes, for the Nahnu Player. Under Nahnu Video → Settings → Player Branding set the key (accent) color, the controls color and the caption text/background colors; they apply as soon as you save. Bunny's own iframe player can't be styled from your site, so its colors are set in your Bunny dashboard (Stream → your library → Player).
As of 1.0.2 the block editor's preview self-hosts its thumbnails and never loads them from a public URL. When the editor needs a thumbnail, WordPress downloads it from Bunny once on the server (sending your site as the referrer, like a normal page view, and signed with your Token Authentication key if you set one), keeps a small copy in wp-content/uploads/nahnu-video-thumbs/, and sends it to the editor itself through an admin-only address. Pull Zone referrer/hotlink rules, CDN or offload plugins that rewrite uploads URLs, and the editor's own frame can't get in the way. If Bunny refuses the download, the preview shows a dark image saying what Bunny answered (for example "HTTP 403"), which points straight at the Pull Zone's security settings. The copies are refreshed when a cover photo changes in Bunny and once a week otherwise, and are removed if you delete the plugin with "delete all data" on. If a thumbnail still doesn't show in the editor, turn on Settings → Block Editor → Preview diagnostics: the block then shows a notice listing each image's state and URL, which is what to send us. It's off by default and meant for debugging only. The block editor's live preview has been the one part of this plugin that's been hard to make fully reliable, while the published page your visitors see has always worked well, so most sites never need it.
The editor preview is there so you can see what your page will look like while you build it (thumbnail, size, layout, labels, grid columns, the playlist), not to watch your videos; use the published page or Preview for that. Blocks preview with the Nahnu Player, whichever player the block itself is set to, because its thumbnails are served by your own site and show reliably inside the editor. Videos never start on their own while you edit, and Chromecast is never loaded in the editor. The published page always uses the player you chose (Settings → Player, or the block's Player option). If you need to see Bunny's own player in the editor, for example while debugging, turn on Settings → Block Editor → "Use Bunny's player in the editor preview". We keep it as an option for debugging and for when we're working on the plugin, but it's best left off.
Not from Bunny. Your Bunny Stream library is never modified by this plugin, in either direction. By default, deleting the plugin also leaves your synced WordPress data (videos, categories, tags, settings) untouched. There's an opt-in "delete all data on uninstall" toggle under Settings → Advanced if you want a clean removal.
player="bunny" on any shortcode, or with the Player option in each block. Bunny's iframe player itself is unchanged.nahnu_video_player_mode, nahnu_video_local_player_options, nahnu_video_cast_sdk_url, nahnu_video_editor_local_thumbnails and nahnu_video_is_editor_preview filters.nahnu_video_import(), nahnu_video_refresh(), nahnu_video_remove() or the matching actions, plus look-up functions by GUID, post ID, or Media Library attachment. See "For Developers".nahnu_video_bunny_credentials, nahnu_video_should_import, nahnu_video_insert_post_args, nahnu_video_remove_missing_on_sync, nahnu_video_refresh_retry_delays, nahnu_video_webhook_imports_new, nahnu_video_removed, nahnu_video_deleted, nahnu_video_webhook_received and nahnu_video_loaded.nahnu_video_render() also accepts a post ID or Bunny GUID as its first argument.[bunny_video], [bunny_grid], and [bunny_playlist] shortcodes, plus matching "Nahnu Video", "Nahnu Video Grid", and "Nahnu Video Playlist" blocks with a searchable video picker and live preview.