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.
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.
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).
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.