huement/statamic-ytlistr
Statamic addon for pulling YouTube videos and playlists into your site. Configure channel or playlist sources, cache API responses, and render video lists with Antlers or Blade tags, making it easy to keep embedded YouTube content fresh without manual updates.
Architecture fit. The package targets a Laravel application and follows framework conventions (config publishing, a native scheduler integration, Blade view examples). It sits as a thin domain layer for a YouTube video catalog rather than a full CMS, so it composes cleanly with an existing app. The introduction of a YAML storage driver is the architecturally significant change: it implies a pluggable persistence abstraction. If the abstraction is real and documented, that is a positive signal; if YAML is bolted on alongside Eloquent, it creates two divergent code paths that will drift.
Integration feasibility. Low-to-moderate effort for a greenfield or low-traffic install. Key dependencies to validate: a YouTube Data API key, outbound network access from the runtime, writable filesystem for YAML, and a running Laravel scheduler (schedule:run via cron or a supervisor). The docs now cover Blade and Antler rendering, which shortens the UI path considerably.
Technical risk.
data_get($video, 'youtube_url'). Presented as a performance improvement; this is a micro-optimization and should not be treated as a capacity measure.Key questions.
withoutOverlapping() and a lock? What happens on a long-running or failed sync?Stack fit. Fits a standard Laravel monolith on a single host or a single persistent VM. It is a weaker fit for serverless (Vercel, Laravel Vapor) or multi-instance Kubernetes where the filesystem is ephemeral and each replica would hold a divergent YAML file.
Migration path. Treat this as additive. Install, publish config, and run the existing storage driver unchanged in a feature branch. Seed a small YAML corpus in a non-production environment and exercise the sync command manually before enabling the scheduler. If a prior storage backend exists, verify there is a documented conversion; if not, plan to re-import from the YouTube API rather than hand-migrating files. Establish an exit path in advance: because YAML is a file format, plan for a one-way export back to the database if traffic or node count grows.
Compatibility. Confirm PHP and Laravel version constraints against our current baseline before scoping. Check filesystem permissions and whether the storage path survives deploys and container restarts. Ensure a dedicated YouTube API key per environment so staging syncs cannot consume production quota. Review the Blade examples for any assumptions about our layout or asset pipeline.
Sequencing.
Do not adopt YAML and scheduled sync in the same release window; isolate the variable so failures are attributable.
Maintenance. We inherit a scheduling dependency and an external API dependency. Both need ownership: someone must monitor sync jobs, rotate the API key, and respond to quota or schema changes on YouTube's side. YAML files need backup and versioning discipline that a database would have provided for free. Budget a small recurring allowance rather than a one-off integration cost.
Support. Documentation quality has improved and the Blade/Antler examples reduce first-line support load. Residual tickets will cluster around API keys, quota errors, and permissions on the storage directory. Publish an internal runbook covering key rotation, manual re-sync, and file restoration.
Scaling. YAML does not scale horizontally. Read throughput is fine for a modest catalog, but write contention and cross-node drift are hard limits. Hourly sync on a large channel also drives up quota linearly with catalog size. If the roadmap includes multiple instances, treat database-backed storage as the target state and YAML as a development convenience.
Failure modes.
Each needs a detection signal: a failed-job alert, a sync-freshness check, a quota-consumption dashboard, and a smoke test on deploy.
Ramp-up. Low for a Laravel developer — the examples and config conventions carry most of the learning. Expect roughly a day to a working prototype and a further two to three days to harden scheduling, alerting, and backups for production. The release materially improves the case for adoption by a team that already runs Laravel, but it does not resolve the YAML durability question, which remains the deciding factor for anything beyond a single-node deployment.
How can I help you explore Laravel packages today?