47de94a3df
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).
46 lines
3.2 KiB
Markdown
46 lines
3.2 KiB
Markdown
# 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.
|