{"id":606,"date":"2025-10-21T16:52:23","date_gmt":"2025-10-21T20:52:23","guid":{"rendered":"https:\/\/scootercam.net\/notes\/?p=606"},"modified":"2025-10-21T16:52:24","modified_gmt":"2025-10-21T20:52:24","slug":"scootercam-sunset-gallery","status":"publish","type":"post","link":"https:\/\/scootercam.net\/blog\/scootercam-sunset-gallery\/","title":{"rendered":"Scootercam Sunset Gallery"},"content":{"rendered":"\n<p>A WordPress plugin that displays a beautiful gallery of sunset timelapse videos captured nightly by Amcrest and Reolink cameras in Allegan County, Michigan. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Features<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ud83d\udcf9 <strong>Dual Camera Support<\/strong> &#8211; Display videos from both Amcrest (sa) and Reolink (ss) cameras<\/li>\n\n\n\n<li>\ud83d\uddbc\ufe0f <strong>Poster Images<\/strong> &#8211; Automatic thumbnail generation using captured sunset JPG images<\/li>\n\n\n\n<li>\ud83c\udfa8 <strong>Modern Gallery Layout<\/strong> &#8211; Responsive grid with hover effects and play overlays<\/li>\n\n\n\n<li>\ud83d\udcf1 <strong>Mobile Responsive<\/strong> &#8211; Optimized for all screen sizes<\/li>\n\n\n\n<li>\ud83d\udd17 <strong>Social Sharing<\/strong> &#8211; Facebook, Instagram, Email, and Copy Link functionality<\/li>\n\n\n\n<li>\ud83d\udcc5 <strong>Pagination<\/strong> &#8211; Navigate through your sunset collection<\/li>\n\n\n\n<li>\u2699\ufe0f <strong>Admin Settings<\/strong> &#8211; Configurable paths with real-time status checking<\/li>\n\n\n\n<li>\ud83c\udfac <strong>Direct Video Links<\/strong> &#8211; Shareable URLs for individual sunsets<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1. Create Plugin Directory<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/home\/rxaverco\/public_html\/wp-content\/plugins\/\nmkdir -p scootercam-gallery\/css\nmkdir -p scootercam-gallery\/images\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">2. Upload Files<\/h3>\n\n\n\n<p>Upload the plugin files:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>scootercam-gallery.php<\/code> \u2192 Plugin root directory<\/li>\n\n\n\n<li><code>css\/gallery.css<\/code> \u2192 CSS subdirectory<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">3. Set Permissions<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>chmod 755 scootercam-gallery\nchmod 644 scootercam-gallery\/scootercam-gallery.php\nchmod 644 scootercam-gallery\/css\/gallery.css\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">4. Activate Plugin<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log into WordPress admin<\/li>\n\n\n\n<li>Navigate to <strong>Plugins \u2192 Installed Plugins<\/strong><\/li>\n\n\n\n<li>Find &#8220;Scootercam Sunset Gallery&#8221;<\/li>\n\n\n\n<li>Click <strong>Activate<\/strong><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">5. Configure Settings<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Settings \u2192 Scootercam Gallery<\/strong><\/li>\n\n\n\n<li>Verify the default paths:<\/li>\n<\/ol>\n\n\n\n<p><strong>File System Paths (Absolute):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Video Directory: <code>\/home\/scootercam\/public_html\/ss\/<\/code><\/li>\n\n\n\n<li>Poster Directory: <code>\/home\/scootercam\/public_html\/sr\/<\/code><\/li>\n<\/ul>\n\n\n\n<p><strong>URL Paths (Relative to domain root):<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Video URL Path: <code>\/ss\/<\/code><\/li>\n\n\n\n<li>Poster URL Path: <code>\/sr\/<\/code><\/li>\n<\/ul>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li>Click <strong>Save Settings<\/strong><\/li>\n\n\n\n<li>Verify status shows:\n<ul class=\"wp-block-list\">\n<li>\u2713 Directory exists<\/li>\n\n\n\n<li>\u2713 Readable<\/li>\n\n\n\n<li>File counts displayed<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">6. Add Gallery to Page<\/h3>\n\n\n\n<p>Create or edit a page and add:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam_gallery]\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">File Format Requirements<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Video Files (in \/ss\/ directory)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>sa2025-10-20.mp4    (Amcrest camera)\nss2025-10-20.mp4    (Reolink camera)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Poster Images (in \/sr\/ directory)<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>2025-10-20_185305.jpg\n2025-10-20_190142.jpg\n<\/code><\/pre>\n\n\n\n<p>Pattern: <code>YYYY-MM-DD_HHMMSS.jpg<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Shortcode Options<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Basic Usage<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam_gallery]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Custom Videos Per Page<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam_gallery per_page=\"20\"]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Default to Reolink Camera<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam_gallery default_camera=\"ss\"]\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Combined Options<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;scootercam_gallery per_page=\"24\" default_camera=\"sa\"]\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">URL Structure<\/h2>\n\n\n\n<p>The plugin works with WordPress in a subdirectory:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>WordPress Location:<\/strong> <code>\/home\/rxaverco\/public_html\/<\/code><\/li>\n\n\n\n<li><strong>WordPress URL:<\/strong> <code>https:\/\/scootercam.com\/notes\/<\/code><\/li>\n\n\n\n<li><strong>Gallery Page:<\/strong> <code>https:\/\/scootercam.com\/notes\/sunset-gallery\/<\/code><\/li>\n<\/ul>\n\n\n\n<p>Media files are served from domain root:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Videos:<\/strong> <code>https:\/\/scootercam.com\/ss\/sa2025-10-20.mp4<\/code><\/li>\n\n\n\n<li><strong>Posters:<\/strong> <code>https:\/\/scootercam.com\/sr\/2025-10-20_185305.jpg<\/code><\/li>\n<\/ul>\n\n\n\n<p>The plugin automatically handles this URL structure and will adapt if you move WordPress to the root directory in the future.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Social Sharing<\/h2>\n\n\n\n<p>Each video includes sharing options:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Facebook<\/strong> &#8211; Direct share dialog<\/li>\n\n\n\n<li><strong>Instagram<\/strong> &#8211; Opens Instagram with copy prompt<\/li>\n\n\n\n<li><strong>Email<\/strong> &#8211; Pre-filled email with sunset details<\/li>\n\n\n\n<li><strong>Copy Link<\/strong> &#8211; One-click clipboard copy with visual feedback<\/li>\n<\/ul>\n\n\n\n<p>Shared URLs link directly to specific sunset videos with camera selection preserved.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Admin Features<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Settings Page<\/h3>\n\n\n\n<p>Access via <strong>Settings \u2192 Scootercam Gallery<\/strong><\/p>\n\n\n\n<p><strong>Features:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Configure file system paths<\/li>\n\n\n\n<li>Configure URL paths<\/li>\n\n\n\n<li>Real-time directory validation<\/li>\n\n\n\n<li>File count statistics<\/li>\n\n\n\n<li>Permission checking<\/li>\n\n\n\n<li>Usage instructions<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Status Indicators<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u2713 Green checkmarks for accessible directories<\/li>\n\n\n\n<li>\u2717 Red X marks for issues<\/li>\n\n\n\n<li>File counts for both videos and posters<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Troubleshooting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Videos Not Showing<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Check admin settings page shows directories exist and are readable<\/li>\n\n\n\n<li>Verify file naming matches required patterns<\/li>\n\n\n\n<li>Check file permissions: <code>ls -la \/home\/scootercam\/public_html\/ss\/ls -la \/home\/scootercam\/public_html\/sr\/<\/code><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Poster Images Not Loading<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Check browser console for 404 errors<\/li>\n\n\n\n<li>Verify URL path in settings is <code>\/sr\/<\/code> (not <code>\/notes\/sr\/<\/code>)<\/li>\n\n\n\n<li>Test direct access: <code>https:\/\/scootercam.com\/sr\/2025-10-20_185305.jpg<\/code><\/li>\n\n\n\n<li>Ensure images are at domain root<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">No Videos Found Error<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Verify video files follow naming convention: <code>sa2025-10-20.mp4<\/code> or <code>ss2025-10-20.mp4<\/code><\/li>\n\n\n\n<li>Check directory paths in admin settings<\/li>\n\n\n\n<li>Ensure directories have read permissions<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Pagination Not Working<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Go to <strong>Settings \u2192 Permalinks<\/strong><\/li>\n\n\n\n<li>Click &#8220;Save Changes&#8221; to refresh permalink structure<\/li>\n\n\n\n<li>Test pagination links<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Technical Details<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Requirements<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>WordPress 5.0 or higher<\/li>\n\n\n\n<li>PHP 7.4 or higher<\/li>\n\n\n\n<li>Read access to video and poster directories<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Browser Support<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Chrome (latest)<\/li>\n\n\n\n<li>Firefox (latest)<\/li>\n\n\n\n<li>Safari (latest)<\/li>\n\n\n\n<li>Edge (latest)<\/li>\n\n\n\n<li>Mobile browsers (iOS Safari, Chrome Mobile)<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Video Format<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Container: MP4<\/li>\n\n\n\n<li>Recommended codec: H.264<\/li>\n\n\n\n<li>HTML5 video player<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Image Format<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Format: JPEG<\/li>\n\n\n\n<li>Used as video poster\/thumbnail<\/li>\n\n\n\n<li>Lazy loading enabled<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">File Structure<\/h2>\n\n\n\n<pre class=\"wp-block-code\"><code>scootercam-gallery\/\n\u251c\u2500\u2500 scootercam-gallery.php    # Main plugin file\n\u251c\u2500\u2500 css\/\n\u2502   \u2514\u2500\u2500 gallery.css           # Stylesheet\n\u251c\u2500\u2500 images\/\n\u2502   \u2514\u2500\u2500 placeholder.jpg       # Optional placeholder\n\u2514\u2500\u2500 README.md                 # This file\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Credits<\/h2>\n\n\n\n<p><strong>Plugin Name:<\/strong> Scootercam Sunset Gallery<br><strong>Version:<\/strong> 1.0.0<br><strong>Author:<\/strong> Scootercam<br><strong>License:<\/strong> GPL v2 or later<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Changelog<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Version 1.0.0<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Initial release<\/li>\n\n\n\n<li>Gallery grid with poster images<\/li>\n\n\n\n<li>Video player with dual camera support<\/li>\n\n\n\n<li>Social sharing (Facebook, Instagram, Email, Copy Link)<\/li>\n\n\n\n<li>Admin settings page<\/li>\n\n\n\n<li>Pagination support<\/li>\n\n\n\n<li>Mobile responsive design<\/li>\n\n\n\n<li>Direct video linking<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Future Enhancements<\/h2>\n\n\n\n<p>Potential features for future versions:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Date range filtering<\/li>\n\n\n\n<li>Search functionality<\/li>\n\n\n\n<li>Favorite\/bookmark sunsets<\/li>\n\n\n\n<li>Weather data integration<\/li>\n\n\n\n<li>Download video option<\/li>\n\n\n\n<li>Fullscreen mode<\/li>\n\n\n\n<li>Keyboard navigation<\/li>\n\n\n\n<li>Archive by month\/year<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Support<\/h2>\n\n\n\n<p>For issues or questions:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Check the admin Settings page for directory status<\/li>\n\n\n\n<li>Verify file counts are correct<\/li>\n\n\n\n<li>Test direct file access in browser<\/li>\n\n\n\n<li>Enable WordPress debugging for detailed error logs<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">License<\/h2>\n\n\n\n<p>This plugin is licensed under GPL v2 or later.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>Made with \u2600\ufe0f for capturing beautiful Lake Michigan sunsets<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A WordPress plugin that displays a beautiful gallery of sunset timelapse videos captured nightly by Amcrest and Reolink cameras in Allegan County, Michigan. Features Installation 1. Create Plugin Directory 2. Upload Files Upload the plugin files: 3. Set Permissions 4. Activate Plugin 5. Configure Settings File System Paths (Absolute): URL Paths (Relative to domain root): &#8230; <a title=\"Scootercam Sunset Gallery\" class=\"read-more\" href=\"https:\/\/scootercam.net\/blog\/scootercam-sunset-gallery\/\" aria-label=\"Read more about Scootercam Sunset Gallery\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[38],"tags":[],"class_list":["post-606","post","type-post","status-publish","format-standard","hentry","category-plugins"],"_links":{"self":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/comments?post=606"}],"version-history":[{"count":1,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/606\/revisions"}],"predecessor-version":[{"id":607,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/posts\/606\/revisions\/607"}],"wp:attachment":[{"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/media?parent=606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/categories?post=606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/scootercam.net\/blog\/wp-json\/wp\/v2\/tags?post=606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}