{"id":308576,"date":"2026-06-13T19:27:18","date_gmt":"2026-06-13T19:27:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/meydy-reel-studio\/"},"modified":"2026-06-13T19:49:25","modified_gmt":"2026-06-13T19:49:25","slug":"meydy-reel-studio","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/meydy-reel-studio\/","author":23493440,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.8.12","stable_tag":"1.8.12","tested":"7.0","requires":"6.2","requires_php":"8.1","requires_plugins":null,"header_name":"MEYDY Reel Studio","header_author":"MEYDY","header_description":"Secure, reusable audio player with signed streaming URLs, dedicated reel pages, and visit analytics.","assets_banners_color":"","last_updated":"2026-06-13 19:49:25","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/meydy.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":39,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.8.11":{"tag":"1.8.11","author":"meydy","date":"2026-06-13 19:26:48"},"1.8.12":{"tag":"1.8.12","author":"meydy","date":"2026-06-13 19:49:25"}},"upgrade_notice":{"1.7.4":"<p>Security fix: removes an internal bypass that granted automatic Pro access on certain domains. Free users now have style preset choice (Dark + Light). Recommended update for all users.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3571319,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3571319,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.8.11","1.8.12"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Reel page in Dark (Cinematic) style \u2014 full-width banner, waveform player, track list","2":"Reel page in Light (Clean) style","3":"Reels Manager \u2014 create and manage all reels from one screen","4":"Track analytics with play counts and listen-time completion bars","5":"Personal share links \u2014 unique per-recipient URLs with access revocation"}},"plugin_section":[],"plugin_tags":[4702,266977,266976,8511,266975],"plugin_category":[],"plugin_contributors":[266978],"plugin_business_model":[],"class_list":["post-308576","plugin","type-plugin","status-publish","hentry","plugin_tags-audio-player","plugin_tags-audio-reel","plugin_tags-music-portfolio","plugin_tags-musician","plugin_tags-secure-streaming","plugin_contributors-meydy","plugin_committers-meydy"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/meydy-reel-studio\/assets\/icon-128x128.png?rev=3571319","icon_2x":"https:\/\/ps.w.org\/meydy-reel-studio\/assets\/icon-256x256.png?rev=3571319","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>MEYDY Reel Studio<\/strong> lets music composers, sound designers, DJs, and audio professionals create private, branded audio reel pages \u2014 hosted entirely on their own domain, with no dependency on external streaming platforms.<\/p>\n\n<p>Share your music securely with clients, labels, and collaborators. Your reel lives at your URL, under your brand, and your audio files are never exposed.<\/p>\n\n<h4>Core Features (Free)<\/h4>\n\n<ul>\n<li><strong>Reel management<\/strong> \u2014 Create, edit, duplicate, and delete audio reels from a dedicated admin screen.<\/li>\n<li><strong>Signed streaming URLs<\/strong> \u2014 Audio files are served through short-lived, HMAC-signed tokens. Direct URL access is blocked.<\/li>\n<li><strong>Dedicated reel pages<\/strong> \u2014 Each reel gets its own <code>\/reel\/your-slug\/<\/code> URL with a full-page branded player.<\/li>\n<li><strong>Waveform visualization<\/strong> \u2014 Auto-generated waveform display generated from uploaded audio.<\/li>\n<li><strong>Access control<\/strong> \u2014 Choose Public, Limited (personal links), or Disabled per reel.<\/li>\n<li><strong>Personal share links<\/strong> \u2014 Send unique <code>?k=<\/code> links to specific recipients. Revoke access anytime.<\/li>\n<li><strong>Visit analytics<\/strong> \u2014 Track total views and sessions per reel. Reset analytics per reel at any time.<\/li>\n<li><strong>Style presets<\/strong> \u2014 Choose Dark (Cinematic) or Light (Clean) themes.<\/li>\n<li><strong>YouTube embeds<\/strong> \u2014 Attach YouTube videos to your reel.<\/li>\n<li><strong>Rounded corner style<\/strong> \u2014 Apply rounded corners to the player UI.<\/li>\n<li><strong>Contact section<\/strong> \u2014 Add contact info, email reveal button, and CTA link.<\/li>\n<li><strong>Private audio storage<\/strong> \u2014 Files stored outside the public web root with <code>.htaccess<\/code> protection.<\/li>\n<li><strong>SEO-safe<\/strong> \u2014 Reel pages are set to noindex\/nofollow. No Google indexing of private content.<\/li>\n<li><strong>Shortcode player<\/strong> \u2014 Embed <code>[rc_audio_player]<\/code> in any post or page.<\/li>\n<\/ul>\n\n<h4>Pro Features<\/h4>\n\n<ul>\n<li><strong>Up to 8 YouTube videos per reel<\/strong><\/li>\n<li><strong>Advanced analytics<\/strong> \u2014 Unique sessions, traffic sources, UTM parameters, device\/browser\/OS breakdown, geographic data, per-person listening stats<\/li>\n<li><strong>Track-level analytics<\/strong> \u2014 Play counts and listen time per track with completion percentage<\/li>\n<li><strong>CSV export<\/strong> \u2014 Export full analytics data as CSV (visits, sources, per-person breakdown)<\/li>\n<li><strong>All 6 style presets<\/strong> \u2014 Ocean Blue, Bold Accent, Rainbow Burst, Metallic Disc (Free includes Dark + Light)<\/li>\n<li><strong>Custom eyebrow title<\/strong> \u2014 Replace \"MEYDY REEL STUDIO\" with your own studio name<\/li>\n<li><strong>Per-reel contact email mapping<\/strong> \u2014 Private email reveal without exposing addresses in HTML<\/li>\n<\/ul>\n\n<h4>Privacy &amp; Security<\/h4>\n\n<ul>\n<li>Audio URLs expire after 20 minutes and require a valid HMAC signature.<\/li>\n<li>IP addresses are anonymized before storage (hashed, not raw).<\/li>\n<li>Geolocation is resolved from trusted proxy headers by default (no third-party API calls).<\/li>\n<li>External geo API (ipwho.is) is opt-in and displays a legal warning when enabled.<\/li>\n<li>Reel pages send <code>noindex, nofollow, noarchive<\/code> headers and a strict Content Security Policy.<\/li>\n<li>A plugin-dedicated signing key is generated on activation and stored separately from WordPress AUTH_SALT.<\/li>\n<li><strong>Visitor analytics<\/strong> \u2014 Reel page visits are logged server-side (session hash, referrer, device\/browser type, country). No data is shared with third parties. Data is stored only in your own database and can be reset or deleted at any time from the plugin admin.<\/li>\n<\/ul>\n\n<h4>Third-Party Services<\/h4>\n\n<p>This plugin integrates with <strong>Freemius<\/strong> for Pro license management. When a Pro license is purchased or a free trial is initiated, your email address, site URL, and basic WordPress environment data are transmitted to Freemius servers.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/freemius.com\/privacy\/\">Freemius Privacy Policy<\/a><\/li>\n<li><a href=\"https:\/\/freemius.com\/terms\/\">Freemius Terms of Service<\/a><\/li>\n<\/ul>\n\n<p>Freemius is not active for free users who have not initiated a trial or purchased a license. No data is sent to Freemius on free installs without a license.<\/p>\n\n<h4>Requirements<\/h4>\n\n<ul>\n<li>PHP 8.1 or higher<\/li>\n<li>WordPress 6.2 or higher<\/li>\n<li>Audio files: MP3, WAV, M4A, AAC, OGG, FLAC<\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin may connect to the following external services under specific conditions:<\/p>\n\n<h4>ipwho.is (Geolocation API)<\/h4>\n\n<ul>\n<li><strong>Used for:<\/strong> Optional visitor geolocation in analytics (city, country, region).<\/li>\n<li><strong>Data sent:<\/strong> Visitor IP address.<\/li>\n<li><strong>When:<\/strong> Only when an admin explicitly enables \"External Geo Lookup\" in the plugin settings (Pro). This setting is <strong>disabled by default<\/strong> (Privacy by Default).<\/li>\n<li><strong>Default:<\/strong> Disabled. Geolocation is derived from proxy headers only (e.g., Cloudflare) when the setting is off \u2014 no IP is sent to any third party.<\/li>\n<li><strong>Service URL:<\/strong> https:\/\/ipwho.is<\/li>\n<li><strong>Privacy:<\/strong> https:\/\/ipwho.is \u2014 No formal Terms of Service page is available for this service.<\/li>\n<\/ul>\n\n<p><strong>Legal notice:<\/strong> Before enabling this option, you must update your Privacy Policy to disclose that visitor IPs are transmitted to ipwho.is for geolocation. If you operate under GDPR, UK GDPR, or CCPA, you may need to obtain explicit visitor consent. Consult legal counsel if you are unsure of your obligations.<\/p>\n\n<h4>Freemius<\/h4>\n\n<ul>\n<li><strong>Used for:<\/strong> License management and plugin updates (Pro plan).<\/li>\n<li><strong>Data sent:<\/strong> Email address, site URL, WordPress environment data \u2014 only when a Pro license is purchased or a free trial is initiated.<\/li>\n<li><strong>When:<\/strong> Not active for free users who have not initiated a trial or purchased a license. No data is sent on free installs without a license.<\/li>\n<li><strong>Service URL:<\/strong> https:\/\/freemius.com<\/li>\n<li><strong>Terms of Service:<\/strong> https:\/\/freemius.com\/terms\/<\/li>\n<li><strong>Privacy Policy:<\/strong> https:\/\/freemius.com\/privacy\/<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/meydy-reel-studio\/<\/code>, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the <strong>Plugins<\/strong> screen in WordPress.<\/li>\n<li>Go to <strong>Settings \u2192 MEYDY Reel Studio<\/strong> to configure the private audio directory and access defaults.<\/li>\n<li>Go to <strong>Tools \u2192 MEYDY Reels Manager<\/strong> to create your first reel.<\/li>\n<li>Upload audio files, fill in reel details, and save.<\/li>\n<li>Optionally, create personal share links for specific recipients from the reel's edit screen.<\/li>\n<li>Share your reel URL (or personal link) with clients.<\/li>\n<\/ol>\n\n<h4>Optional: Private Audio Directory<\/h4>\n\n<p>By default, private audio files are stored in <code>wp-content\/private-audio\/<\/code>. You can override this in <strong>Settings \u2192 MEYDY Reel Studio<\/strong> or by defining <code>RC_AUDIO_PRIVATE_DIR<\/code> in <code>wp-config.php<\/code>.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"can%20visitors%20download%20my%20audio%20files%3F\"><h3>Can visitors download my audio files?<\/h3><\/dt>\n<dd><p>No. Audio is streamed through signed, short-lived URLs (20-minute expiry). Right-click saving gives an expired URL. Files are stored outside the public web root and protected by <code>.htaccess<\/code>.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20without%20cloudflare%3F\"><h3>Does the plugin work without Cloudflare?<\/h3><\/dt>\n<dd><p>Yes. Cloudflare (or another reverse proxy) is optional. It improves geographic analytics if you use the Pro geo features with trusted proxy headers enabled.<\/p><\/dd>\n<dt id=\"what%20file%20formats%20are%20supported%3F\"><h3>What file formats are supported?<\/h3><\/dt>\n<dd><p>MP3, WAV, M4A, AAC, OGG, and FLAC.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20plugin%20on%20multiple%20sites%3F\"><h3>Can I use this plugin on multiple sites?<\/h3><\/dt>\n<dd><p>Free plan: 1 site. Pro plans support multiple sites depending on your license tier. See the pricing page for details.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20support%20multisite%20networks%3F\"><h3>Does the plugin support multisite networks?<\/h3><\/dt>\n<dd><p>Not officially. The plugin works on individual sites within a network but is not tested for network-wide activation.<\/p><\/dd>\n<dt id=\"will%20reel%20pages%20appear%20in%20google%20search%3F\"><h3>Will reel pages appear in Google Search?<\/h3><\/dt>\n<dd><p>No. The plugin sets <code>noindex, nofollow, noarchive<\/code> headers and meta tags on all reel pages. Search engines are also blocked via <code>robots.txt<\/code>.<\/p><\/dd>\n<dt id=\"can%20i%20customize%20the%20look%20of%20reel%20pages%3F\"><h3>Can I customize the look of reel pages?<\/h3><\/dt>\n<dd><p>Free plan includes Dark and Light style presets, plus rounded corner style. Pro plan adds 4 more themes: Ocean Blue, Bold Accent, Rainbow Burst, and Metallic Disc.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20my%20data%20if%20i%20uninstall%20the%20plugin%3F\"><h3>What happens to my data if I uninstall the plugin?<\/h3><\/dt>\n<dd><p>Uninstalling the plugin removes all plugin options from the database (settings, analytics). Audio files stored in <code>private-audio\/<\/code> are <strong>not<\/strong> deleted automatically \u2014 you should remove them manually if needed.<\/p><\/dd>\n<dt id=\"is%20there%20a%20free%20trial%20of%20pro%3F\"><h3>Is there a free trial of Pro?<\/h3><\/dt>\n<dd><p>Yes, a 14-day free trial is available. No payment method required.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.8.12<\/h4>\n\n<ul>\n<li>Fixed: corrected readme.txt feature descriptions to accurately reflect Free vs Pro capabilities (rounded corners now listed as Free, removed incorrect per-reel limits that no longer exist in code)<\/li>\n<\/ul>\n\n<h4>1.8.11<\/h4>\n\n<ul>\n<li>Fixed: Media URL to file path resolution now uses wp_upload_dir() instead of ABSPATH, fixing subdirectory install support (WP.org review fix P0TDX308576HGN)<\/li>\n<\/ul>\n\n<h4>1.7.7<\/h4>\n\n<ul>\n<li>Fixed: Footer now shows \"Powered by MEYDY Reel Studio\" by default instead of claiming copyright over content owner's work<\/li>\n<li>Improved: Footer main line is fully user-controlled \u2014 include or omit \"All rights reserved.\" as desired<\/li>\n<\/ul>\n\n<h4>1.7.6<\/h4>\n\n<ul>\n<li>Fixed: Removed .htaccess files from plugin package (flagged by WP.org Plugin Check as hidden_files)<\/li>\n<\/ul>\n\n<h4>1.7.5<\/h4>\n\n<ul>\n<li>Fixed: WP.org Plugin Check blockers \u2014 ABSPATH guards, languages directory, multiple phpcs:ignore comments, and EscapeOutput fixes<\/li>\n<li>Fixed: <code>.htaccess<\/code> files removed from plugin package<\/li>\n<li>Fixed: <code>Tested up to<\/code> updated to 6.9<\/li>\n<li>Improved: All 343 PHPUnit tests pass<\/li>\n<\/ul>\n\n<h4>1.7.4<\/h4>\n\n<ul>\n<li>Fixed: FREE tier style preset now shows a selector (Dark + Light) instead of being locked to Dark only<\/li>\n<li>Security: Removed owner-domain bypass that granted automatic Pro access on localhost and plugin author's domain<\/li>\n<li>Improved: i18n \u2014 all <code>wp_die()<\/code> messages are now wrapped with <code>esc_html__()<\/code><\/li>\n<li>Improved: Plugin header now includes all required WordPress.org fields (Text Domain, License, Requires PHP, Author URI)<\/li>\n<li>Added: <code>readme.txt<\/code> for WordPress.org submission<\/li>\n<\/ul>\n\n<h4>1.7.3<\/h4>\n\n<ul>\n<li>Added: Track-level play analytics with per-person breakdown (Pro)<\/li>\n<li>Added: CSV export for analytics data (Pro)<\/li>\n<li>Added: Personal share links (<code>?k=<\/code>) with revocation support<\/li>\n<li>Added: YouTube video embeds per reel (up to 2 Free \/ 8 Pro)<\/li>\n<li>Added: Waveform visualization with canvas rendering<\/li>\n<li>Added: Geo privacy mode \u2014 strict header-only by default, external API opt-in<\/li>\n<li>Added: Device, browser, OS, and language analytics breakdown (Pro)<\/li>\n<li>Improved: Rate limiting on analytics endpoints<\/li>\n<li>Improved: Atomic JSON writes for reels.json<\/li>\n<li>Security: Plugin-dedicated HMAC signing key (isolated from AUTH_SALT)<\/li>\n<\/ul>\n\n<h4>1.7.2<\/h4>\n\n<ul>\n<li>Added: Reel duplication in Reels Manager<\/li>\n<li>Added: Banner image support (separate from cover art)<\/li>\n<li>Added: About \/ Biography and Credits sections per reel<\/li>\n<li>Added: Footer owner line and subtext settings<\/li>\n<li>Improved: Admin UI \u2014 WP media picker for images<\/li>\n<\/ul>\n\n<h4>1.7.1<\/h4>\n\n<ul>\n<li>Added: Access mode per reel (Public \/ Limited \/ Disabled)<\/li>\n<li>Added: Freemius integration for license management<\/li>\n<li>Added: Free vs Pro feature gating via RC_License_Policy<\/li>\n<li>Improved: Redirect handling with <code>wp_safe_redirect<\/code> fallback<\/li>\n<\/ul>\n\n<h4>1.7.0<\/h4>\n\n<ul>\n<li>Initial public release<\/li>\n<li>Secure audio streaming with signed URLs<\/li>\n<li>Dedicated reel pages with noindex headers<\/li>\n<li>Visit analytics (views, sessions, sources)<\/li>\n<li>Shortcode player <code>[rc_audio_player]<\/code><\/li>\n<\/ul>","raw_excerpt":"Secure audio reel pages with signed streaming URLs, waveform visualization, visit analytics, and personal share links.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/308576","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=308576"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/meydy"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=308576"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=308576"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=308576"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=308576"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=308576"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=308576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}