[object Object]

← back to Rentv

Admin Video Library: gather all RENTV films/walkthroughs/recaps into /press (22 videos)

9df21f116221bc2d6b2d55a58e71c3468f3f3c80 · 2026-07-28 11:49:57 -0700 · Steve Abrams

- Feature Films (5): master reel, growth+sublease deepdive (Steve VO), SWOT brief, ad/media plan
- Product Walkthroughs (13): build walkthrough + per-page demos (pulse/search/metros/hub/etc.)
- Recap Promos (4): brand/daily/review/deals HyperFrames recaps
- data-driven page reads press/videos.json; backend hub card -> Video Library
- mp4s gitignored (219MB) served+deployed not versioned; untracked prior recaps
- excluded raw source footage/clip fragments/_deck intermediates (ingredients, not movies)

TK-10013

Files touched

Diff

commit 9df21f116221bc2d6b2d55a58e71c3468f3f3c80
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue Jul 28 11:49:57 2026 -0700

    Admin Video Library: gather all RENTV films/walkthroughs/recaps into /press (22 videos)
    
    - Feature Films (5): master reel, growth+sublease deepdive (Steve VO), SWOT brief, ad/media plan
    - Product Walkthroughs (13): build walkthrough + per-page demos (pulse/search/metros/hub/etc.)
    - Recap Promos (4): brand/daily/review/deals HyperFrames recaps
    - data-driven page reads press/videos.json; backend hub card -> Video Library
    - mp4s gitignored (219MB) served+deployed not versioned; untracked prior recaps
    - excluded raw source footage/clip fragments/_deck intermediates (ingredients, not movies)
    
    TK-10013
---
 .gitignore                    |   4 ++
 public/backend.html           |   2 +-
 public/press/index.html       |  60 ++++++++++---------
 public/press/media/brand.mp4  | Bin 1488670 -> 0 bytes
 public/press/media/daily.mp4  | Bin 1098925 -> 0 bytes
 public/press/media/deals.mp4  | Bin 1820672 -> 0 bytes
 public/press/media/review.mp4 | Bin 1430006 -> 0 bytes
 public/press/videos.json      | 131 ++++++++++++++++++++++++++++++++++++++++++
 8 files changed, 170 insertions(+), 27 deletions(-)

diff --git a/.gitignore b/.gitignore
index f4d6c76b..d0e588a2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,7 @@ public/img/news/*
 
 # Access record — plaintext creds already live in server.js; keep the ledger out of git
 ACCESS-USERS.md
+
+# admin video library media — served + deployed, not versioned (too large)
+public/press/media/**/*.mp4
+public/press/media/*.mp4
diff --git a/public/backend.html b/public/backend.html
index 4787dceb..70167605 100644
--- a/public/backend.html
+++ b/public/backend.html
@@ -48,7 +48,7 @@
   <div class="sect">Growth &amp; Comms</div>
   <div class="grid">
     <a class="card" href="/consulting"><div class="ico">🚀</div><b>Consulting</b><span>Growth deliverable · concepts · intake · command center</span></a>
-    <a class="card" href="/press"><div class="ico">🎬</div><b>Press &amp; Promos</b><span>Recap films + launch captures</span></a>
+    <a class="card" href="/press"><div class="ico">🎬</div><b>Video Library</b><span>Films, walkthroughs &amp; recaps + launch captures</span></a>
   </div>
 </main>
 </body>
diff --git a/public/press/index.html b/public/press/index.html
index a8a596b0..e03ff23d 100644
--- a/public/press/index.html
+++ b/public/press/index.html
@@ -3,7 +3,7 @@
 <head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1">
-<title>RENTV — Press &amp; Promos (Admin)</title>
+<title>RENTV — Video Library (Admin)</title>
 <style>
   :root { --ink:#0d1b2a; --muted:#5b6b7b; --line:#e4e9ef; --bg:#f6f8fb; --accent:#0a6cff; }
   * { box-sizing:border-box; }
@@ -11,48 +11,56 @@
   header { padding:22px 28px; border-bottom:1px solid var(--line); background:#fff; display:flex; align-items:baseline; gap:14px; }
   header h1 { margin:0; font-size:20px; letter-spacing:.2px; }
   header .tag { font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:#fff; background:var(--accent); padding:3px 8px; border-radius:99px; }
-  header a { margin-left:auto; font-size:13px; color:var(--accent); text-decoration:none; }
-  main { max-width:1100px; margin:0 auto; padding:28px; }
-  h2 { font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin:34px 0 14px; }
-  .grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:18px; }
+  header .count { color:var(--muted); font-size:13px; }
+  header a.back { margin-left:auto; font-size:13px; color:var(--accent); text-decoration:none; font-weight:600; }
+  main { max-width:1180px; margin:0 auto; padding:26px 28px 60px; }
+  p.lede { color:var(--muted); max-width:660px; margin:0 0 8px; }
+  h2 { font-size:13px; text-transform:uppercase; letter-spacing:.1em; color:var(--muted); margin:34px 0 14px; display:flex; gap:8px; align-items:baseline; }
+  h2 span { color:var(--accent); font-size:11px; }
+  .grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:18px; }
   .card { background:#fff; border:1px solid var(--line); border-radius:12px; overflow:hidden; }
   .card video { width:100%; display:block; background:#000; aspect-ratio:16/9; }
-  .card .body { padding:12px 14px; }
+  .card .body { padding:11px 14px; display:flex; justify-content:space-between; align-items:baseline; gap:8px; }
   .card .body b { font-size:14px; }
-  .card .body span { display:block; color:var(--muted); font-size:12px; margin-top:2px; }
+  .card .body span { color:var(--muted); font-size:12px; white-space:nowrap; }
   .caps { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:10px; }
   .caps img { width:100%; border:1px solid var(--line); border-radius:8px; display:block; }
+  .empty { color:var(--muted); font-size:13px; padding:12px 0; }
 </style>
 </head>
 <body>
 <header>
-  <h1>RENTV Press &amp; Promos</h1><span class="tag">Admin</span>
-  <a href="/">← back to site</a>
+  <h1>RENTV Video Library</h1><span class="tag">Admin</span>
+  <span class="count" id="count"></span>
+  <a class="back" href="/backend">← Backend</a>
 </header>
 <main>
-  <p style="color:var(--muted);max-width:640px">Launch recap films (HyperFrames, Steve VO) and the admin-surface capture set,
-  folded in from the former <code>rentv-promos</code> project. Internal use only.</p>
-
-  <h2>Recap films</h2>
-  <div class="grid" id="films"></div>
+  <p class="lede">Every RENTV film, walkthrough, and recap — the master reel, growth &amp; sublease
+  deep-dive films (Steve VO), per-page product walkthroughs, and the HyperFrames daily recaps.
+  Internal use only.</p>
+  <div id="groups"></div>
 
   <h2>Launch captures</h2>
   <div class="caps" id="caps"></div>
 </main>
 <script>
-  const films = [
-    ['brand',  'Brand film',        'RENTV identity + positioning'],
-    ['daily',  'Daily recap',       'The daily CRE news wrap'],
-    ['review', 'The REview',        'Video platform showcase'],
-    ['deals',  'Deals reel',        'Tracked transactions highlight'],
-  ];
-  document.getElementById('films').innerHTML = films.map(([f,t,s]) =>
-    `<div class="card"><video controls preload="metadata" src="/press/media/${f}.mp4"></video>
-     <div class="body"><b>${t}</b><span>${s}</span></div></div>`).join('');
+  fetch('/press/videos.json').then(function (r) { return r.json(); }).then(function (data) {
+    document.getElementById('count').textContent = data.count + ' videos';
+    document.getElementById('groups').innerHTML = data.groups.map(function (g) {
+      var cards = g.items.map(function (v) {
+        return '<div class="card"><video controls preload="metadata" src="/press/media/' + v.src + '"></video>'
+          + '<div class="body"><b>' + v.title + '</b><span>' + v.sizeMB + ' MB</span></div></div>';
+      }).join('');
+      return '<h2>' + g.label + ' <span>' + g.items.length + '</span></h2><div class="grid">' + cards + '</div>';
+    }).join('');
+  }).catch(function () {
+    document.getElementById('groups').innerHTML = '<p class="empty">Could not load video manifest.</p>';
+  });
 
-  const caps = ['home','markets','article','blog','cretalk','admin-index','admin-command','admin-analytics','admin-kanban'];
-  document.getElementById('caps').innerHTML = caps.map(c =>
-    `<a href="/press/media/captures/${c}.png" target="_blank"><img loading="lazy" src="/press/media/captures/${c}.png" alt="${c}"></a>`).join('');
+  var caps = ['home','markets','article','blog','cretalk','admin-index','admin-command','admin-analytics','admin-kanban'];
+  document.getElementById('caps').innerHTML = caps.map(function (c) {
+    return '<a href="/press/media/captures/' + c + '.png" target="_blank"><img loading="lazy" src="/press/media/captures/' + c + '.png" alt="' + c + '"></a>';
+  }).join('');
 </script>
 </body>
 </html>
diff --git a/public/press/media/brand.mp4 b/public/press/media/brand.mp4
deleted file mode 100644
index ca24c041..00000000
Binary files a/public/press/media/brand.mp4 and /dev/null differ
diff --git a/public/press/media/daily.mp4 b/public/press/media/daily.mp4
deleted file mode 100644
index 4e9748c4..00000000
Binary files a/public/press/media/daily.mp4 and /dev/null differ
diff --git a/public/press/media/deals.mp4 b/public/press/media/deals.mp4
deleted file mode 100644
index 07ff0547..00000000
Binary files a/public/press/media/deals.mp4 and /dev/null differ
diff --git a/public/press/media/review.mp4 b/public/press/media/review.mp4
deleted file mode 100644
index 986ed6cd..00000000
Binary files a/public/press/media/review.mp4 and /dev/null differ
diff --git a/public/press/videos.json b/public/press/videos.json
new file mode 100644
index 00000000..61cb096d
--- /dev/null
+++ b/public/press/videos.json
@@ -0,0 +1,131 @@
+{
+ "generated_at": "2026-07-28",
+ "count": 22,
+ "groups": [
+  {
+   "label": "Feature Films",
+   "items": [
+    {
+     "title": "Master Reel",
+     "src": "films/00-master-reel.mp4",
+     "sizeMB": 85.6
+    },
+    {
+     "title": "Growth Steve Voice",
+     "src": "films/01-growth-steve-voice.mp4",
+     "sizeMB": 70.2
+    },
+    {
+     "title": "Sublease Deepdive",
+     "src": "films/02-sublease-deepdive.mp4",
+     "sizeMB": 8.1
+    },
+    {
+     "title": "Sublease Swot Brief",
+     "src": "films/03-sublease-swot-brief.mp4",
+     "sizeMB": 6.5
+    },
+    {
+     "title": "Advertising Media Plan",
+     "src": "films/04-advertising-media-plan.mp4",
+     "sizeMB": 6.9
+    }
+   ]
+  },
+  {
+   "label": "Product Walkthroughs",
+   "items": [
+    {
+     "title": "Brief",
+     "src": "walkthroughs/brief.mp4",
+     "sizeMB": 0.8
+    },
+    {
+     "title": "Build Walkthrough",
+     "src": "walkthroughs/build-walkthrough.mp4",
+     "sizeMB": 16.4
+    },
+    {
+     "title": "Compare",
+     "src": "walkthroughs/compare.mp4",
+     "sizeMB": 0.9
+    },
+    {
+     "title": "Directory",
+     "src": "walkthroughs/directory.mp4",
+     "sizeMB": 0.6
+    },
+    {
+     "title": "Geofix",
+     "src": "walkthroughs/geofix.mp4",
+     "sizeMB": 0.8
+    },
+    {
+     "title": "Hub",
+     "src": "walkthroughs/hub.mp4",
+     "sizeMB": 0.9
+    },
+    {
+     "title": "Metros",
+     "src": "walkthroughs/metros.mp4",
+     "sizeMB": 0.7
+    },
+    {
+     "title": "Pulse",
+     "src": "walkthroughs/pulse.mp4",
+     "sizeMB": 0.8
+    },
+    {
+     "title": "Search",
+     "src": "walkthroughs/search.mp4",
+     "sizeMB": 0.9
+    },
+    {
+     "title": "Sector",
+     "src": "walkthroughs/sector.mp4",
+     "sizeMB": 0.9
+    },
+    {
+     "title": "Syndicate",
+     "src": "walkthroughs/syndicate.mp4",
+     "sizeMB": 1
+    },
+    {
+     "title": "Toolkit",
+     "src": "walkthroughs/toolkit.mp4",
+     "sizeMB": 0.8
+    },
+    {
+     "title": "Watchlist",
+     "src": "walkthroughs/watchlist.mp4",
+     "sizeMB": 0.9
+    }
+   ]
+  },
+  {
+   "label": "Recap Promos",
+   "items": [
+    {
+     "title": "Brand film",
+     "src": "brand.mp4",
+     "sizeMB": 1.4
+    },
+    {
+     "title": "Daily film",
+     "src": "daily.mp4",
+     "sizeMB": 1
+    },
+    {
+     "title": "Review film",
+     "src": "review.mp4",
+     "sizeMB": 1.4
+    },
+    {
+     "title": "Deals film",
+     "src": "deals.mp4",
+     "sizeMB": 1.7
+    }
+   ]
+  }
+ ]
+}
\ No newline at end of file

← d2865684 Add Front End <-> Backend toggle: site-wide injected widget  ·  back to Rentv  ·  Complete consulting fold: rewrite /portal/* asset paths -> / 11ac5376 →