Files
Ty Clifford 47de94a3df - .m4a uploads are now accepted in add/edit, and M4A handling now keeps the original source while adding a generated black-frame H.264 MP4 companion source when ffmpeg can run.
The core conversion helper is in [includes/db.php (line 
1161)](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php:1161). 
The upload flows insert the converted MP4 first for playback and retain 
the original M4A as a separate source in [admin/add.php (line 
129)](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/add.php:129) 
and [admin/edit.php (line 
172)](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/edit.php:172). 
I also updated the admin upload hints, [README.md (line 
77)](/Users/tyemeclifford/Documents/GH/mediaplayer/README.md:77), and 
[changelog.md (line 
14)](/Users/tyemeclifford/Documents/GH/mediaplayer/changelog.md:14).
2026-06-25 17:47:54 -04:00

3.2 KiB

Changelog

All notable changes to this media player project.

2026-06-25

Added

  • Redesigned media sources so videos can use local uploaded files or remote URLs stored in the database.
  • Added provider embed playback in the main player for supported external services, including YouTube, Vimeo, Dailymotion, Twitch, Facebook, TikTok, Instagram, X/Twitter, SoundCloud, Spotify, Google Drive, Wistia, Streamable, and Loom.
  • Added an admin upload flow that supports either direct uploads or external provider/page URLs.
  • Added metadata fetching for external URLs to populate title, description, duration, thumbnails, publish dates, and readable provider view counts where available.
  • Added automatic thumbnail grabbing for external URLs, plus first-frame thumbnail generation for local videos when ffmpeg is available.
  • Added M4A upload support that keeps the original M4A source and adds a generated black-frame H.264 MP4 source when ffmpeg is available.
  • Added a YouTube channel importer that scrapes channel videos, previews imports, skips duplicates, and stores imported videos as embedded YouTube sources.
  • Added YouTube timestamp correction so imported and existing YouTube videos can use their original publish dates.
  • Added an Upkeeping section to the admin dashboard for batch maintenance actions.
  • Added per-video local view counts, external provider view counts, total public view counts, and configurable public statistics display.
  • Added upkeep actions to correct external view counts in batches.
  • Added an upkeep action to correct catalogue order from video publish dates so newer dated videos appear first.
  • Added public search for published videos.
  • Added configurable URL rewriting, defaulting to /v/<slug>, /all, and /search/<query>.
  • Added a configurable homepage live section with a Videos/Live toggle and default Stream.Place embed support.
  • Added ?land=live homepage support so the live embed can be displayed first from a shareable landing URL.
  • Added social sharing metadata so video pages expose title, description, and thumbnail image data for link previews.

Changed

  • External provider totals are stored separately from local site plays, then combined for public totals.
  • Public display settings now control per-video counts, total counts, and page statistics.
  • Admin video creation and editing now attempt to fill blank metadata from external media information.
  • The main player now chooses between local media playback, direct remote media playback, and provider embeds based on stored source data.
  • Catalogue ordering now uses publish date as a tie-breaker after stored sort order.
  • README documentation now reflects the current remote URL, provider embed, live section, view count, and pretty URL behavior.

Fixed

  • Improved YouTube channel importing when initial scraping returned no videos.
  • Fixed thumbnail URLs so pagination and non-homepage catalogue pages load poster images correctly.
  • Fixed uploaded and imported YouTube timestamps by reading original provider dates where available.

Removed

  • Removed Imgur-specific embed, thumbnail, metadata, and view-count support.
  • Removed the Imgur wrapper endpoint that previously attempted to proxy official Imgur embed snippets.