14 Commits

Author SHA1 Message Date
Ty Clifford 6a1c545f35 - Descriptions now render Markdown or sanitized HTML via [includes/db.php](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php).
Public player descriptions render formatted HTML on the homepage.
Catalogue cards, embed meta tags, and social metadata use safe 
plain-text excerpts.
Add/edit admin pages now use a rich description editor that preserves 
pasted HTML styling, with a textarea fallback for no-JS.
External/YouTube-imported descriptions are sanitized before storage.
README now documents Markdown/HTML description support.
2026-07-01 15:41:01 -04:00
Ty Clifford 57d3c81dad - Removed the audio additions and reverted the app back to the prior video-focused behavior.
Audio upload support, waveform generation, Video.js audio rendering 
branches, audio quality labels, and “Add Media” wording were removed 
from:
[includes/db.php](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php), 
[admin/add.php](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/add.php), 
[admin/edit.php](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/edit.php), 
[index.php](/Users/tyemeclifford/Documents/GH/mediaplayer/index.php), 
[embed.php](/Users/tyemeclifford/Documents/GH/mediaplayer/embed.php), 
README, and changelog.
2026-06-25 14:13:45 -04:00
Ty Clifford 7deae1a399 - Implemented audio support with Video.js.
What changed:
Added uploaded/direct audio playback paths in 
[index.php](/Users/tyemeclifford/Documents/GH/mediaplayer/index.php) and 
[embed.php](/Users/tyemeclifford/Documents/GH/mediaplayer/embed.php).
Added common audio upload support: MP3, M4A, AAC, WAV, FLAC, OGG, OGA, 
OPUS.
Added waveform poster generation for uploaded audio via ffmpeg, stored 
like normal thumbnails under media/thumbs/.
Updated add/edit forms to accept media files, not just video files.
Added audio-friendly labels like Audio, 320kbps, 256kbps, 128kbps.
Updated docs and changelog.
2026-06-25 13:34:20 -04:00
Ty Clifford 8a39bc02fa - Added Upkeeping → Correct catalogue order.
It now recalculates video sort_order from created_at newest-first, so 
videos with corrected/original publish dates appear first in the 
homepage and public catalogue. I also updated 
catalogue/admin/latest-video ordering to use publish date as a 
tie-breaker after stored sort order.
2026-06-25 11:58:57 -04:00
Ty Clifford 7375613e63 - Added ?land=live support for the homepage in [index.php](/Users/tyemeclifford/Documents/GH/mediaplayer/index.php). When live is enabled, visiting the homepage with ?land=live now renders the Live tab active first, hides the normal video player initially, preserves the live mode through homepage pagination, and updates the URL when switching between Videos and Live.
Also updated 
[README.md](/Users/tyemeclifford/Documents/GH/mediaplayer/README.md) and 
[changelog.md](/Users/tyemeclifford/Documents/GH/mediaplayer/changelog.md).
2026-06-25 09:32:51 -04:00
Ty Clifford 173fe3917e - Added shared Open Graph/Twitter/canonical metadata rendering in [includes/layout.php](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/layout.php).
The main video page now uses the active video’s:title
description
canonical /v/<slug> URL
thumbnail as og:image / twitter:image
image dimensions when available

The standalone embed page also now emits social metadata using the video 
thumbnail.
2026-06-25 08:29:13 -04:00
Ty Clifford a3aa51c4e2 - Live homepage:
Added default Live settings in 
[includes/db.php](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php) 
using https://stream.place/embed/tyclifford.com.
Added Admin → Settings → Live Section controls in 
[admin/settings.php](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/settings.php): 
enable/disable, live title, and embed URL/iframe input.
Added a homepage Videos / Live toggle in 
[index.php](/Users/tyemeclifford/Documents/GH/mediaplayer/index.php). 
Videos remains the default view, so the homepage behaves normally until 
Live is selected.
Imgur:
Added Imgur URL normalization, embed support, oEmbed/thumbnail hooks, 
and external view count scraping support in 
[includes/db.php](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php).
Supports imgur.com, albums/galleries, and direct i.imgur.com 
photos/GIFs/videos by routing them through Imgur embeds.
Imgur external views now flow into external_view_count, so per-item and 
overall site totals include readable Imgur provider counts.
Updated the add-video hint and README docs.
2026-06-25 07:38:19 -04:00
Ty Clifford 2d52255b93 - What changed:
Added external_view_count so provider totals from YouTube/Vimeo/etc are 
added to the site’s total without double-counting local plays.
Updated public totals and per-video public view displays to use site 
views + external views.
Changed Upkeeping action to Correct external view counts with a Correct 
Views button.
Expanded provider scraping beyond YouTube with generic 
page/JSON-LD/oEmbed patterns for readable Vimeo, Dailymotion, and 
similar pages.
Improved Add Video:Title no longer has to be manually entered first.
External URL rows now have Fetch Info.
Metadata can fill title, description, duration, source label, and 
external view count.
Save also retries metadata extraction server-side.

Added authenticated metadata endpoint: 
[admin/media_info.php](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/media_info.php).
Updated docs in 
[README.md](/Users/tyemeclifford/Documents/GH/mediaplayer/README.md).
2026-06-25 04:40:59 -04:00
Ty Clifford 86d1fedcb3 - Implemented:
Added view_count database migration/defaults and shared helpers in 
[includes/db.php](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php).
Public player and embed.php now increment views.
Homepage and catalogue can display per-video views, total views, and 
public stats based on admin settings.
Added Admin → Settings toggles for public view/stat display.
Added Admin → Upkeeping action to restore external view counts from 
readable provider pages, with YouTube scraping support first.
Added manual per-video view-count editing in 
[admin/edit.php](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/edit.php) 
for older local uploads or corrections.
Updated 
[README.md](/Users/tyemeclifford/Documents/GH/mediaplayer/README.md) 
with the new behavior.
2026-06-25 04:16:34 -04:00
Ty Clifford 7ad9c672ca - Fixed the thumbnail loading issue on paginated pretty URLs.
The bug was relative media paths like media/thumbs/... resolving under 
routes such as /v/<slug>?page=2 or /search/<query>?page=2. I added 
public_media_url() in 
[includes/db.php](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php) 
and updated public thumbnails, posters, and local player sources in 
[index.php](/Users/tyemeclifford/Documents/GH/mediaplayer/index.php), 
[catalogue.php](/Users/tyemeclifford/Documents/GH/mediaplayer/catalogue.php), 
and [embed.php](/Users/tyemeclifford/Documents/GH/mediaplayer/embed.php) 
to use root/base-aware URLs.
2026-06-24 13:25:44 -04:00
Ty Clifford 1abe5218ca - Implemented configurable public URL rewriting.
What changed:
Added pretty URL helpers/default setting in 
[includes/db.php](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php).
Added root rewrite rules in 
[.htaccess](/Users/tyemeclifford/Documents/GH/mediaplayer/.htaccess):/v/<slug>
/all
/search/<query>

Added Admin → Settings “Public URL Style” toggle in 
[admin/settings.php](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/settings.php), 
defaulting to pretty URLs.
Updated public/player/catalogue/embed/admin preview links to use the 
configured URL style.
Added redirects from legacy ?v= and ?q= URLs to pretty routes when 
rewriting is enabled.
Documented deployment and fallback behavior in 
[README.md](/Users/tyemeclifford/Documents/GH/mediaplayer/README.md).
2026-06-24 13:16:55 -04:00
Ty Clifford 75d5d39cda - Implemented. The main database-backed player now understands provider URLs from lone-embed.php style handling.
What changed:
[includes/db.php (line 
227)](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php:227) 
now classifies YouTube, Vimeo, Dailymotion, Twitch, Facebook, TikTok, 
Instagram, X/Twitter, SoundCloud, Spotify, Google Drive, Wistia, 
Streamable, Loom, plus direct Dropbox/GitHub media rewrites.
[index.php (line 
235)](/Users/tyemeclifford/Documents/GH/mediaplayer/index.php:235) 
renders provider URLs as iframe embeds, while uploaded/direct files 
still use Video.js.
[embed.php (line 
198)](/Users/tyemeclifford/Documents/GH/mediaplayer/embed.php:198) now 
supports those provider embeds too.
[admin/add.php (line 
260)](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/add.php:260) 
and [admin/edit.php (line 
383)](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/edit.php:383) 
now describe external URLs as embed-capable and store recognized 
provider URLs as text/html.
[README.md (line 
63)](/Users/tyemeclifford/Documents/GH/mediaplayer/README.md:63) 
documents provider embed support.
2026-06-24 12:15:03 -04:00
Ty Clifford b24f0dc416 - Done. The media platform now tracks sources as either local uploads or remote URLs.
Changed:
[includes/db.php (line 
43)](/Users/tyemeclifford/Documents/GH/mediaplayer/includes/db.php:43) 
adds source_type and source_url, with an automatic migration for 
existing SQLite databases.
[admin/add.php (line 
260)](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/add.php:260) 
and [admin/edit.php (line 
383)](/Users/tyemeclifford/Documents/GH/mediaplayer/admin/edit.php:383) 
now let each source be an upload or an external URL.
[index.php (line 
226)](/Users/tyemeclifford/Documents/GH/mediaplayer/index.php:226) and 
[embed.php (line 
193)](/Users/tyemeclifford/Documents/GH/mediaplayer/embed.php:193) 
resolve playback URLs based on where the source lives.
[catalogue.php (line 
79)](/Users/tyemeclifford/Documents/GH/mediaplayer/catalogue.php:79) now 
has public search for published videos only.
[README.md (line 
63)](/Users/tyemeclifford/Documents/GH/mediaplayer/README.md:63) 
documents local vs remote sources and public search.
2026-06-24 11:58:29 -04:00
Ty Clifford 6486483d88 - 2026-06-16 16:31:08 -04:00