plugin-icon

BarkingLlama Roulette

Spin the wheel to embed a random YouTube playlist video via shortcode or REST API.
Version
1.0.4
Last updated
Mar 16, 2026
BarkingLlama Roulette

BarkingLlama Roulette adds a simple shortcode and REST endpoint that selects a random YouTube video from a configured playlist and embeds it on your site.

Perfect for motivational cards as Shorts, “daily randomness” pages, or any curated playlist you want to keep fresh.

Features: * Shortcode: [llama_roulette] * REST endpoint: /wp-json/llama-roulette/v1/random * Playlist caching via transients to reduce YouTube API calls * Optional Privacy Enhanced Mode (youtube-nocookie embeds) * “Start Muted” setting for reliable autoplay

External services

This plugin uses the YouTube Data API v3 (Google) to retrieve videos from the configured YouTube playlist so it can select and display a random video.

What data is sent and when: * The configured playlist ID (or playlist ID parsed from a provided playlist URL) is sent when the plugin requests playlist items. * The configured YouTube API key is sent with those API requests for authentication. * These requests occur when cached playlist data is missing or expired, or when playlist data must be refreshed.

Service provider: * Google / YouTube Data API v3

Terms of Service and Privacy Policy: * Google API Services Terms of Service: https://developers.google.com/terms/ * YouTube API Services Terms of Service: https://developers.google.com/youtube/terms/api-services-terms-of-service * Google Privacy Policy: https://policies.google.com/privacy

Shortcode

Basic: [llama_roulette]

Available attributes: * button_label – Custom label for the trigger button (e.g., button_label="Try Luck"). * playlist – Optional YouTube Playlist ID or URL to override the global setting. * autoplay – Set to 1 to auto-load/play, 0 to wait for click. * muted – Set to 1 to start muted, 0 for sound (Note: browsers block unmuted autoplay). * show_title – Set to 1 to show the video title below the player, 0 to hide. * alignleft, center, or right. * max_width – Any CSS width value (e.g., max_width="800px"). * aspect_ratio – CSS aspect-ratio (e.g., 16/9, 4/3). * class – Append custom CSS classes.

Example: [llama_roulette playlist=”PLxxxx” button_label=”Spin!” autoplay=”1″ muted=”1″ show_title=”1″]

REST API

GET /wp-json/llama-roulette/v1/random

Optional query param: * playlist (Playlist ID or URL) to override the configured playlist for that request

Example: GET /wp-json/llama-roulette/v1/random?playlist=PLabc123

License

This plugin is licensed under the GPLv2 or later.

Freeon paid plans
Tested up to
WordPress 7.0
This plugin is available for download for your site.