When your child is two episodes away from the Puppy Dog Pals finale and Cox decides to take a 20-hour vacation, you realize it’s time to stop depending on internet uptime for family entertainment. This week, I solved three problems at once: unreliable ISP service, Plex transcoding performance, and Apple’s contradictory stance on iCloud Photos backups.
The Problem: When Everything Depends on Internet That Isn’t There
Cox has been down 20 hours this week. Not a typo. Twenty hours of “connection refused” while trying to stream media my family was actively watching. This isn’t normal, Cox is typically unreliable every couple months (still not great), not every couple hours, but it highlighted a dependency I could eliminate.
My Plex library lives on remote storage with great bandwidth but CPU-bound transcoding. Streaming works great when the internet works, but:
-
Audio transcoding kills performance. Apple TV doesn’t natively support TrueHD/DTS-HD MA audio formats. Everything gets transcoded on-the-fly by a server with no GPU and limited CPU allocation. Playback stutters often.
-
Network outages = no TV. Remote storage means zero access during ISP failures. When you’re mid-season on a series, this is unacceptable from a “first-world problems” scenario.
-
iCloud Photos is a ticking time bomb. Apple’s Terms of Service explicitly state: “You are solely responsible for backing up your data.” Then they provide zero native way to actually back up iCloud Photos locally. GBs of family photos sitting in a service whose TOS says they can lose my data with no liability.
Three separate problems. One solution.
Why Not Just Wait for Fiber?
AT&T Fiber is being installed in my neighborhood soon. Fiber typically offers:
- Unlimited data (no caps, confirmed by AT&T)
- 99.9%+ uptime (industry standard for fiber deployments)
- Symmetric speeds (upload matches download)
Historical data shows fiber outages average 1-2 events per year lasting under 2 hours total. Cox’s 20-hour outage in one week alone exceeds typical annual fiber downtime.
So why not just wait for fiber to solve the reliability problem?
Because fiber doesn’t solve transcoding, and it doesn’t solve Apple’s backup paradox. I still need local hardware for processing and local storage for data I can’t afford to lose. Fiber will eliminate the internet dependency, but the other problems remain.
The Solution: M4 Mac Mini as a Purpose-Built Media Server
Apple’s putting M4 Mac Minis on sale at $400 (regularly $599). The M4 chip has hardware-accelerated media engines that transcode H.264, HEVC, ProRes, and critically for my use case, can handle audio format conversion that previously choked my remote server.
Hardware transcoding comparison:
- Remote CPU-bound server: Stutters on TrueHD audio
- M4 media engine: Hardware acceleration handles it trivially, zero performance impact
The M4 processes video transcoding in dedicated silicon without touching the CPU. For a Plex server, this is perfect.
Storage strategy:
- Seagate Expansion Desktop 8TB external HDD (~$150), most of the files are ordinarily sitting here for offline use
- USB 3.0 (sufficient for HDD speeds of ~280MB/s)
- 8TB provides room for Plex library + iCloud Photos Time Machine backup + growth
Total cost: $550 for hardware that solves three problems simultaneously.
Automated Sync with rclone: Set It and Forget It
I keep my media library on remote storage for off-site redundancy. The Mac Mini needs to sync that library locally for offline access and hardware transcoding. Enter rclone. These steps are made pretty generic since each sitation is different but this is generally how I handled it.
rclone is a command-line tool that syncs files between storage locations—cloud services, SFTP, S3, local disks, anything. I’m using it to maintain a local mirror of my remote library.
Installation
# Official rclone binary (Homebrew version breaks mount support on macOS)
curl -O https://downloads.rclone.org/rclone-current-osx-arm64.zip
unzip rclone-current-osx-arm64.zip
cd rclone-*-osx-arm64
sudo cp rclone /usr/local/bin/
sudo chmod 755 /usr/local/bin/rclone
Configuration
rclone config
# Follow prompts to configure remote storage
# I'm using SFTP (SSH) to my remote server
Sync Script
#!/bin/bash
# ~/rclone-sync.sh
/usr/local/bin/rclone sync \
remote:/media/ \
/Volumes/SeagateExpansion/plex/ \
--transfers 2 \
--checkers 4 \
--timeout 60s \
--contimeout 60s \
--retries 3 \
--low-level-retries 10 \
--log-file /Users/zaclohrenz/rclone-sync.log \
--log-level INFO
exit 0
Key flags:
--transfers 2and--checkers 4: Reduced concurrent connections prevent overwhelming remote server--timeout 60s: Per-operation timeout--retries 3: Resilient to temporary network issuessyncmode: Makes destination mirror source (new files copied, deleted files removed)
Automation via LaunchAgent
macOS uses LaunchAgents (like cron, but better integrated) to run scheduled tasks:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.user.rclone.sync</string>
<key>ProgramArguments</key>
<array>
<string>/Users/zaclohrenz/rclone-sync.sh</string>
</array>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/Users/zaclohrenz/rclone-sync-error.log</string>
<key>StandardOutPath</key>
<string>/Users/zaclohrenz/rclone-sync-output.log</string>
</dict>
</plist>
Save to ~/Library/LaunchAgents/com.user.rclone.sync.plist, then load:
launchctl load ~/Library/LaunchAgents/com.user.rclone.sync.plist
Syncs run every 60 seconds. New content appears on the Mac Mini within a minute of being added remotely. When internet dies, local library remains accessible.
Solving Apple’s iCloud Backup Paradox
Apple’s iCloud Photos TOS, Section 8(c):
“APPLE SHALL NOT BE RESPONSIBLE FOR ANY LOSS, RECOVERY, OR COMPROMISE OF DATA.”
Translation: If iCloud loses your photos, that’s your problem. But Apple provides no native way to backup iCloud Photos to local storage without third-party tools or manual export.
Solution: Time Machine backup of iCloud Photos library to the same 8TB external drive.
macOS keeps a local cache of iCloud Photos at ~/Pictures/Photos Library.photoslibrary. Configure Time Machine to back this up to the external drive:
# Enable Time Machine
sudo tmutil setdestination /Volumes/SeagateExpansion
# Verify backup includes Photos library
tmutil listlocalsnapshots /
Now I have:
- Primary: iCloud Photos (accessible everywhere, family sharing)
- Backup: Time Machine snapshots on local drive (protected from Apple data loss)
- Off-site: Remote storage sync (disaster recovery)
Three-tier strategy for photos I can’t afford to lose.
Plex Configuration
Point Plex at the local library:
Settings → Libraries → Add Library
/Volumes/SeagateExpansion/plex/Movies
/Volumes/SeagateExpansion/plex/TV Shows
Enable automatic scanning:
Settings → Library → Scan my library automatically (15 minute interval)
Hardware transcoding is automatic with M4—Plex detects the media engine and uses it by default.
Why This Beats NAS Solutions
I evaluated Synology and other NAS options. They don’t solve the core problems:
NAS (DS224+, ~$300 + drives):
- Celeron CPU weaker than remote server (still stutters on TrueHD)
- No hardware transcoding in budget models
- Synology Photos mobile app has unreliable background upload
- Adds complexity without solving transcoding bottleneck
Mac Mini approach:
- Hardware transcoding solves performance issue completely
- macOS native iCloud integration (no third-party sync)
- Plex runs natively with better performance
- $400 M4 outperforms $2000+ NAS for media serving
The M4’s media engine is purpose-built for exactly this workload. NAS systems optimize for storage, not processing.
Total Cost Breakdown
| Component | Cost | Purpose |
|---|---|---|
| M4 Mac Mini | $400 | Plex server + hardware transcoding |
| Seagate 8TB HDD | $150 | Media library + iCloud backup |
| rclone | Free | Automated sync |
| macFUSE | Free | Optional mount support |
| Total | $550 | Complete solution |
Compare to:
- Synology DS224+ + 2x4TB: ~$500 (worse transcoding)
- Faster NAS with transcoding: $1500+ (overkill for home use)
- Keep paying for remote transcoding: Ongoing performance issues
Backup Internet: Wait and See
I considered cellular backup (TP-Link RL605 dual-WAN router + LTE modem, ~$150 total) but decided to wait:
- Fiber should eliminate the problem. AT&T Fiber installs in weeks.
- Cox’s 20-hour outage is mostly anomalous. Typical outages are 2-3 hours every few months.
- Local media removes dependency. Even if fiber goes down, Plex library remains accessible.
If fiber proves unreliable after 2-3 months, I’ll add cellular failover. But spending $150 now to solve a problem that likely disappears with fiber installation doesn’t make sense.
Key Takeaways
For home media server builders:
-
Hardware transcoding is non-negotiable. Software transcoding on weak CPUs creates terrible user experience. The M4’s media engine handles it effortlessly.
-
Automated sync beats manual management. rclone + LaunchAgent means new content appears automatically. Set it up once, never think about it again.
-
Local storage + cloud storage, not either/or. Remote library for off-site backup, local mirror for performance and offline access.
-
Apple’s iCloud backup stance is contradictory. They say you’re responsible for backups, then make backups difficult. Time Machine solves this.
-
Don’t overbuild infrastructure for problems you don’t have yet. Cellular backup makes sense if fiber proves unreliable. It doesn’t make sense as insurance against a problem that may never materialize.
For anyone managing family photos in iCloud:
Run Time Machine backups. Apple’s TOS explicitly disclaims liability for data loss. The local Photos library cache lives at ~/Pictures/Photos Library.photoslibrary—back it up before you need it.
Conclusion
A $400 Mac Mini, $150 hard drive, and 30 minutes of rclone configuration solved three problems:
- No more stuttering Plex transcoding
- No more family entertainment outages during ISP failures
- No more anxiety about Apple losing years of family photos
The M4 Mac Mini isn’t marketed as a media server, but it’s better at the job than hardware actually marketed for it. Sometimes the best solution is repurposing consumer hardware for infrastructure workloads.
When the Mac Mini arrives this afternoon, I’m 30 minutes of setup away from never worrying about Cox outages interrupting Puppy Dog Pals again. And my child will never know the technical details that make it work—which is exactly how infrastructure should be.