← back to Rentv 2026
Boomer voice/byline: on-air name is BOOM not Bloom (Steve) — narration 'This is Boom with RENTV' + byline 'Boom · RENTV'; real surname stays only in the email + clone-provenance comments
ce6805c1c823d1b1967f1e0c41babf4f615059ac · 2026-08-05 16:38:10 -0700 · Steve Abrams
Files touched
M scripts/gen-social-frame.pyM scripts/social-video-gen.mjsM server.js
Diff
commit ce6805c1c823d1b1967f1e0c41babf4f615059ac
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Aug 5 16:38:10 2026 -0700
Boomer voice/byline: on-air name is BOOM not Bloom (Steve) — narration 'This is Boom with RENTV' + byline 'Boom · RENTV'; real surname stays only in the email + clone-provenance comments
---
scripts/gen-social-frame.py | 4 ++--
scripts/social-video-gen.mjs | 4 ++--
server.js | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/scripts/gen-social-frame.py b/scripts/gen-social-frame.py
index 37934692..cf379202 100644
--- a/scripts/gen-social-frame.py
+++ b/scripts/gen-social-frame.py
@@ -3,7 +3,7 @@
Typography + branding live here (PIL) so ffmpeg only does motion + audio.
Usage: gen-social-frame.py --headline "..." --category "Industrial" \
- --hero path.jpg --avatar path.jpg --out frame.png [--byline "Steve Bloom, RENTV"]
+ --hero path.jpg --avatar path.jpg --out frame.png [--byline "Boom, RENTV"]
Grounded — renders only the text passed in; invents nothing.
"""
@@ -60,7 +60,7 @@ def main():
ap.add_argument("--category", default="")
ap.add_argument("--hero", required=True)
ap.add_argument("--avatar", default="")
- ap.add_argument("--byline", default="Steve Bloom · RENTV")
+ ap.add_argument("--byline", default="Boom · RENTV")
ap.add_argument("--footer", default="rentv.com · Western U.S. Commercial Real Estate")
ap.add_argument("--out", required=True)
a = ap.parse_args()
diff --git a/scripts/social-video-gen.mjs b/scripts/social-video-gen.mjs
index 667604fc..75f69763 100644
--- a/scripts/social-video-gen.mjs
+++ b/scripts/social-video-gen.mjs
@@ -61,8 +61,8 @@ function narration(title, category, dur) {
const cat = (category && category.trim()) || 'commercial real estate';
const t = title.replace(/\s+/g, ' ').trim();
if (dur <= 5) return `${t}. From RENTV — the Western U.S. commercial real estate authority.`;
- if (dur <= 15) return `This is Steve Bloom with RENTV. ${t}. It's the kind of deal moving ${cat} across the Western U.S. — the market we've covered for twenty-five years. For the full story, visit rentv dot com.`;
- return `This is Steve Bloom, and welcome to RENTV — now in our twenty-fifth year covering the deals that move Western U.S. commercial real estate. Today's headline: ${t}. It's exactly the kind of ${cat} activity our fifty-thousand readers follow twice a week in The Real Estate Insider. Whether you're an investor, a broker, or a lender, RENTV keeps you ahead of the Western market. Read the full story at rentv dot com.`;
+ if (dur <= 15) return `This is Boom with RENTV. ${t}. It's the kind of deal moving ${cat} across the Western U.S. — the market we've covered for twenty-five years. For the full story, visit rentv dot com.`;
+ return `This is Boom, and welcome to RENTV — now in our twenty-fifth year covering the deals that move Western U.S. commercial real estate. Today's headline: ${t}. It's exactly the kind of ${cat} activity our fifty-thousand readers follow twice a week in The Real Estate Insider. Whether you're an investor, a broker, or a lender, RENTV keeps you ahead of the Western market. Read the full story at rentv dot com.`;
}
async function tts(text, out) {
diff --git a/server.js b/server.js
index e5b60db0..269bab56 100644
--- a/server.js
+++ b/server.js
@@ -981,7 +981,7 @@ function boomerScript(title, highlights, body) {
if (Array.isArray(highlights) && highlights.length) core = highlights.map(h => clean(h, 300)).filter(Boolean).slice(0, 4).join(' ');
if (!core) core = clean(body, 800).split(/(?<=[.!?])\s+/).map(s => s.trim()).filter(Boolean).slice(0, 3).join(' ');
core = core.replace(/\s+/g, ' ').trim();
- const vo = `This is Steve Bloom with RENTV. ${t}. ${core} For the full story, visit rentv dot com.`;
+ const vo = `This is Boom with RENTV. ${t}. ${core} For the full story, visit rentv dot com.`;
return vo.slice(0, 1100); // cap ~1.1k chars ≈ $0.33 so a single clip's TTS cost stays bounded
}
app.post('/api/content/boomer', adminOnly, (req, res) => {
← 49947825 Audience: CRM contacts now surface their REAL enriched Linke
·
back to Rentv 2026
·
auto-save: 2026-08-05T16:43:55 (7 files) — data/deals-regist 07989393 →