← back to Rentv Ad Engine
per-video DOSSIER flow: Vimeo embed + poster screenshot + in-episode ads + guests + AI synopsis + 'Generate email to client' (local Ollama drafter, /api/email); clean pm2 restart to clear stale code
a3bfc8bb56b678573930077230357384d09a0968 · 2026-08-07 09:18:19 -0700 · Steve Abrams
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
A data/frames.jsonA data/frames/101654810.jsonA data/frames/107204372.jsonA data/frames/107762220.jsonA data/frames/109994315.jsonA data/frames/117977696.jsonA data/frames/125349744.jsonA data/frames/135939853.jsonA data/frames/142347178.jsonA data/frames/142347291.jsonA data/frames/142347515.jsonA data/frames/142348009.jsonA data/frames/142348532.jsonA data/frames/142348827.jsonA data/frames/142350083.jsonA data/frames/142351726.jsonA data/frames/142353259.jsonA data/frames/143827823.jsonA data/frames/144943180.jsonA data/frames/149786738.jsonA data/frames/157877482.jsonA data/frames/157877500.jsonA data/frames/157877501.jsonA data/frames/157877502.jsonA data/frames/157877503.jsonA data/frames/157877504.jsonA data/frames/162573796.jsonA data/frames/162573927.jsonA data/frames/162574294.jsonA data/frames/162574320.jsonA data/frames/162574338.jsonA data/frames/162574358.jsonA data/frames/162712456.jsonA data/frames/162712493.jsonA data/frames/162712517.jsonA data/frames/167990145.jsonA data/frames/167990176.jsonA data/frames/167990218.jsonA data/frames/167990238.jsonA data/frames/167990250.jsonA data/frames/167990282.jsonA data/frames/171347069.jsonA data/frames/172014042.jsonA data/frames/172014125.jsonA data/frames/172014837.jsonA data/frames/188261706.jsonA data/frames/188271441.jsonA data/frames/208460446.jsonA data/frames/227217030.jsonA data/frames/227224358.jsonA data/frames/228295912.jsonA data/frames/232088787.jsonA data/frames/242491490.jsonA data/frames/308597317.jsonA data/frames/31239971.jsonA data/frames/315327378.jsonA data/frames/316709134.jsonA data/frames/32191299.jsonA data/frames/33583429.jsonA data/frames/35868287.jsonA data/frames/38894517.jsonA data/frames/39610422.jsonA data/frames/42140576.jsonA data/frames/429079440.jsonA data/frames/434219208.jsonA data/frames/44468806.jsonA data/frames/46769758.jsonA data/frames/48347303.jsonA data/frames/493420423.jsonA data/frames/503234116.jsonA data/frames/50591120.jsonA data/frames/507211620.jsonA data/frames/52820750.jsonA data/frames/55380262.jsonA data/frames/565693580.jsonA data/frames/56573116.jsonA data/frames/65258106.jsonA data/frames/69208165.jsonA data/frames/71974003.jsonA data/frames/721184140.jsonA data/frames/739081927.jsonA data/frames/763442741.jsonA data/frames/763447786.jsonA data/frames/77077219.jsonA data/frames/771348410.jsonA data/frames/795355693.jsonA data/frames/811518445.jsonA data/frames/82824854.jsonA data/frames/85237519.jsonA data/frames/90807750.jsonA data/frames/95064851.jsonM data/guests.jsonA data/synopses.jsonA public/img/posters/101654810.jpgA public/img/posters/107204372.jpgA public/img/posters/107762220.jpgA public/img/posters/109994315.jpgA public/img/posters/117977696.jpgA public/img/posters/125349744.jpgA public/img/posters/135939853.jpgA public/img/posters/142347178.jpgA public/img/posters/142347291.jpgA public/img/posters/142347515.jpgA public/img/posters/142348009.jpgA public/img/posters/142348532.jpgA public/img/posters/142348827.jpgA public/img/posters/142350083.jpgA public/img/posters/142351726.jpgA public/img/posters/142353259.jpgA public/img/posters/143827823.jpgA public/img/posters/144943180.jpgA public/img/posters/149786738.jpgA public/img/posters/157877482.jpgA public/img/posters/157877500.jpgA public/img/posters/157877501.jpgA public/img/posters/157877502.jpgA public/img/posters/157877503.jpgA public/img/posters/157877504.jpgA public/img/posters/162573796.jpgA public/img/posters/162573927.jpgA public/img/posters/162574294.jpgA public/img/posters/162574320.jpgA public/img/posters/162574338.jpgA public/img/posters/162574358.jpgA public/img/posters/162712456.jpgA public/img/posters/162712493.jpgA public/img/posters/162712517.jpgA public/img/posters/167990145.jpgA public/img/posters/167990176.jpgA public/img/posters/167990218.jpgA public/img/posters/167990238.jpgA public/img/posters/167990250.jpgA public/img/posters/167990282.jpgA public/img/posters/171347069.jpgA public/img/posters/172014042.jpgA public/img/posters/172014125.jpgA public/img/posters/172014837.jpgA public/img/posters/188261706.jpgA public/img/posters/188271441.jpgA public/img/posters/208460446.jpgA public/img/posters/227217030.jpgA public/img/posters/227224358.jpgA public/img/posters/228295912.jpgA public/img/posters/232088787.jpgA public/img/posters/242491490.jpgA public/img/posters/308597317.jpgA public/img/posters/31239971.jpgA public/img/posters/315327378.jpgA public/img/posters/316709134.jpgA public/img/posters/32191299.jpgA public/img/posters/33583429.jpgA public/img/posters/35868287.jpgA public/img/posters/38894517.jpgA public/img/posters/39610422.jpgA public/img/posters/42140576.jpgA public/img/posters/429079440.jpgA public/img/posters/434219208.jpgA public/img/posters/44468806.jpgA public/img/posters/46769758.jpgA public/img/posters/48347303.jpgA public/img/posters/493420423.jpgA public/img/posters/503234116.jpgA public/img/posters/50591120.jpgA public/img/posters/507211620.jpgA public/img/posters/52820750.jpgA public/img/posters/55380262.jpgA public/img/posters/565693580.jpgA public/img/posters/56573116.jpgA public/img/posters/65258106.jpgA public/img/posters/69208165.jpgA public/img/posters/71974003.jpgA public/img/posters/721184140.jpgA public/img/posters/739081927.jpgA public/img/posters/763442741.jpgA public/img/posters/763447786.jpgA public/img/posters/77077219.jpgA public/img/posters/771348410.jpgA public/img/posters/795355693.jpgA public/img/posters/82824854.jpgA public/img/posters/85237519.jpgA public/img/posters/90807750.jpgA public/img/posters/95064851.jpgM public/index.htmlA scripts/synopsize.pyM server.js
Diff
commit a3bfc8bb56b678573930077230357384d09a0968
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Fri Aug 7 09:18:19 2026 -0700
per-video DOSSIER flow: Vimeo embed + poster screenshot + in-episode ads + guests + AI synopsis + 'Generate email to client' (local Ollama drafter, /api/email); clean pm2 restart to clear stale code
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
data/frames.json | 1526 ++++++++++++++++++++++++++++++++++++++
data/frames/101654810.json | 11 +
data/frames/107204372.json | 9 +
data/frames/107762220.json | 14 +
data/frames/109994315.json | 10 +
data/frames/117977696.json | 13 +
data/frames/125349744.json | 11 +
data/frames/135939853.json | 11 +
data/frames/142347178.json | 14 +
data/frames/142347291.json | 20 +
data/frames/142347515.json | 15 +
data/frames/142348009.json | 9 +
data/frames/142348532.json | 11 +
data/frames/142348827.json | 16 +
data/frames/142350083.json | 13 +
data/frames/142351726.json | 14 +
data/frames/142353259.json | 12 +
data/frames/143827823.json | 11 +
data/frames/144943180.json | 7 +
data/frames/149786738.json | 19 +
data/frames/157877482.json | 9 +
data/frames/157877500.json | 10 +
data/frames/157877501.json | 13 +
data/frames/157877502.json | 10 +
data/frames/157877503.json | 7 +
data/frames/157877504.json | 9 +
data/frames/162573796.json | 7 +
data/frames/162573927.json | 7 +
data/frames/162574294.json | 7 +
data/frames/162574320.json | 9 +
data/frames/162574338.json | 9 +
data/frames/162574358.json | 7 +
data/frames/162712456.json | 17 +
data/frames/162712493.json | 10 +
data/frames/162712517.json | 15 +
data/frames/167990145.json | 9 +
data/frames/167990176.json | 10 +
data/frames/167990218.json | 9 +
data/frames/167990238.json | 20 +
data/frames/167990250.json | 9 +
data/frames/167990282.json | 11 +
data/frames/171347069.json | 10 +
data/frames/172014042.json | 20 +
data/frames/172014125.json | 15 +
data/frames/172014837.json | 7 +
data/frames/188261706.json | 7 +
data/frames/188271441.json | 18 +
data/frames/208460446.json | 13 +
data/frames/227217030.json | 18 +
data/frames/227224358.json | 15 +
data/frames/228295912.json | 22 +
data/frames/232088787.json | 9 +
data/frames/242491490.json | 16 +
data/frames/308597317.json | 11 +
data/frames/31239971.json | 11 +
data/frames/315327378.json | 12 +
data/frames/316709134.json | 9 +
data/frames/32191299.json | 10 +
data/frames/33583429.json | 9 +
data/frames/35868287.json | 10 +
data/frames/38894517.json | 9 +
data/frames/39610422.json | 10 +
data/frames/42140576.json | 9 +
data/frames/429079440.json | 9 +
data/frames/434219208.json | 13 +
data/frames/44468806.json | 9 +
data/frames/46769758.json | 9 +
data/frames/48347303.json | 9 +
data/frames/493420423.json | 14 +
data/frames/503234116.json | 11 +
data/frames/50591120.json | 9 +
data/frames/507211620.json | 9 +
data/frames/52820750.json | 9 +
data/frames/55380262.json | 7 +
data/frames/565693580.json | 7 +
data/frames/56573116.json | 9 +
data/frames/65258106.json | 9 +
data/frames/69208165.json | 9 +
data/frames/71974003.json | 9 +
data/frames/721184140.json | 7 +
data/frames/739081927.json | 16 +
data/frames/763442741.json | 15 +
data/frames/763447786.json | 14 +
data/frames/77077219.json | 9 +
data/frames/771348410.json | 17 +
data/frames/795355693.json | 18 +
data/frames/811518445.json | 25 +
data/frames/82824854.json | 10 +
data/frames/85237519.json | 10 +
data/frames/90807750.json | 12 +
data/frames/95064851.json | 9 +
data/guests.json | 53 +-
data/synopses.json | 264 +++++++
public/img/posters/101654810.jpg | Bin 0 -> 21711 bytes
public/img/posters/107204372.jpg | Bin 0 -> 56540 bytes
public/img/posters/107762220.jpg | Bin 0 -> 15797 bytes
public/img/posters/109994315.jpg | Bin 0 -> 66300 bytes
public/img/posters/117977696.jpg | Bin 0 -> 20962 bytes
public/img/posters/125349744.jpg | Bin 0 -> 66765 bytes
public/img/posters/135939853.jpg | Bin 0 -> 24305 bytes
public/img/posters/142347178.jpg | Bin 0 -> 31036 bytes
public/img/posters/142347291.jpg | Bin 0 -> 30970 bytes
public/img/posters/142347515.jpg | Bin 0 -> 32572 bytes
public/img/posters/142348009.jpg | Bin 0 -> 32674 bytes
public/img/posters/142348532.jpg | Bin 0 -> 36211 bytes
public/img/posters/142348827.jpg | Bin 0 -> 35655 bytes
public/img/posters/142350083.jpg | Bin 0 -> 39789 bytes
public/img/posters/142351726.jpg | Bin 0 -> 43226 bytes
public/img/posters/142353259.jpg | Bin 0 -> 38695 bytes
public/img/posters/143827823.jpg | Bin 0 -> 31265 bytes
public/img/posters/144943180.jpg | Bin 0 -> 39410 bytes
public/img/posters/149786738.jpg | Bin 0 -> 46452 bytes
public/img/posters/157877482.jpg | Bin 0 -> 27960 bytes
public/img/posters/157877500.jpg | Bin 0 -> 29635 bytes
public/img/posters/157877501.jpg | Bin 0 -> 28308 bytes
public/img/posters/157877502.jpg | Bin 0 -> 31474 bytes
public/img/posters/157877503.jpg | Bin 0 -> 31431 bytes
public/img/posters/157877504.jpg | Bin 0 -> 35856 bytes
public/img/posters/162573796.jpg | Bin 0 -> 25294 bytes
public/img/posters/162573927.jpg | Bin 0 -> 42126 bytes
public/img/posters/162574294.jpg | Bin 0 -> 44167 bytes
public/img/posters/162574320.jpg | Bin 0 -> 45295 bytes
public/img/posters/162574338.jpg | Bin 0 -> 41871 bytes
public/img/posters/162574358.jpg | Bin 0 -> 52846 bytes
public/img/posters/162712456.jpg | Bin 0 -> 34717 bytes
public/img/posters/162712493.jpg | Bin 0 -> 36068 bytes
public/img/posters/162712517.jpg | Bin 0 -> 36355 bytes
public/img/posters/167990145.jpg | Bin 0 -> 20694 bytes
public/img/posters/167990176.jpg | Bin 0 -> 55923 bytes
public/img/posters/167990218.jpg | Bin 0 -> 23372 bytes
public/img/posters/167990238.jpg | Bin 0 -> 30645 bytes
public/img/posters/167990250.jpg | Bin 0 -> 25372 bytes
public/img/posters/167990282.jpg | Bin 0 -> 26827 bytes
public/img/posters/171347069.jpg | Bin 0 -> 47844 bytes
public/img/posters/172014042.jpg | Bin 0 -> 17133 bytes
public/img/posters/172014125.jpg | Bin 0 -> 12805 bytes
public/img/posters/172014837.jpg | Bin 0 -> 38453 bytes
public/img/posters/188261706.jpg | Bin 0 -> 40661 bytes
public/img/posters/188271441.jpg | Bin 0 -> 17896 bytes
public/img/posters/208460446.jpg | Bin 0 -> 15558 bytes
public/img/posters/227217030.jpg | Bin 0 -> 16663 bytes
public/img/posters/227224358.jpg | Bin 0 -> 19406 bytes
public/img/posters/228295912.jpg | Bin 0 -> 24472 bytes
public/img/posters/232088787.jpg | Bin 0 -> 52611 bytes
public/img/posters/242491490.jpg | Bin 0 -> 25852 bytes
public/img/posters/308597317.jpg | Bin 0 -> 31143 bytes
public/img/posters/31239971.jpg | Bin 0 -> 39645 bytes
public/img/posters/315327378.jpg | Bin 0 -> 21041 bytes
public/img/posters/316709134.jpg | Bin 0 -> 32987 bytes
public/img/posters/32191299.jpg | Bin 0 -> 26225 bytes
public/img/posters/33583429.jpg | Bin 0 -> 22724 bytes
public/img/posters/35868287.jpg | Bin 0 -> 30147 bytes
public/img/posters/38894517.jpg | Bin 0 -> 22701 bytes
public/img/posters/39610422.jpg | Bin 0 -> 21014 bytes
public/img/posters/42140576.jpg | Bin 0 -> 24448 bytes
public/img/posters/429079440.jpg | Bin 0 -> 81354 bytes
public/img/posters/434219208.jpg | Bin 0 -> 54610 bytes
public/img/posters/44468806.jpg | Bin 0 -> 44453 bytes
public/img/posters/46769758.jpg | Bin 0 -> 31753 bytes
public/img/posters/48347303.jpg | Bin 0 -> 25321 bytes
public/img/posters/493420423.jpg | Bin 0 -> 41016 bytes
public/img/posters/503234116.jpg | Bin 0 -> 3844 bytes
public/img/posters/50591120.jpg | Bin 0 -> 32245 bytes
public/img/posters/507211620.jpg | Bin 0 -> 39649 bytes
public/img/posters/52820750.jpg | Bin 0 -> 32395 bytes
public/img/posters/55380262.jpg | Bin 0 -> 49345 bytes
public/img/posters/565693580.jpg | Bin 0 -> 28577 bytes
public/img/posters/56573116.jpg | Bin 0 -> 27165 bytes
public/img/posters/65258106.jpg | Bin 0 -> 24461 bytes
public/img/posters/69208165.jpg | Bin 0 -> 28472 bytes
public/img/posters/71974003.jpg | Bin 0 -> 23869 bytes
public/img/posters/721184140.jpg | Bin 0 -> 65601 bytes
public/img/posters/739081927.jpg | Bin 0 -> 19582 bytes
public/img/posters/763442741.jpg | Bin 0 -> 19552 bytes
public/img/posters/763447786.jpg | Bin 0 -> 19448 bytes
public/img/posters/77077219.jpg | Bin 0 -> 22360 bytes
public/img/posters/771348410.jpg | Bin 0 -> 40017 bytes
public/img/posters/795355693.jpg | Bin 0 -> 26712 bytes
public/img/posters/82824854.jpg | Bin 0 -> 55443 bytes
public/img/posters/85237519.jpg | Bin 0 -> 56043 bytes
public/img/posters/90807750.jpg | Bin 0 -> 40915 bytes
public/img/posters/95064851.jpg | Bin 0 -> 51059 bytes
public/index.html | 82 +-
scripts/synopsize.py | 60 ++
server.js | 41 +
185 files changed, 3037 insertions(+), 26 deletions(-)
diff --git a/data/frames.json b/data/frames.json
new file mode 100644
index 0000000..741466e
--- /dev/null
+++ b/data/frames.json
@@ -0,0 +1,1526 @@
+{
+ "generated_at": "2026-08-07 09:10:29",
+ "count": 123,
+ "frames": [
+ {
+ "id": 1200839794,
+ "title": "CRE Talk Episode #22 with Bill Shopoff",
+ "poster": "/img/posters/1200839794.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 22",
+ "Bill Shopoff",
+ "Shopoff Realty Investments",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1199114985,
+ "title": "CRE Talk Episode #21 with Daniel Weiss",
+ "poster": "/img/posters/1199114985.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 21",
+ "Daniel Weiss",
+ "Strauss Investments",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1178561985,
+ "title": "CRE Talk Episode #20 with Colton Sudberry",
+ "poster": "/img/posters/1178561985.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 20",
+ "Colton Sudberry",
+ "Sudberry Properties",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1158999653,
+ "title": "Elevation Land OBP 012226 w.audio (1)",
+ "poster": "/img/posters/1158999653.jpg",
+ "texts": [
+ "ELEVATION LAND Co."
+ ],
+ "logos": []
+ },
+ {
+ "id": 1138312637,
+ "title": "CRE Talk Episode #19 - Chris Tourtellotte",
+ "poster": "/img/posters/1138312637.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 19",
+ "Chris Tourtellotte",
+ "LaTerra Development, LLC"
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1115700624,
+ "title": "CRE Talk Episode #18 Terry Tallen",
+ "poster": "/img/posters/1115700624.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 18",
+ "Terry Tallen",
+ "Tallen Capital Partners",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1106281388,
+ "title": "RENTV CRE Talk Episode #17 Chris Rising",
+ "poster": "/img/posters/1106281388.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 17",
+ "Christopher Rising",
+ "Rising Realty Partners",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1083190047,
+ "title": "1000015099",
+ "poster": "/img/posters/1083190047.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 1083188249,
+ "title": "1000015093",
+ "poster": "/img/posters/1083188249.jpg",
+ "texts": [
+ "RON"
+ ],
+ "logos": []
+ },
+ {
+ "id": 1083187814,
+ "title": "1000015119",
+ "poster": "/img/posters/1083187814.jpg",
+ "texts": [
+ "COVARRUBIAS",
+ "BERG",
+ "SHEER",
+ "JONES"
+ ],
+ "logos": []
+ },
+ {
+ "id": 1083187746,
+ "title": "1000015116",
+ "poster": "/img/posters/1083187746.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 1083187666,
+ "title": "1000015101",
+ "poster": "/img/posters/1083187666.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 1079649123,
+ "title": "RENTV CRE Talk Episode #16 - Alex Zikakis",
+ "poster": "/img/posters/1079649123.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 16",
+ "Alex Zikakis",
+ "Capstone Advisors",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1059913595,
+ "title": "RENTV CRE Talk Episode #15 - Marc Brutten",
+ "poster": "/img/posters/1059913595.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 15",
+ "Marc Brutten",
+ "Brutten Global"
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1056513923,
+ "title": "RENTV CRE Talk Episode #14 - John McNellis",
+ "poster": "/img/posters/1056513923.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 14",
+ "John McNellis",
+ "McNellis Partners",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1039101858,
+ "title": "RENTV CRE Talk Episode #13 - Ethan Penner",
+ "poster": "/img/posters/1039101858.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 13",
+ "Ethan Penner",
+ "CEO, Mosaic Real Estate Investors",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 1012976399,
+ "title": "RENTV CRE Talk Episode #12 - Kaitlin Arduino",
+ "poster": "/img/posters/1012976399.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 12",
+ "Kaitlin Arduino",
+ "President",
+ "Murphy Development Company",
+ "RENTV"
+ ],
+ "logos": [
+ "All Star Group Inc."
+ ]
+ },
+ {
+ "id": 989909369,
+ "title": "The Industrial Panel at RENTV's Orange County State of the Market Conference",
+ "poster": "/img/posters/989909369.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 978657040,
+ "title": "The Multifamily Panel at RENTV's Orange County State of the Market Conference",
+ "poster": "/img/posters/978657040.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 953281926,
+ "title": "RENTV CRE Talk Episode #11 - Michael Rademaker",
+ "poster": "/img/posters/953281926.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 11",
+ "Michael Rademaker",
+ "Founder and CEO",
+ "MGR Real Estate",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 931863337,
+ "title": "RENTV CRE Talk Episode #10 Henry Manoucheri",
+ "poster": "/img/posters/931863337.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 10",
+ "Henry Manoucheri",
+ "Chairman and CEO",
+ "Universe Holdings",
+ "RENTV"
+ ],
+ "logos": [
+ "All Star Group Inc."
+ ]
+ },
+ {
+ "id": 911412212,
+ "title": "RENTV CRE Talk Episode #9 Eddie Ring",
+ "poster": "/img/posters/911412212.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 9",
+ "Eddie Ring",
+ "Founder & CEO",
+ "New Standard Equities",
+ "RENTV"
+ ],
+ "logos": [
+ "All Star Group Inc."
+ ]
+ },
+ {
+ "id": 906276616,
+ "title": "RENTV CRE Talk Episode #8 Erwin Bucy",
+ "poster": "/img/posters/906276616.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 8",
+ "Erwin Bucy",
+ "Co-Founder & Principal",
+ "Paragon Commercial Group",
+ "RENTV"
+ ],
+ "logos": [
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 886025667,
+ "title": "RENTV CRE Talk Episode #7 Chuck Hershson",
+ "poster": "/img/posters/886025667.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 7",
+ "Chuck Hershson",
+ "Founder & President",
+ "Fidelity Mortgage Lenders",
+ "RENTV"
+ ],
+ "logos": [
+ "All Star Group Inc."
+ ]
+ },
+ {
+ "id": 868849453,
+ "title": "RENTV CRE Talk Episode #6 Barry Saywitz",
+ "poster": "/img/posters/868849453.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 6",
+ "Barry Saywitz",
+ "President & Founder",
+ "The Saywitz Company",
+ "RENTV"
+ ],
+ "logos": [
+ "All Star Group Inc."
+ ]
+ },
+ {
+ "id": 865035925,
+ "title": "The Multifamily Panel at RENTV's Greater LA State of the Market Conference",
+ "poster": "/img/posters/865035925.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 862593366,
+ "title": "The Finance Panel at RENTV's Greater LA State of the Market Conference",
+ "poster": "/img/posters/862593366.jpg",
+ "texts": [
+ "MAGNATH COMPANY 324"
+ ],
+ "logos": []
+ },
+ {
+ "id": 852462696,
+ "title": "RENTV CRE Talk Episode #5 Barry DiRaimondo",
+ "poster": "/img/posters/852462696.jpg",
+ "texts": [
+ "COMMERCIAL REAL ESTATE TALK",
+ "with Steve & Arnie",
+ "Episode 5",
+ "Barry DiRaimondo",
+ "Co-Founder & CEO",
+ "SteelWave",
+ "RENTV",
+ "All Star GROUP INC."
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 831673533,
+ "title": "RENTV CRE Talk Episode #4 John McNellis",
+ "poster": "/img/posters/831673533.jpg",
+ "texts": [
+ "CRE TALK",
+ "Commercial Real Estate Talk with Steve & Arnie",
+ "Today's Guest:",
+ "John McNellis",
+ "McNellis Partners",
+ "May 19, 2023"
+ ],
+ "logos": [
+ "RENTV Real Estate News & Media",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 830279080,
+ "title": "The Office Panel at RENTV's Inland Empire State of The Market Conference",
+ "poster": "/img/posters/830279080.jpg",
+ "texts": [
+ "The Office Panel",
+ "at RENTV's Inland Empire State of the Market Conference",
+ "May 9, 2023"
+ ],
+ "logos": [
+ "RENTV Real Estate News & Media"
+ ]
+ },
+ {
+ "id": 830276773,
+ "title": "The Retail Panel at RENTV's Inland Empire State of The Market Conference",
+ "poster": "/img/posters/830276773.jpg",
+ "texts": [
+ "The Retail Panel",
+ "at RENTV's Inland Empire State of the Market Conference",
+ "May 9, 2023"
+ ],
+ "logos": [
+ "RENTV Real Estate News & Media"
+ ]
+ },
+ {
+ "id": 812982818,
+ "title": "RENTV ORANGE COUNTY RETAIL PANEL MARCH 16, 2023",
+ "poster": "/img/posters/812982818.jpg",
+ "texts": [
+ "RENTV",
+ "Real Estate News & Media",
+ "Orange County State of the Market The Retail Panel",
+ "NEWMARK",
+ "VALUEROCK",
+ "PARAGON",
+ "NRPWEST",
+ "Glenn Rudy Newmark",
+ "Dennis Vaccaro ValueRock Investment Partners",
+ "Todd Huber Paragon Commercial Group",
+ "John Read CBRE NRP- West",
+ "March 16, 2023"
+ ],
+ "logos": [
+ "RENTV Real Estate News & Media",
+ "NEWMARK",
+ "VALUEROCK",
+ "PARAGON",
+ "NRPWEST"
+ ]
+ },
+ {
+ "id": 812981342,
+ "title": "RENTV CRE Talk Episode #3 - Michael Van Every",
+ "poster": "/img/posters/812981342.jpg",
+ "texts": [
+ "CRE TALK",
+ "Commercial Real Estate Talk with Steve & Arnie",
+ "Today's Guest:",
+ "Michael Van Every",
+ "Republic Urban Properties",
+ "March 20, 2023"
+ ],
+ "logos": [
+ "RENTV Real Estate News & Media",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 811518445,
+ "title": "RENTV ORANGE COUNTY OFFICE PANEL MARCH 16, 2023",
+ "poster": "/img/posters/811518445.jpg",
+ "texts": [
+ "RENTV",
+ "Real Estate News & Media",
+ "Orange County State of the Market The Office Panel",
+ "Irvine Company Office Properties",
+ "Mike Santley Irvine Company Office Properties",
+ "Savills",
+ "Steve Card Savills US",
+ "Granite",
+ "Jason Purvis Granite Properties",
+ "The Kelemen Company",
+ "Tibor Kelemen The Kelemen Company",
+ "March 16, 2023"
+ ],
+ "logos": [
+ "Irvine Company Office Properties",
+ "Savills",
+ "Granite",
+ "The Kelemen Company"
+ ]
+ },
+ {
+ "id": 795355693,
+ "title": "RENTV CRE Talk Episode #2 - Sandy Sigal",
+ "poster": "/img/posters/795355693.jpg",
+ "texts": [
+ "CRE TALK",
+ "Commercial Real Estate Talk with Steve & Arnie",
+ "Today's Guest:",
+ "Sandy Sigal",
+ "President & CEO",
+ "NewMark Merrill Companies",
+ "January 20, 2023"
+ ],
+ "logos": [
+ "RENTV Real Estate News & Media",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 771348410,
+ "title": "RENTV CRE Talk Episode #1 - Bill Shopoff",
+ "poster": "/img/posters/771348410.jpg",
+ "texts": [
+ "Commercial Real Estate Talk",
+ "with Steve & Arnie",
+ "Episode 1:",
+ "Bill Shopoff",
+ "President & CEO",
+ "Shopoff Realty & Investment"
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+ },
+ {
+ "id": 763447786,
+ "title": "RENTV FINANCE OCT 19 2022.mp4",
+ "poster": "/img/posters/763447786.jpg",
+ "texts": [
+ "RENTV Real Estate News & Media",
+ "Greater Los Angeles State of the Market",
+ "The Finance Panel",
+ "October 19, 2022"
+ ],
+ "logos": [
+ "RENTV Real Estate News & Media"
+ ]
+ },
+ {
+ "id": 763442741,
+ "title": "RENTV INDUSTRIAL OCT 19 2022.mp4",
+ "poster": "/img/posters/763442741.jpg",
+ "texts": [
+ "RENTV",
+ "Real Estate News & Media",
+ "Greater Los Angeles State of the Market",
+ "The Industrial Panel",
+ "October 19, 2022"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 739081927,
+ "title": "RENTV ORANGE COUNTY MULTIFAMILY PANEL July 26, 2022",
+ "poster": "/img/posters/739081927.jpg",
+ "texts": [
+ "RENTV",
+ "Real Estate News & Media",
+ "Orange County",
+ "State of the Market",
+ "The Multifamily Panel",
+ "July 26, 2022"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 721184140,
+ "title": "CLIC Vlog w Steve Bloom.mov",
+ "poster": "/img/posters/721184140.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 565693580,
+ "title": "SMART CITY",
+ "poster": "/img/posters/565693580.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 507211620,
+ "title": "SYNERGY VIDEO",
+ "poster": "/img/posters/507211620.jpg",
+ "texts": [
+ "Leasing commercial space is a big expense for your business..."
+ ],
+ "logos": []
+ },
+ {
+ "id": 503234116,
+ "title": "GANTRY Video_VO",
+ "poster": "/img/posters/503234116.jpg",
+ "texts": [
+ "Gantry"
+ ],
+ "logos": [
+ "Gantry"
+ ]
+ },
+ {
+ "id": 493420423,
+ "title": "F & F Income Properties - Your San Diego Family Mutifamily Owner",
+ "poster": "/img/posters/493420423.jpg",
+ "texts": [
+ "F&F INCOME PROPERTIES, LLC",
+ "Call Dan at (858) 342-8462",
+ "Dan@FandFInc.com",
+ "4060 30th St. | San Diego, CA 92104"
+ ],
+ "logos": [
+ "F&F INCOME PROPERTIES, LLC"
+ ]
+ },
+ {
+ "id": 434219208,
+ "title": "Commercial Real Estate Inspectors Video 1 6 30 20",
+ "poster": "/img/posters/434219208.jpg",
+ "texts": [
+ "1 2 3 4",
+ "5 6 7 8 9 10 11",
+ "12 13 14 15 16 17 18",
+ "19 20 21 22 23 24 25",
+ "26 27 28 29 30 31"
+ ],
+ "logos": []
+ },
+ {
+ "id": 429079440,
+ "title": "CapitalRiversCovidFinal",
+ "poster": "/img/posters/429079440.jpg",
+ "texts": [
+ "This community will come back stronger and we're here to help navigate you through."
+ ],
+ "logos": []
+ },
+ {
+ "id": 316709134,
+ "title": "A Glimpse of One Paseo in San Diego",
+ "poster": "/img/posters/316709134.jpg",
+ "texts": [
+ "Come one. Come all."
+ ],
+ "logos": []
+ },
+ {
+ "id": 315327378,
+ "title": "Kilroy Realty's Oyster Point - An Aerial Introduction",
+ "poster": "/img/posters/315327378.jpg",
+ "texts": [
+ "KILROY",
+ "OYSTER POINT"
+ ],
+ "logos": [
+ "\u00b0"
+ ]
+ },
+ {
+ "id": 308597317,
+ "title": "Introducing The Center at Needham Ranch",
+ "poster": "/img/posters/308597317.jpg",
+ "texts": [
+ "THE CENTER at Needham Ranch"
+ ],
+ "logos": [
+ "C"
+ ]
+ },
+ {
+ "id": 242491490,
+ "title": "Brandon Birtcher, CEO of Birtcher Development, LLC, Keynote Address at RENTV's South Bay/Long Beach Conference 10.18.17",
+ "poster": "/img/posters/242491490.jpg",
+ "texts": [
+ "Keynote Address",
+ "BIRTCHER DEVELOPMENT",
+ "LEGACY REAL ESTATE",
+ "Brandon Birtcher",
+ "Birtcher Development LLC",
+ "Conventional Thinking May Be Irrelevant"
+ ],
+ "logos": [
+ "Birtcher Development LLC"
+ ]
+ },
+ {
+ "id": 232088787,
+ "title": "Introduction to Pacific Castle 1 Q 2005",
+ "poster": "/img/posters/232088787.jpg",
+ "texts": [
+ "Trabuco Hills Center\nPurchased for $15.2 mil"
+ ],
+ "logos": []
+ },
+ {
+ "id": 228295912,
+ "title": "Yat-Pang Au, Founder & CEO of Veritas Investments - Keynote Address at RENTV's DT San Francisco Conference 7/20/17",
+ "poster": "/img/posters/228295912.jpg",
+ "texts": [
+ "RENTV",
+ "REAL ESTATE NEWS",
+ "TELEVISION",
+ "KEYNOTE PRESENTATION",
+ "VERITAS",
+ "INVESTMENTS",
+ "Yat-Pang Au",
+ "Chief Executive Officer",
+ "Veritas Investments",
+ "Multi-family Demand for Infill, Existing Properties:",
+ "Where Today's Mobile Workforce Wants to Live"
+ ],
+ "logos": [
+ "RENTV",
+ "VERITAS INVESTMENTS"
+ ]
+ },
+ {
+ "id": 227224358,
+ "title": "Office Panel at RENTV's Downtown Los Angeles State of the Market Conference - April 2017",
+ "poster": "/img/posters/227224358.jpg",
+ "texts": [
+ "OFFICE PANEL",
+ "Steve Marcussen Executive Director Cushman & Wakefield",
+ "Kent Handleman Senior VP, Brokerage Lincoln Property Company",
+ "Christopher Rising Founder and President Rising Realty Partners",
+ "James Malone VP, Leasing - US Office Division Brookfield Property Partners"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 227217030,
+ "title": "Metropolis Los Angeles, Presentation by Ryan Aubry. Director of Development, Greenland USA",
+ "poster": "/img/posters/227217030.jpg",
+ "texts": [
+ "RENTV",
+ "GREENLAND USA",
+ "Ryan Aubry",
+ "Greenland USA",
+ "METROPOLIS",
+ "LOS ANGELES"
+ ],
+ "logos": [
+ "RENTV",
+ "GREENLAND USA",
+ "METROPOLIS"
+ ]
+ },
+ {
+ "id": 208460446,
+ "title": "Industrial Panel at RENTV's San Jose/SIlicon Valley State of the Market Conference - Feb 2017",
+ "poster": "/img/posters/208460446.jpg",
+ "texts": [
+ "INDUSTRIAL PANEL",
+ "SAN JOSE / SILICON VALLEY STATE OF THE MARKET CONFERENCE",
+ "FEBRUARY 22, 2017"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 188271441,
+ "title": "Retail Panel at RENTV's Westside of LA State of the Market Conference - Aug, 2016",
+ "poster": "/img/posters/188271441.jpg",
+ "texts": [
+ "Bob Champion",
+ "President, Champion Real Estate Company",
+ "Alex Kozakov",
+ "Senior VP CBRE, Capital Markets",
+ "Eddie Prosser",
+ "Thorofare Capital",
+ "Jim Dillavou",
+ "Principal, Paragon Commercial Group"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 188261706,
+ "title": "Westside Hotel Development and One Beverly Hills",
+ "poster": "/img/posters/188261706.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 172014837,
+ "title": "Office Panel at RENTV's Sacramento State of the Market Conference - May, 2016",
+ "poster": "/img/posters/172014837.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 172014125,
+ "title": "The new Sacramento Airport hotel - RENTV's Sacramento State of the Market Conference - May, 2016",
+ "poster": "/img/posters/172014125.jpg",
+ "texts": [
+ "RENTV",
+ "Keynote Presentation",
+ "Bob Sonnenblick Principal",
+ "Sonnenblick Development",
+ "Hyatt Hotel/Sacramento Airport"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 172014042,
+ "title": "Industrial Discussion at RENTV's Sacramento State of the Market Conference - May, 2016",
+ "poster": "/img/posters/172014042.jpg",
+ "texts": [
+ "RENTV",
+ "R&D / Industrial Panel",
+ "KENNEDY WILSON",
+ "Coastal Partners, LLC",
+ "John Troughton",
+ "Kennedy Wilson",
+ "Brett Baumgarten",
+ "Coastal Partners, LLC"
+ ],
+ "logos": [
+ "RENTV",
+ "KENNEDY WILSON",
+ "Coastal Partners, LLC"
+ ]
+ },
+ {
+ "id": 171347069,
+ "title": "Industrial Panel at RENTV's Inland Empire State of The Market Conference - May, 2016",
+ "poster": "/img/posters/171347069.jpg",
+ "texts": [
+ "EXIT",
+ "Every Line of Visible Text"
+ ],
+ "logos": []
+ },
+ {
+ "id": 167990282,
+ "title": "Keynote Discussion by Carol Schatz, Pres & CEO of DCBID at RENTV's April 2016 Downtown LA State of the Market Conference",
+ "poster": "/img/posters/167990282.jpg",
+ "texts": [
+ "Carol Schatz, President, CEO, Downtown Center, Business Improvement District"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 167990250,
+ "title": "Presentation by Chris Martin about Wilshire Grand at RENTV's 4.14.16 Downtown LA State of the Market Conference",
+ "poster": "/img/posters/167990250.jpg",
+ "texts": [
+ "the majesty of Half Dome"
+ ],
+ "logos": []
+ },
+ {
+ "id": 167990238,
+ "title": "Retail Panel at RENTV's April 2016 Downtown LA State of the Market Conference",
+ "poster": "/img/posters/167990238.jpg",
+ "texts": [
+ "RETAIL PANEL",
+ "Kennedy Wilson",
+ "Avison Young",
+ "Brookfield",
+ "Lee Shapiro Kennedy Wilson",
+ "Demick Moore Avison Young",
+ "Rachael Zanatos Brookfield Property Partners",
+ "Hal Bastian HAL BASTIAN, INC"
+ ],
+ "logos": [
+ "Kennedy Wilson",
+ "Avison Young",
+ "Brookfield"
+ ]
+ },
+ {
+ "id": 167990218,
+ "title": "Office Panel at RENTV's April 2016 Downtown Los Angeles State of the Market Conference",
+ "poster": "/img/posters/167990218.jpg",
+ "texts": [
+ "Brookfield"
+ ],
+ "logos": []
+ },
+ {
+ "id": 167990176,
+ "title": "Multifamily Panel at RENTV's April 2016 Downtown Los Angeles State of the Market Conference",
+ "poster": "/img/posters/167990176.jpg",
+ "texts": [
+ "DOWNTOWN LA",
+ "SOUTH PARK DISTRICT"
+ ],
+ "logos": []
+ },
+ {
+ "id": 167990145,
+ "title": "Arts District Panel at RENTV's April 2016 Downtown Los Angeles State of the Market Conference",
+ "poster": "/img/posters/167990145.jpg",
+ "texts": [
+ "Brookfield"
+ ],
+ "logos": []
+ },
+ {
+ "id": 162712517,
+ "title": "RENTV 2016 San Diego R&D Industrial Panel",
+ "poster": "/img/posters/162712517.jpg",
+ "texts": [
+ "R&D / Industrial Panel",
+ "Kiddie Mathews",
+ "CBRE",
+ "CT Realty",
+ "Ward Malcomb"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 162712493,
+ "title": "RENTV 3.17.2016 San Diego State of the Market Conf Office Panel",
+ "poster": "/img/posters/162712493.jpg",
+ "texts": [
+ "EXIT",
+ "GBC"
+ ],
+ "logos": []
+ },
+ {
+ "id": 162712456,
+ "title": "RENTV 3.17.2016 San Diego State of the Market Conf Multifamily Panel",
+ "poster": "/img/posters/162712456.jpg",
+ "texts": [
+ "EXIT",
+ "Multifamily Panel",
+ "Walker & Dunlop",
+ "NAI San Diego",
+ "ACI"
+ ],
+ "logos": [
+ "Walker & Dunlop",
+ "NAI San Diego",
+ "ACI"
+ ]
+ },
+ {
+ "id": 162574358,
+ "title": "RENTV's San Jose/Silicon Valley State of the Market Feb 2016 Retail Panel",
+ "poster": "/img/posters/162574358.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 162574338,
+ "title": "RENTV 2.24.2016 San Jose/Silicon Valley R&D Industrial Panel at State of the Market Conference",
+ "poster": "/img/posters/162574338.jpg",
+ "texts": [
+ "San Jose"
+ ],
+ "logos": []
+ },
+ {
+ "id": 162574320,
+ "title": "Multifamily Panel at RENTV's Feb 2016 San Jose/Silicon Valley State of the Market",
+ "poster": "/img/posters/162574320.jpg",
+ "texts": [
+ "MONTHLY AVERAGE COMPARISON RATE ON 30 YEAR FIXED MORTGAGES"
+ ],
+ "logos": []
+ },
+ {
+ "id": 162574294,
+ "title": "Capital Panel at RENTV's San Jose/Silicon Valley Feb 2016 State of the Market Conference",
+ "poster": "/img/posters/162574294.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 162573927,
+ "title": "RENTV's San Jose/Silicon Valley State of the Market Feb 2016 Office Panel",
+ "poster": "/img/posters/162573927.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 162573796,
+ "title": "Mayor Sam Liccardo Keynote at RENTV San Jose/Silicon Valley Conference",
+ "poster": "/img/posters/162573796.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 157877504,
+ "title": "RENTV Jan 28 2016 OC Retail Panel",
+ "poster": "/img/posters/157877504.jpg",
+ "texts": [
+ "Retail Panel"
+ ],
+ "logos": []
+ },
+ {
+ "id": 157877503,
+ "title": "RENTV Jan 28 2016 OC Office Panel",
+ "poster": "/img/posters/157877503.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 157877502,
+ "title": "RENTV Jan 28 2016 OC Keynote Presentation",
+ "poster": "/img/posters/157877502.jpg",
+ "texts": [
+ "Keynote Presentation",
+ "Russ Parker, Managing Member, Parker Properties"
+ ],
+ "logos": []
+ },
+ {
+ "id": 157877501,
+ "title": "RENTV Jan 28 2016 OC MultiFamily Panel",
+ "poster": "/img/posters/157877501.jpg",
+ "texts": [
+ "Multifamily Panel",
+ "Jerome A. Fink, Managing Partner, The Bascom Group, LLC",
+ "Nicholas Dunlap, President, Property Management, Apartment Assoc. of Orange County",
+ "James Wohrman, President, FDC Management",
+ "Laurie Morfin, Senior Vice President, Bellwether Enterprise"
+ ],
+ "logos": []
+ },
+ {
+ "id": 157877500,
+ "title": "RENTV Jan 28 2016 OC Industrial Panel",
+ "poster": "/img/posters/157877500.jpg",
+ "texts": [
+ "Birch",
+ "MAXTORO"
+ ],
+ "logos": []
+ },
+ {
+ "id": 157877482,
+ "title": "RENTV Jan 28 2016 OC Hotel Market",
+ "poster": "/img/posters/157877482.jpg",
+ "texts": [
+ "Kimpton Shorebreak Hotel\nHuntington Beach, California\n$58,400,000 ($171,663 per room)"
+ ],
+ "logos": []
+ },
+ {
+ "id": 149786738,
+ "title": "RENTV One Sante Fe & Arts District 12.22.15",
+ "poster": "/img/posters/149786738.jpg",
+ "texts": [
+ "ONE SANTA FE",
+ "NOW LEASING",
+ "STUDIO & 1 BEDROOM APARTMENTS",
+ "455.256.8917",
+ "OSFLA.COM",
+ "RENTV",
+ "REAL ESTATE NEWS",
+ "TELEVISION",
+ "One Santa Fe & The Arts District"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 144943180,
+ "title": "RENTV Oakland State of the Market Conference Retail Panel Sept 25 2015",
+ "poster": "/img/posters/144943180.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 143827823,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 1",
+ "poster": "/img/posters/143827823.jpg",
+ "texts": [
+ "MONTHLY AVERAGE COMMITMENT RATE ON 30-YEAR FIXED MORTGAGES"
+ ],
+ "logos": [
+ "Marriott"
+ ]
+ },
+ {
+ "id": 142353259,
+ "title": "RENTV OAKLAND MULTIFAM PANEL PART 5",
+ "poster": "/img/posters/142353259.jpg",
+ "texts": [
+ "Dan Lieberman",
+ "President, Milestone Properties"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 142351726,
+ "title": "RENTV Oakland State of the Market Sept 2015 Multifamily Panel part 4",
+ "poster": "/img/posters/142351726.jpg",
+ "texts": [
+ "The 2015",
+ "Oakland",
+ "State of the Market Conference"
+ ],
+ "logos": [
+ "RENTV",
+ "RECG"
+ ]
+ },
+ {
+ "id": 142350083,
+ "title": "RENTV Oakland State of the Market Sept 2015 Multifamily Panel part 3",
+ "poster": "/img/posters/142350083.jpg",
+ "texts": [
+ "Sarosh Kumana",
+ "CEO, Pacific Investments"
+ ],
+ "logos": [
+ "RENTV",
+ "MARRIOTT"
+ ]
+ },
+ {
+ "id": 142348827,
+ "title": "RENTV Oakland State of the Market Sept 2015 Multifamily Panel part 2",
+ "poster": "/img/posters/142348827.jpg",
+ "texts": [
+ "Let's pretend we're the Smart Money for a second.",
+ "What are we doing right now?",
+ "Kent Mitchell (Moderator)",
+ "VP of NAI Northern California",
+ "$+$=$$$",
+ "NAI Northern California"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+ },
+ {
+ "id": 142348532,
+ "title": "RENTV Oakland State of the Market Sept 2015 Multifamily Panel part 1",
+ "poster": "/img/posters/142348532.jpg",
+ "texts": [
+ "The Market has we just don't"
+ ],
+ "logos": [
+ "Marriott"
+ ]
+ },
+ {
+ "id": 142348009,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 5",
+ "poster": "/img/posters/142348009.jpg",
+ "texts": [
+ "Oakland"
+ ],
+ "logos": []
+ },
+ {
+ "id": 142347515,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 4",
+ "poster": "/img/posters/142347515.jpg",
+ "texts": [
+ "THE MORE DISTANT FUTURE",
+ "THE GOOD",
+ "factom",
+ "Failing to build quick enough to attract large tech tenants.",
+ "Delaying driverless cars."
+ ],
+ "logos": [
+ "Marriott"
+ ]
+ },
+ {
+ "id": 142347291,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 3",
+ "poster": "/img/posters/142347291.jpg",
+ "texts": [
+ "OAKLAND",
+ "INCOME DISTRIBUTION",
+ "DOWNTOWN VS",
+ "OF OAKLAND",
+ "$0-$29,999",
+ "$30,000-$49,999",
+ "$50,000-$74,999",
+ "$75,000-$99,999",
+ "$100,000+",
+ "Source: spic.org"
+ ],
+ "logos": [
+ "MARRIOTT"
+ ]
+ },
+ {
+ "id": 142347178,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 2",
+ "poster": "/img/posters/142347178.jpg",
+ "texts": [
+ "The BAD: Continued volatility. It will take time to full heal Oakland's reputation for rioting and inconsistent housing policies.",
+ "California",
+ "San Jose"
+ ],
+ "logos": [
+ "MARRIOTT",
+ "Oakland Marriott City Center"
+ ]
+ },
+ {
+ "id": 135939853,
+ "title": "Allen Matkins/UCLA Anderson Forecast California Commercial Real Estate Survey: California Market Booming Again",
+ "poster": "/img/posters/135939853.jpg",
+ "texts": [
+ "Allen Matkins",
+ "OFFICE RENTAL RATES PREDICTED TO INCREASE WITH TECH INDUSTRY DEMAND",
+ "AUGUST 2015"
+ ],
+ "logos": []
+ },
+ {
+ "id": 125349744,
+ "title": "RENTV Columbia Square Hollywood CA April 2015",
+ "poster": "/img/posters/125349744.jpg",
+ "texts": [
+ "Columbia Square",
+ "Hollywood, CA",
+ "By Kilroy Realty Corporation"
+ ],
+ "logos": []
+ },
+ {
+ "id": 117977696,
+ "title": "Allen Matkins' \"It's a Perfect Storm for California Commercial Real Estate Market\" - January 28, 2015",
+ "poster": "/img/posters/117977696.jpg",
+ "texts": [
+ "Allen Matkins",
+ "IT'S A PERFECT STORM FOR CALIFORNIA COMMERCIAL REAL ESTATE MARKET",
+ "JANUARY 2015"
+ ],
+ "logos": [
+ "Allen Matkins"
+ ]
+ },
+ {
+ "id": 109994315,
+ "title": "The Developments at Playa Vista as of October 2014",
+ "poster": "/img/posters/109994315.jpg",
+ "texts": [
+ "Playa Vista Developments",
+ "PLAYA VISTA"
+ ],
+ "logos": []
+ },
+ {
+ "id": 107762220,
+ "title": "Allen Matkins View from the Top Overview - September 2014",
+ "poster": "/img/posters/107762220.jpg",
+ "texts": [
+ "Allen Matkins",
+ "VIEW FROM THE TOP 2014:",
+ "OVERVIEW",
+ "SEPTEMBER 2014"
+ ],
+ "logos": [
+ "Allen Matkins"
+ ]
+ },
+ {
+ "id": 107204372,
+ "title": "Office Space at Runway Commercial V2",
+ "poster": "/img/posters/107204372.jpg",
+ "texts": [
+ "Q BAR"
+ ],
+ "logos": []
+ },
+ {
+ "id": 101654810,
+ "title": "California's Tech Boom Drives New Demand For Office - from Allen Matkins",
+ "poster": "/img/posters/101654810.jpg",
+ "texts": [
+ "Allen Matkins",
+ "CALIFORNIA'S TECH BOOM DRIVES NEW DEMAND FOR OFFICE SPACE",
+ "JULY 24, 2014"
+ ],
+ "logos": []
+ },
+ {
+ "id": 95064851,
+ "title": "Major Recent San Diego Office Sales 5.14",
+ "poster": "/img/posters/95064851.jpg",
+ "texts": [
+ "Major Recent Office Sales In San Diego"
+ ],
+ "logos": []
+ },
+ {
+ "id": 90807750,
+ "title": "RENTV Revisits Two San Fernando Valley Apartment Developments",
+ "poster": "/img/posters/90807750.jpg",
+ "texts": [
+ "RENTV",
+ "Revisits",
+ "San Fernando Valley",
+ "Apartment Developments"
+ ],
+ "logos": []
+ },
+ {
+ "id": 85237519,
+ "title": "Wilshire Grand Development, Los Angeles -- 2014",
+ "poster": "/img/posters/85237519.jpg",
+ "texts": [
+ "The Wilshire Grand Project",
+ "Downtown Los Angeles"
+ ],
+ "logos": []
+ },
+ {
+ "id": 82824854,
+ "title": "The Wilshire Grand project in Downtown Los Angeles",
+ "poster": "/img/posters/82824854.jpg",
+ "texts": [
+ "The Wilshire Grand Project",
+ "Downtown Los Angeles"
+ ],
+ "logos": []
+ },
+ {
+ "id": 77077219,
+ "title": "RENTV News Program - The New Newport Center high-rises",
+ "poster": "/img/posters/77077219.jpg",
+ "texts": [
+ "520 Newport Center Drive"
+ ],
+ "logos": []
+ },
+ {
+ "id": 71974003,
+ "title": "RENTV Focus on Multifamily - Related's 225 S. Grand Ave. LA",
+ "poster": "/img/posters/71974003.jpg",
+ "texts": [
+ "225 S. Grand Avenue"
+ ],
+ "logos": []
+ },
+ {
+ "id": 69208165,
+ "title": "Major Inland Empire Apartment Sales",
+ "poster": "/img/posters/69208165.jpg",
+ "texts": [
+ "Major Inland Empire Apartment Sales"
+ ],
+ "logos": []
+ },
+ {
+ "id": 65258106,
+ "title": "The Runway at Playa Vista Development",
+ "poster": "/img/posters/65258106.jpg",
+ "texts": [
+ "Runway"
+ ],
+ "logos": []
+ },
+ {
+ "id": 56573116,
+ "title": "The Wilshire La Brea Project",
+ "poster": "/img/posters/56573116.jpg",
+ "texts": [
+ "Wilshire La Brea"
+ ],
+ "logos": []
+ },
+ {
+ "id": 55380262,
+ "title": "The Marke In Santa Ana and The Carlyle@Colton in Irvine",
+ "poster": "/img/posters/55380262.jpg",
+ "texts": [],
+ "logos": []
+ },
+ {
+ "id": 52820750,
+ "title": "MG buys over 1000 units in Lancaster, CA",
+ "poster": "/img/posters/52820750.jpg",
+ "texts": [
+ "Lancaster, CA\nLos Angeles County"
+ ],
+ "logos": []
+ },
+ {
+ "id": 50591120,
+ "title": "The $165 Million Shores Project in Marina del Rey",
+ "poster": "/img/posters/50591120.jpg",
+ "texts": [
+ "Shores"
+ ],
+ "logos": []
+ },
+ {
+ "id": 48347303,
+ "title": "Wood Partners' LA Projects",
+ "poster": "/img/posters/48347303.jpg",
+ "texts": [
+ "New Project: 22-stories\n290 units"
+ ],
+ "logos": []
+ },
+ {
+ "id": 46769758,
+ "title": "J.H. Snyder's The Vermont",
+ "poster": "/img/posters/46769758.jpg",
+ "texts": [
+ "The Vermont"
+ ],
+ "logos": []
+ },
+ {
+ "id": 44468806,
+ "title": "RENTV Takes You To The Village at Santa Monica June 2012",
+ "poster": "/img/posters/44468806.jpg",
+ "texts": [
+ "The Village at Santa Monica"
+ ],
+ "logos": []
+ },
+ {
+ "id": 42140576,
+ "title": "The Purchase of the Historic Brockman Lofts Building",
+ "poster": "/img/posters/42140576.jpg",
+ "texts": [
+ "The Brockman Lofts"
+ ],
+ "logos": []
+ },
+ {
+ "id": 39610422,
+ "title": "RENTV's Roving Reporter at RealShare 2012",
+ "poster": "/img/posters/39610422.jpg",
+ "texts": [
+ "RealShare 2012",
+ "March 22, 2012"
+ ],
+ "logos": []
+ },
+ {
+ "id": 38894517,
+ "title": "Major Multifamily Sales Activity in NoHo and Glendale",
+ "poster": "/img/posters/38894517.jpg",
+ "texts": [
+ "NoHo 14"
+ ],
+ "logos": []
+ },
+ {
+ "id": 35868287,
+ "title": "The Development and Sale of West 27th Place",
+ "poster": "/img/posters/35868287.jpg",
+ "texts": [
+ "West 27th Place",
+ "530 W. 27th Street"
+ ],
+ "logos": []
+ },
+ {
+ "id": 33583429,
+ "title": "The Purchase and Plans for 1111 Sunset Boulevard",
+ "poster": "/img/posters/33583429.jpg",
+ "texts": [
+ "Buyer Linear City"
+ ],
+ "logos": []
+ },
+ {
+ "id": 32191299,
+ "title": "Major Multifamily Sales in Central Orange County 11.11",
+ "poster": "/img/posters/32191299.jpg",
+ "texts": [
+ "Price: $31 Million",
+ "$160k per Unit"
+ ],
+ "logos": []
+ },
+ {
+ "id": 31239971,
+ "title": "The LandMarc Apartments by SARES*REGIS",
+ "poster": "/img/posters/31239971.jpg",
+ "texts": [
+ "WOODLAND HILLS APARTMENTS",
+ "SABRE REDIS GROUP",
+ "CONCEPTUAL LANDSCAPE PLAN"
+ ],
+ "logos": []
+ }
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/101654810.json b/data/frames/101654810.json
new file mode 100644
index 0000000..08ffd20
--- /dev/null
+++ b/data/frames/101654810.json
@@ -0,0 +1,11 @@
+{
+ "id": 101654810,
+ "title": "California's Tech Boom Drives New Demand For Office - from Allen Matkins",
+ "poster": "/img/posters/101654810.jpg",
+ "texts": [
+ "Allen Matkins",
+ "CALIFORNIA'S TECH BOOM DRIVES NEW DEMAND FOR OFFICE SPACE",
+ "JULY 24, 2014"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/107204372.json b/data/frames/107204372.json
new file mode 100644
index 0000000..8ee4cae
--- /dev/null
+++ b/data/frames/107204372.json
@@ -0,0 +1,9 @@
+{
+ "id": 107204372,
+ "title": "Office Space at Runway Commercial V2",
+ "poster": "/img/posters/107204372.jpg",
+ "texts": [
+ "Q BAR"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/107762220.json b/data/frames/107762220.json
new file mode 100644
index 0000000..0bfca68
--- /dev/null
+++ b/data/frames/107762220.json
@@ -0,0 +1,14 @@
+{
+ "id": 107762220,
+ "title": "Allen Matkins View from the Top Overview - September 2014",
+ "poster": "/img/posters/107762220.jpg",
+ "texts": [
+ "Allen Matkins",
+ "VIEW FROM THE TOP 2014:",
+ "OVERVIEW",
+ "SEPTEMBER 2014"
+ ],
+ "logos": [
+ "Allen Matkins"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/109994315.json b/data/frames/109994315.json
new file mode 100644
index 0000000..6aaed8a
--- /dev/null
+++ b/data/frames/109994315.json
@@ -0,0 +1,10 @@
+{
+ "id": 109994315,
+ "title": "The Developments at Playa Vista as of October 2014",
+ "poster": "/img/posters/109994315.jpg",
+ "texts": [
+ "Playa Vista Developments",
+ "PLAYA VISTA"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/117977696.json b/data/frames/117977696.json
new file mode 100644
index 0000000..af105bb
--- /dev/null
+++ b/data/frames/117977696.json
@@ -0,0 +1,13 @@
+{
+ "id": 117977696,
+ "title": "Allen Matkins' \"It's a Perfect Storm for California Commercial Real Estate Market\" - January 28, 2015",
+ "poster": "/img/posters/117977696.jpg",
+ "texts": [
+ "Allen Matkins",
+ "IT'S A PERFECT STORM FOR CALIFORNIA COMMERCIAL REAL ESTATE MARKET",
+ "JANUARY 2015"
+ ],
+ "logos": [
+ "Allen Matkins"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/125349744.json b/data/frames/125349744.json
new file mode 100644
index 0000000..cb09a60
--- /dev/null
+++ b/data/frames/125349744.json
@@ -0,0 +1,11 @@
+{
+ "id": 125349744,
+ "title": "RENTV Columbia Square Hollywood CA April 2015",
+ "poster": "/img/posters/125349744.jpg",
+ "texts": [
+ "Columbia Square",
+ "Hollywood, CA",
+ "By Kilroy Realty Corporation"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/135939853.json b/data/frames/135939853.json
new file mode 100644
index 0000000..0687811
--- /dev/null
+++ b/data/frames/135939853.json
@@ -0,0 +1,11 @@
+{
+ "id": 135939853,
+ "title": "Allen Matkins/UCLA Anderson Forecast California Commercial Real Estate Survey: California Market Booming Again",
+ "poster": "/img/posters/135939853.jpg",
+ "texts": [
+ "Allen Matkins",
+ "OFFICE RENTAL RATES PREDICTED TO INCREASE WITH TECH INDUSTRY DEMAND",
+ "AUGUST 2015"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/142347178.json b/data/frames/142347178.json
new file mode 100644
index 0000000..759529d
--- /dev/null
+++ b/data/frames/142347178.json
@@ -0,0 +1,14 @@
+{
+ "id": 142347178,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 2",
+ "poster": "/img/posters/142347178.jpg",
+ "texts": [
+ "The BAD: Continued volatility. It will take time to full heal Oakland's reputation for rioting and inconsistent housing policies.",
+ "California",
+ "San Jose"
+ ],
+ "logos": [
+ "MARRIOTT",
+ "Oakland Marriott City Center"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/142347291.json b/data/frames/142347291.json
new file mode 100644
index 0000000..104aded
--- /dev/null
+++ b/data/frames/142347291.json
@@ -0,0 +1,20 @@
+{
+ "id": 142347291,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 3",
+ "poster": "/img/posters/142347291.jpg",
+ "texts": [
+ "OAKLAND",
+ "INCOME DISTRIBUTION",
+ "DOWNTOWN VS",
+ "OF OAKLAND",
+ "$0-$29,999",
+ "$30,000-$49,999",
+ "$50,000-$74,999",
+ "$75,000-$99,999",
+ "$100,000+",
+ "Source: spic.org"
+ ],
+ "logos": [
+ "MARRIOTT"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/142347515.json b/data/frames/142347515.json
new file mode 100644
index 0000000..f7d885d
--- /dev/null
+++ b/data/frames/142347515.json
@@ -0,0 +1,15 @@
+{
+ "id": 142347515,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 4",
+ "poster": "/img/posters/142347515.jpg",
+ "texts": [
+ "THE MORE DISTANT FUTURE",
+ "THE GOOD",
+ "factom",
+ "Failing to build quick enough to attract large tech tenants.",
+ "Delaying driverless cars."
+ ],
+ "logos": [
+ "Marriott"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/142348009.json b/data/frames/142348009.json
new file mode 100644
index 0000000..758f39d
--- /dev/null
+++ b/data/frames/142348009.json
@@ -0,0 +1,9 @@
+{
+ "id": 142348009,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 5",
+ "poster": "/img/posters/142348009.jpg",
+ "texts": [
+ "Oakland"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/142348532.json b/data/frames/142348532.json
new file mode 100644
index 0000000..e72b32b
--- /dev/null
+++ b/data/frames/142348532.json
@@ -0,0 +1,11 @@
+{
+ "id": 142348532,
+ "title": "RENTV Oakland State of the Market Sept 2015 Multifamily Panel part 1",
+ "poster": "/img/posters/142348532.jpg",
+ "texts": [
+ "The Market has we just don't"
+ ],
+ "logos": [
+ "Marriott"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/142348827.json b/data/frames/142348827.json
new file mode 100644
index 0000000..da44869
--- /dev/null
+++ b/data/frames/142348827.json
@@ -0,0 +1,16 @@
+{
+ "id": 142348827,
+ "title": "RENTV Oakland State of the Market Sept 2015 Multifamily Panel part 2",
+ "poster": "/img/posters/142348827.jpg",
+ "texts": [
+ "Let's pretend we're the Smart Money for a second.",
+ "What are we doing right now?",
+ "Kent Mitchell (Moderator)",
+ "VP of NAI Northern California",
+ "$+$=$$$",
+ "NAI Northern California"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/142350083.json b/data/frames/142350083.json
new file mode 100644
index 0000000..1eb514b
--- /dev/null
+++ b/data/frames/142350083.json
@@ -0,0 +1,13 @@
+{
+ "id": 142350083,
+ "title": "RENTV Oakland State of the Market Sept 2015 Multifamily Panel part 3",
+ "poster": "/img/posters/142350083.jpg",
+ "texts": [
+ "Sarosh Kumana",
+ "CEO, Pacific Investments"
+ ],
+ "logos": [
+ "RENTV",
+ "MARRIOTT"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/142351726.json b/data/frames/142351726.json
new file mode 100644
index 0000000..aacca35
--- /dev/null
+++ b/data/frames/142351726.json
@@ -0,0 +1,14 @@
+{
+ "id": 142351726,
+ "title": "RENTV Oakland State of the Market Sept 2015 Multifamily Panel part 4",
+ "poster": "/img/posters/142351726.jpg",
+ "texts": [
+ "The 2015",
+ "Oakland",
+ "State of the Market Conference"
+ ],
+ "logos": [
+ "RENTV",
+ "RECG"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/142353259.json b/data/frames/142353259.json
new file mode 100644
index 0000000..9fd6443
--- /dev/null
+++ b/data/frames/142353259.json
@@ -0,0 +1,12 @@
+{
+ "id": 142353259,
+ "title": "RENTV OAKLAND MULTIFAM PANEL PART 5",
+ "poster": "/img/posters/142353259.jpg",
+ "texts": [
+ "Dan Lieberman",
+ "President, Milestone Properties"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/143827823.json b/data/frames/143827823.json
new file mode 100644
index 0000000..7189fc2
--- /dev/null
+++ b/data/frames/143827823.json
@@ -0,0 +1,11 @@
+{
+ "id": 143827823,
+ "title": "RENTV OAKLAND KEYNOTE KILPATRICK PART 1",
+ "poster": "/img/posters/143827823.jpg",
+ "texts": [
+ "MONTHLY AVERAGE COMMITMENT RATE ON 30-YEAR FIXED MORTGAGES"
+ ],
+ "logos": [
+ "Marriott"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/144943180.json b/data/frames/144943180.json
new file mode 100644
index 0000000..3b400b5
--- /dev/null
+++ b/data/frames/144943180.json
@@ -0,0 +1,7 @@
+{
+ "id": 144943180,
+ "title": "RENTV Oakland State of the Market Conference Retail Panel Sept 25 2015",
+ "poster": "/img/posters/144943180.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/149786738.json b/data/frames/149786738.json
new file mode 100644
index 0000000..fb36327
--- /dev/null
+++ b/data/frames/149786738.json
@@ -0,0 +1,19 @@
+{
+ "id": 149786738,
+ "title": "RENTV One Sante Fe & Arts District 12.22.15",
+ "poster": "/img/posters/149786738.jpg",
+ "texts": [
+ "ONE SANTA FE",
+ "NOW LEASING",
+ "STUDIO & 1 BEDROOM APARTMENTS",
+ "455.256.8917",
+ "OSFLA.COM",
+ "RENTV",
+ "REAL ESTATE NEWS",
+ "TELEVISION",
+ "One Santa Fe & The Arts District"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/157877482.json b/data/frames/157877482.json
new file mode 100644
index 0000000..a5a61a9
--- /dev/null
+++ b/data/frames/157877482.json
@@ -0,0 +1,9 @@
+{
+ "id": 157877482,
+ "title": "RENTV Jan 28 2016 OC Hotel Market",
+ "poster": "/img/posters/157877482.jpg",
+ "texts": [
+ "Kimpton Shorebreak Hotel\nHuntington Beach, California\n$58,400,000 ($171,663 per room)"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/157877500.json b/data/frames/157877500.json
new file mode 100644
index 0000000..8a994f9
--- /dev/null
+++ b/data/frames/157877500.json
@@ -0,0 +1,10 @@
+{
+ "id": 157877500,
+ "title": "RENTV Jan 28 2016 OC Industrial Panel",
+ "poster": "/img/posters/157877500.jpg",
+ "texts": [
+ "Birch",
+ "MAXTORO"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/157877501.json b/data/frames/157877501.json
new file mode 100644
index 0000000..8420964
--- /dev/null
+++ b/data/frames/157877501.json
@@ -0,0 +1,13 @@
+{
+ "id": 157877501,
+ "title": "RENTV Jan 28 2016 OC MultiFamily Panel",
+ "poster": "/img/posters/157877501.jpg",
+ "texts": [
+ "Multifamily Panel",
+ "Jerome A. Fink, Managing Partner, The Bascom Group, LLC",
+ "Nicholas Dunlap, President, Property Management, Apartment Assoc. of Orange County",
+ "James Wohrman, President, FDC Management",
+ "Laurie Morfin, Senior Vice President, Bellwether Enterprise"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/157877502.json b/data/frames/157877502.json
new file mode 100644
index 0000000..c611c22
--- /dev/null
+++ b/data/frames/157877502.json
@@ -0,0 +1,10 @@
+{
+ "id": 157877502,
+ "title": "RENTV Jan 28 2016 OC Keynote Presentation",
+ "poster": "/img/posters/157877502.jpg",
+ "texts": [
+ "Keynote Presentation",
+ "Russ Parker, Managing Member, Parker Properties"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/157877503.json b/data/frames/157877503.json
new file mode 100644
index 0000000..c183236
--- /dev/null
+++ b/data/frames/157877503.json
@@ -0,0 +1,7 @@
+{
+ "id": 157877503,
+ "title": "RENTV Jan 28 2016 OC Office Panel",
+ "poster": "/img/posters/157877503.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/157877504.json b/data/frames/157877504.json
new file mode 100644
index 0000000..56b34a7
--- /dev/null
+++ b/data/frames/157877504.json
@@ -0,0 +1,9 @@
+{
+ "id": 157877504,
+ "title": "RENTV Jan 28 2016 OC Retail Panel",
+ "poster": "/img/posters/157877504.jpg",
+ "texts": [
+ "Retail Panel"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/162573796.json b/data/frames/162573796.json
new file mode 100644
index 0000000..219ae14
--- /dev/null
+++ b/data/frames/162573796.json
@@ -0,0 +1,7 @@
+{
+ "id": 162573796,
+ "title": "Mayor Sam Liccardo Keynote at RENTV San Jose/Silicon Valley Conference",
+ "poster": "/img/posters/162573796.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/162573927.json b/data/frames/162573927.json
new file mode 100644
index 0000000..1b19f95
--- /dev/null
+++ b/data/frames/162573927.json
@@ -0,0 +1,7 @@
+{
+ "id": 162573927,
+ "title": "RENTV's San Jose/Silicon Valley State of the Market Feb 2016 Office Panel",
+ "poster": "/img/posters/162573927.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/162574294.json b/data/frames/162574294.json
new file mode 100644
index 0000000..978417b
--- /dev/null
+++ b/data/frames/162574294.json
@@ -0,0 +1,7 @@
+{
+ "id": 162574294,
+ "title": "Capital Panel at RENTV's San Jose/Silicon Valley Feb 2016 State of the Market Conference",
+ "poster": "/img/posters/162574294.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/162574320.json b/data/frames/162574320.json
new file mode 100644
index 0000000..4a5dec0
--- /dev/null
+++ b/data/frames/162574320.json
@@ -0,0 +1,9 @@
+{
+ "id": 162574320,
+ "title": "Multifamily Panel at RENTV's Feb 2016 San Jose/Silicon Valley State of the Market",
+ "poster": "/img/posters/162574320.jpg",
+ "texts": [
+ "MONTHLY AVERAGE COMPARISON RATE ON 30 YEAR FIXED MORTGAGES"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/162574338.json b/data/frames/162574338.json
new file mode 100644
index 0000000..75f0456
--- /dev/null
+++ b/data/frames/162574338.json
@@ -0,0 +1,9 @@
+{
+ "id": 162574338,
+ "title": "RENTV 2.24.2016 San Jose/Silicon Valley R&D Industrial Panel at State of the Market Conference",
+ "poster": "/img/posters/162574338.jpg",
+ "texts": [
+ "San Jose"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/162574358.json b/data/frames/162574358.json
new file mode 100644
index 0000000..7ff2a35
--- /dev/null
+++ b/data/frames/162574358.json
@@ -0,0 +1,7 @@
+{
+ "id": 162574358,
+ "title": "RENTV's San Jose/Silicon Valley State of the Market Feb 2016 Retail Panel",
+ "poster": "/img/posters/162574358.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/162712456.json b/data/frames/162712456.json
new file mode 100644
index 0000000..70eb6d6
--- /dev/null
+++ b/data/frames/162712456.json
@@ -0,0 +1,17 @@
+{
+ "id": 162712456,
+ "title": "RENTV 3.17.2016 San Diego State of the Market Conf Multifamily Panel",
+ "poster": "/img/posters/162712456.jpg",
+ "texts": [
+ "EXIT",
+ "Multifamily Panel",
+ "Walker & Dunlop",
+ "NAI San Diego",
+ "ACI"
+ ],
+ "logos": [
+ "Walker & Dunlop",
+ "NAI San Diego",
+ "ACI"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/162712493.json b/data/frames/162712493.json
new file mode 100644
index 0000000..fa8647a
--- /dev/null
+++ b/data/frames/162712493.json
@@ -0,0 +1,10 @@
+{
+ "id": 162712493,
+ "title": "RENTV 3.17.2016 San Diego State of the Market Conf Office Panel",
+ "poster": "/img/posters/162712493.jpg",
+ "texts": [
+ "EXIT",
+ "GBC"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/162712517.json b/data/frames/162712517.json
new file mode 100644
index 0000000..9129506
--- /dev/null
+++ b/data/frames/162712517.json
@@ -0,0 +1,15 @@
+{
+ "id": 162712517,
+ "title": "RENTV 2016 San Diego R&D Industrial Panel",
+ "poster": "/img/posters/162712517.jpg",
+ "texts": [
+ "R&D / Industrial Panel",
+ "Kiddie Mathews",
+ "CBRE",
+ "CT Realty",
+ "Ward Malcomb"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/167990145.json b/data/frames/167990145.json
new file mode 100644
index 0000000..bcfcdb0
--- /dev/null
+++ b/data/frames/167990145.json
@@ -0,0 +1,9 @@
+{
+ "id": 167990145,
+ "title": "Arts District Panel at RENTV's April 2016 Downtown Los Angeles State of the Market Conference",
+ "poster": "/img/posters/167990145.jpg",
+ "texts": [
+ "Brookfield"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/167990176.json b/data/frames/167990176.json
new file mode 100644
index 0000000..956d286
--- /dev/null
+++ b/data/frames/167990176.json
@@ -0,0 +1,10 @@
+{
+ "id": 167990176,
+ "title": "Multifamily Panel at RENTV's April 2016 Downtown Los Angeles State of the Market Conference",
+ "poster": "/img/posters/167990176.jpg",
+ "texts": [
+ "DOWNTOWN LA",
+ "SOUTH PARK DISTRICT"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/167990218.json b/data/frames/167990218.json
new file mode 100644
index 0000000..e741c37
--- /dev/null
+++ b/data/frames/167990218.json
@@ -0,0 +1,9 @@
+{
+ "id": 167990218,
+ "title": "Office Panel at RENTV's April 2016 Downtown Los Angeles State of the Market Conference",
+ "poster": "/img/posters/167990218.jpg",
+ "texts": [
+ "Brookfield"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/167990238.json b/data/frames/167990238.json
new file mode 100644
index 0000000..1ade274
--- /dev/null
+++ b/data/frames/167990238.json
@@ -0,0 +1,20 @@
+{
+ "id": 167990238,
+ "title": "Retail Panel at RENTV's April 2016 Downtown LA State of the Market Conference",
+ "poster": "/img/posters/167990238.jpg",
+ "texts": [
+ "RETAIL PANEL",
+ "Kennedy Wilson",
+ "Avison Young",
+ "Brookfield",
+ "Lee Shapiro Kennedy Wilson",
+ "Demick Moore Avison Young",
+ "Rachael Zanatos Brookfield Property Partners",
+ "Hal Bastian HAL BASTIAN, INC"
+ ],
+ "logos": [
+ "Kennedy Wilson",
+ "Avison Young",
+ "Brookfield"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/167990250.json b/data/frames/167990250.json
new file mode 100644
index 0000000..3a8af41
--- /dev/null
+++ b/data/frames/167990250.json
@@ -0,0 +1,9 @@
+{
+ "id": 167990250,
+ "title": "Presentation by Chris Martin about Wilshire Grand at RENTV's 4.14.16 Downtown LA State of the Market Conference",
+ "poster": "/img/posters/167990250.jpg",
+ "texts": [
+ "the majesty of Half Dome"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/167990282.json b/data/frames/167990282.json
new file mode 100644
index 0000000..51da370
--- /dev/null
+++ b/data/frames/167990282.json
@@ -0,0 +1,11 @@
+{
+ "id": 167990282,
+ "title": "Keynote Discussion by Carol Schatz, Pres & CEO of DCBID at RENTV's April 2016 Downtown LA State of the Market Conference",
+ "poster": "/img/posters/167990282.jpg",
+ "texts": [
+ "Carol Schatz, President, CEO, Downtown Center, Business Improvement District"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/171347069.json b/data/frames/171347069.json
new file mode 100644
index 0000000..3e1e40b
--- /dev/null
+++ b/data/frames/171347069.json
@@ -0,0 +1,10 @@
+{
+ "id": 171347069,
+ "title": "Industrial Panel at RENTV's Inland Empire State of The Market Conference - May, 2016",
+ "poster": "/img/posters/171347069.jpg",
+ "texts": [
+ "EXIT",
+ "Every Line of Visible Text"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/172014042.json b/data/frames/172014042.json
new file mode 100644
index 0000000..6aecee3
--- /dev/null
+++ b/data/frames/172014042.json
@@ -0,0 +1,20 @@
+{
+ "id": 172014042,
+ "title": "Industrial Discussion at RENTV's Sacramento State of the Market Conference - May, 2016",
+ "poster": "/img/posters/172014042.jpg",
+ "texts": [
+ "RENTV",
+ "R&D / Industrial Panel",
+ "KENNEDY WILSON",
+ "Coastal Partners, LLC",
+ "John Troughton",
+ "Kennedy Wilson",
+ "Brett Baumgarten",
+ "Coastal Partners, LLC"
+ ],
+ "logos": [
+ "RENTV",
+ "KENNEDY WILSON",
+ "Coastal Partners, LLC"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/172014125.json b/data/frames/172014125.json
new file mode 100644
index 0000000..7310a6a
--- /dev/null
+++ b/data/frames/172014125.json
@@ -0,0 +1,15 @@
+{
+ "id": 172014125,
+ "title": "The new Sacramento Airport hotel - RENTV's Sacramento State of the Market Conference - May, 2016",
+ "poster": "/img/posters/172014125.jpg",
+ "texts": [
+ "RENTV",
+ "Keynote Presentation",
+ "Bob Sonnenblick Principal",
+ "Sonnenblick Development",
+ "Hyatt Hotel/Sacramento Airport"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/172014837.json b/data/frames/172014837.json
new file mode 100644
index 0000000..d263ca9
--- /dev/null
+++ b/data/frames/172014837.json
@@ -0,0 +1,7 @@
+{
+ "id": 172014837,
+ "title": "Office Panel at RENTV's Sacramento State of the Market Conference - May, 2016",
+ "poster": "/img/posters/172014837.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/188261706.json b/data/frames/188261706.json
new file mode 100644
index 0000000..a337450
--- /dev/null
+++ b/data/frames/188261706.json
@@ -0,0 +1,7 @@
+{
+ "id": 188261706,
+ "title": "Westside Hotel Development and One Beverly Hills",
+ "poster": "/img/posters/188261706.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/188271441.json b/data/frames/188271441.json
new file mode 100644
index 0000000..6668f90
--- /dev/null
+++ b/data/frames/188271441.json
@@ -0,0 +1,18 @@
+{
+ "id": 188271441,
+ "title": "Retail Panel at RENTV's Westside of LA State of the Market Conference - Aug, 2016",
+ "poster": "/img/posters/188271441.jpg",
+ "texts": [
+ "Bob Champion",
+ "President, Champion Real Estate Company",
+ "Alex Kozakov",
+ "Senior VP CBRE, Capital Markets",
+ "Eddie Prosser",
+ "Thorofare Capital",
+ "Jim Dillavou",
+ "Principal, Paragon Commercial Group"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/208460446.json b/data/frames/208460446.json
new file mode 100644
index 0000000..6892a9f
--- /dev/null
+++ b/data/frames/208460446.json
@@ -0,0 +1,13 @@
+{
+ "id": 208460446,
+ "title": "Industrial Panel at RENTV's San Jose/SIlicon Valley State of the Market Conference - Feb 2017",
+ "poster": "/img/posters/208460446.jpg",
+ "texts": [
+ "INDUSTRIAL PANEL",
+ "SAN JOSE / SILICON VALLEY STATE OF THE MARKET CONFERENCE",
+ "FEBRUARY 22, 2017"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/227217030.json b/data/frames/227217030.json
new file mode 100644
index 0000000..45e44cd
--- /dev/null
+++ b/data/frames/227217030.json
@@ -0,0 +1,18 @@
+{
+ "id": 227217030,
+ "title": "Metropolis Los Angeles, Presentation by Ryan Aubry. Director of Development, Greenland USA",
+ "poster": "/img/posters/227217030.jpg",
+ "texts": [
+ "RENTV",
+ "GREENLAND USA",
+ "Ryan Aubry",
+ "Greenland USA",
+ "METROPOLIS",
+ "LOS ANGELES"
+ ],
+ "logos": [
+ "RENTV",
+ "GREENLAND USA",
+ "METROPOLIS"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/227224358.json b/data/frames/227224358.json
new file mode 100644
index 0000000..ed56dfd
--- /dev/null
+++ b/data/frames/227224358.json
@@ -0,0 +1,15 @@
+{
+ "id": 227224358,
+ "title": "Office Panel at RENTV's Downtown Los Angeles State of the Market Conference - April 2017",
+ "poster": "/img/posters/227224358.jpg",
+ "texts": [
+ "OFFICE PANEL",
+ "Steve Marcussen Executive Director Cushman & Wakefield",
+ "Kent Handleman Senior VP, Brokerage Lincoln Property Company",
+ "Christopher Rising Founder and President Rising Realty Partners",
+ "James Malone VP, Leasing - US Office Division Brookfield Property Partners"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/228295912.json b/data/frames/228295912.json
new file mode 100644
index 0000000..8892f7d
--- /dev/null
+++ b/data/frames/228295912.json
@@ -0,0 +1,22 @@
+{
+ "id": 228295912,
+ "title": "Yat-Pang Au, Founder & CEO of Veritas Investments - Keynote Address at RENTV's DT San Francisco Conference 7/20/17",
+ "poster": "/img/posters/228295912.jpg",
+ "texts": [
+ "RENTV",
+ "REAL ESTATE NEWS",
+ "TELEVISION",
+ "KEYNOTE PRESENTATION",
+ "VERITAS",
+ "INVESTMENTS",
+ "Yat-Pang Au",
+ "Chief Executive Officer",
+ "Veritas Investments",
+ "Multi-family Demand for Infill, Existing Properties:",
+ "Where Today's Mobile Workforce Wants to Live"
+ ],
+ "logos": [
+ "RENTV",
+ "VERITAS INVESTMENTS"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/232088787.json b/data/frames/232088787.json
new file mode 100644
index 0000000..b4b2a56
--- /dev/null
+++ b/data/frames/232088787.json
@@ -0,0 +1,9 @@
+{
+ "id": 232088787,
+ "title": "Introduction to Pacific Castle 1 Q 2005",
+ "poster": "/img/posters/232088787.jpg",
+ "texts": [
+ "Trabuco Hills Center\nPurchased for $15.2 mil"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/242491490.json b/data/frames/242491490.json
new file mode 100644
index 0000000..9a07036
--- /dev/null
+++ b/data/frames/242491490.json
@@ -0,0 +1,16 @@
+{
+ "id": 242491490,
+ "title": "Brandon Birtcher, CEO of Birtcher Development, LLC, Keynote Address at RENTV's South Bay/Long Beach Conference 10.18.17",
+ "poster": "/img/posters/242491490.jpg",
+ "texts": [
+ "Keynote Address",
+ "BIRTCHER DEVELOPMENT",
+ "LEGACY REAL ESTATE",
+ "Brandon Birtcher",
+ "Birtcher Development LLC",
+ "Conventional Thinking May Be Irrelevant"
+ ],
+ "logos": [
+ "Birtcher Development LLC"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/308597317.json b/data/frames/308597317.json
new file mode 100644
index 0000000..11fa31f
--- /dev/null
+++ b/data/frames/308597317.json
@@ -0,0 +1,11 @@
+{
+ "id": 308597317,
+ "title": "Introducing The Center at Needham Ranch",
+ "poster": "/img/posters/308597317.jpg",
+ "texts": [
+ "THE CENTER at Needham Ranch"
+ ],
+ "logos": [
+ "C"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/31239971.json b/data/frames/31239971.json
new file mode 100644
index 0000000..10791c5
--- /dev/null
+++ b/data/frames/31239971.json
@@ -0,0 +1,11 @@
+{
+ "id": 31239971,
+ "title": "The LandMarc Apartments by SARES*REGIS",
+ "poster": "/img/posters/31239971.jpg",
+ "texts": [
+ "WOODLAND HILLS APARTMENTS",
+ "SABRE REDIS GROUP",
+ "CONCEPTUAL LANDSCAPE PLAN"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/315327378.json b/data/frames/315327378.json
new file mode 100644
index 0000000..012b861
--- /dev/null
+++ b/data/frames/315327378.json
@@ -0,0 +1,12 @@
+{
+ "id": 315327378,
+ "title": "Kilroy Realty's Oyster Point - An Aerial Introduction",
+ "poster": "/img/posters/315327378.jpg",
+ "texts": [
+ "KILROY",
+ "OYSTER POINT"
+ ],
+ "logos": [
+ "\u00b0"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/316709134.json b/data/frames/316709134.json
new file mode 100644
index 0000000..45f1e59
--- /dev/null
+++ b/data/frames/316709134.json
@@ -0,0 +1,9 @@
+{
+ "id": 316709134,
+ "title": "A Glimpse of One Paseo in San Diego",
+ "poster": "/img/posters/316709134.jpg",
+ "texts": [
+ "Come one. Come all."
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/32191299.json b/data/frames/32191299.json
new file mode 100644
index 0000000..19a1183
--- /dev/null
+++ b/data/frames/32191299.json
@@ -0,0 +1,10 @@
+{
+ "id": 32191299,
+ "title": "Major Multifamily Sales in Central Orange County 11.11",
+ "poster": "/img/posters/32191299.jpg",
+ "texts": [
+ "Price: $31 Million",
+ "$160k per Unit"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/33583429.json b/data/frames/33583429.json
new file mode 100644
index 0000000..348ed2b
--- /dev/null
+++ b/data/frames/33583429.json
@@ -0,0 +1,9 @@
+{
+ "id": 33583429,
+ "title": "The Purchase and Plans for 1111 Sunset Boulevard",
+ "poster": "/img/posters/33583429.jpg",
+ "texts": [
+ "Buyer Linear City"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/35868287.json b/data/frames/35868287.json
new file mode 100644
index 0000000..5cc7b49
--- /dev/null
+++ b/data/frames/35868287.json
@@ -0,0 +1,10 @@
+{
+ "id": 35868287,
+ "title": "The Development and Sale of West 27th Place",
+ "poster": "/img/posters/35868287.jpg",
+ "texts": [
+ "West 27th Place",
+ "530 W. 27th Street"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/38894517.json b/data/frames/38894517.json
new file mode 100644
index 0000000..96cd640
--- /dev/null
+++ b/data/frames/38894517.json
@@ -0,0 +1,9 @@
+{
+ "id": 38894517,
+ "title": "Major Multifamily Sales Activity in NoHo and Glendale",
+ "poster": "/img/posters/38894517.jpg",
+ "texts": [
+ "NoHo 14"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/39610422.json b/data/frames/39610422.json
new file mode 100644
index 0000000..4671877
--- /dev/null
+++ b/data/frames/39610422.json
@@ -0,0 +1,10 @@
+{
+ "id": 39610422,
+ "title": "RENTV's Roving Reporter at RealShare 2012",
+ "poster": "/img/posters/39610422.jpg",
+ "texts": [
+ "RealShare 2012",
+ "March 22, 2012"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/42140576.json b/data/frames/42140576.json
new file mode 100644
index 0000000..b7f4dd1
--- /dev/null
+++ b/data/frames/42140576.json
@@ -0,0 +1,9 @@
+{
+ "id": 42140576,
+ "title": "The Purchase of the Historic Brockman Lofts Building",
+ "poster": "/img/posters/42140576.jpg",
+ "texts": [
+ "The Brockman Lofts"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/429079440.json b/data/frames/429079440.json
new file mode 100644
index 0000000..b992e8a
--- /dev/null
+++ b/data/frames/429079440.json
@@ -0,0 +1,9 @@
+{
+ "id": 429079440,
+ "title": "CapitalRiversCovidFinal",
+ "poster": "/img/posters/429079440.jpg",
+ "texts": [
+ "This community will come back stronger and we're here to help navigate you through."
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/434219208.json b/data/frames/434219208.json
new file mode 100644
index 0000000..cae2efe
--- /dev/null
+++ b/data/frames/434219208.json
@@ -0,0 +1,13 @@
+{
+ "id": 434219208,
+ "title": "Commercial Real Estate Inspectors Video 1 6 30 20",
+ "poster": "/img/posters/434219208.jpg",
+ "texts": [
+ "1 2 3 4",
+ "5 6 7 8 9 10 11",
+ "12 13 14 15 16 17 18",
+ "19 20 21 22 23 24 25",
+ "26 27 28 29 30 31"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/44468806.json b/data/frames/44468806.json
new file mode 100644
index 0000000..75f38ea
--- /dev/null
+++ b/data/frames/44468806.json
@@ -0,0 +1,9 @@
+{
+ "id": 44468806,
+ "title": "RENTV Takes You To The Village at Santa Monica June 2012",
+ "poster": "/img/posters/44468806.jpg",
+ "texts": [
+ "The Village at Santa Monica"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/46769758.json b/data/frames/46769758.json
new file mode 100644
index 0000000..4dc56e2
--- /dev/null
+++ b/data/frames/46769758.json
@@ -0,0 +1,9 @@
+{
+ "id": 46769758,
+ "title": "J.H. Snyder's The Vermont",
+ "poster": "/img/posters/46769758.jpg",
+ "texts": [
+ "The Vermont"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/48347303.json b/data/frames/48347303.json
new file mode 100644
index 0000000..9911e11
--- /dev/null
+++ b/data/frames/48347303.json
@@ -0,0 +1,9 @@
+{
+ "id": 48347303,
+ "title": "Wood Partners' LA Projects",
+ "poster": "/img/posters/48347303.jpg",
+ "texts": [
+ "New Project: 22-stories\n290 units"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/493420423.json b/data/frames/493420423.json
new file mode 100644
index 0000000..9e552cd
--- /dev/null
+++ b/data/frames/493420423.json
@@ -0,0 +1,14 @@
+{
+ "id": 493420423,
+ "title": "F & F Income Properties - Your San Diego Family Mutifamily Owner",
+ "poster": "/img/posters/493420423.jpg",
+ "texts": [
+ "F&F INCOME PROPERTIES, LLC",
+ "Call Dan at (858) 342-8462",
+ "Dan@FandFInc.com",
+ "4060 30th St. | San Diego, CA 92104"
+ ],
+ "logos": [
+ "F&F INCOME PROPERTIES, LLC"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/503234116.json b/data/frames/503234116.json
new file mode 100644
index 0000000..4b5f53a
--- /dev/null
+++ b/data/frames/503234116.json
@@ -0,0 +1,11 @@
+{
+ "id": 503234116,
+ "title": "GANTRY Video_VO",
+ "poster": "/img/posters/503234116.jpg",
+ "texts": [
+ "Gantry"
+ ],
+ "logos": [
+ "Gantry"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/50591120.json b/data/frames/50591120.json
new file mode 100644
index 0000000..848d461
--- /dev/null
+++ b/data/frames/50591120.json
@@ -0,0 +1,9 @@
+{
+ "id": 50591120,
+ "title": "The $165 Million Shores Project in Marina del Rey",
+ "poster": "/img/posters/50591120.jpg",
+ "texts": [
+ "Shores"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/507211620.json b/data/frames/507211620.json
new file mode 100644
index 0000000..f6bc144
--- /dev/null
+++ b/data/frames/507211620.json
@@ -0,0 +1,9 @@
+{
+ "id": 507211620,
+ "title": "SYNERGY VIDEO",
+ "poster": "/img/posters/507211620.jpg",
+ "texts": [
+ "Leasing commercial space is a big expense for your business..."
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/52820750.json b/data/frames/52820750.json
new file mode 100644
index 0000000..d8ddd85
--- /dev/null
+++ b/data/frames/52820750.json
@@ -0,0 +1,9 @@
+{
+ "id": 52820750,
+ "title": "MG buys over 1000 units in Lancaster, CA",
+ "poster": "/img/posters/52820750.jpg",
+ "texts": [
+ "Lancaster, CA\nLos Angeles County"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/55380262.json b/data/frames/55380262.json
new file mode 100644
index 0000000..5dc7b17
--- /dev/null
+++ b/data/frames/55380262.json
@@ -0,0 +1,7 @@
+{
+ "id": 55380262,
+ "title": "The Marke In Santa Ana and The Carlyle@Colton in Irvine",
+ "poster": "/img/posters/55380262.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/565693580.json b/data/frames/565693580.json
new file mode 100644
index 0000000..3bea8ba
--- /dev/null
+++ b/data/frames/565693580.json
@@ -0,0 +1,7 @@
+{
+ "id": 565693580,
+ "title": "SMART CITY",
+ "poster": "/img/posters/565693580.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/56573116.json b/data/frames/56573116.json
new file mode 100644
index 0000000..781c929
--- /dev/null
+++ b/data/frames/56573116.json
@@ -0,0 +1,9 @@
+{
+ "id": 56573116,
+ "title": "The Wilshire La Brea Project",
+ "poster": "/img/posters/56573116.jpg",
+ "texts": [
+ "Wilshire La Brea"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/65258106.json b/data/frames/65258106.json
new file mode 100644
index 0000000..6293366
--- /dev/null
+++ b/data/frames/65258106.json
@@ -0,0 +1,9 @@
+{
+ "id": 65258106,
+ "title": "The Runway at Playa Vista Development",
+ "poster": "/img/posters/65258106.jpg",
+ "texts": [
+ "Runway"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/69208165.json b/data/frames/69208165.json
new file mode 100644
index 0000000..fef21cb
--- /dev/null
+++ b/data/frames/69208165.json
@@ -0,0 +1,9 @@
+{
+ "id": 69208165,
+ "title": "Major Inland Empire Apartment Sales",
+ "poster": "/img/posters/69208165.jpg",
+ "texts": [
+ "Major Inland Empire Apartment Sales"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/71974003.json b/data/frames/71974003.json
new file mode 100644
index 0000000..a8c070c
--- /dev/null
+++ b/data/frames/71974003.json
@@ -0,0 +1,9 @@
+{
+ "id": 71974003,
+ "title": "RENTV Focus on Multifamily - Related's 225 S. Grand Ave. LA",
+ "poster": "/img/posters/71974003.jpg",
+ "texts": [
+ "225 S. Grand Avenue"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/721184140.json b/data/frames/721184140.json
new file mode 100644
index 0000000..db8a4b6
--- /dev/null
+++ b/data/frames/721184140.json
@@ -0,0 +1,7 @@
+{
+ "id": 721184140,
+ "title": "CLIC Vlog w Steve Bloom.mov",
+ "poster": "/img/posters/721184140.jpg",
+ "texts": [],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/739081927.json b/data/frames/739081927.json
new file mode 100644
index 0000000..d4fc7da
--- /dev/null
+++ b/data/frames/739081927.json
@@ -0,0 +1,16 @@
+{
+ "id": 739081927,
+ "title": "RENTV ORANGE COUNTY MULTIFAMILY PANEL July 26, 2022",
+ "poster": "/img/posters/739081927.jpg",
+ "texts": [
+ "RENTV",
+ "Real Estate News & Media",
+ "Orange County",
+ "State of the Market",
+ "The Multifamily Panel",
+ "July 26, 2022"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/763442741.json b/data/frames/763442741.json
new file mode 100644
index 0000000..0b1d6bb
--- /dev/null
+++ b/data/frames/763442741.json
@@ -0,0 +1,15 @@
+{
+ "id": 763442741,
+ "title": "RENTV INDUSTRIAL OCT 19 2022.mp4",
+ "poster": "/img/posters/763442741.jpg",
+ "texts": [
+ "RENTV",
+ "Real Estate News & Media",
+ "Greater Los Angeles State of the Market",
+ "The Industrial Panel",
+ "October 19, 2022"
+ ],
+ "logos": [
+ "RENTV"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/763447786.json b/data/frames/763447786.json
new file mode 100644
index 0000000..4705dad
--- /dev/null
+++ b/data/frames/763447786.json
@@ -0,0 +1,14 @@
+{
+ "id": 763447786,
+ "title": "RENTV FINANCE OCT 19 2022.mp4",
+ "poster": "/img/posters/763447786.jpg",
+ "texts": [
+ "RENTV Real Estate News & Media",
+ "Greater Los Angeles State of the Market",
+ "The Finance Panel",
+ "October 19, 2022"
+ ],
+ "logos": [
+ "RENTV Real Estate News & Media"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/77077219.json b/data/frames/77077219.json
new file mode 100644
index 0000000..5734c41
--- /dev/null
+++ b/data/frames/77077219.json
@@ -0,0 +1,9 @@
+{
+ "id": 77077219,
+ "title": "RENTV News Program - The New Newport Center high-rises",
+ "poster": "/img/posters/77077219.jpg",
+ "texts": [
+ "520 Newport Center Drive"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/771348410.json b/data/frames/771348410.json
new file mode 100644
index 0000000..5d68275
--- /dev/null
+++ b/data/frames/771348410.json
@@ -0,0 +1,17 @@
+{
+ "id": 771348410,
+ "title": "RENTV CRE Talk Episode #1 - Bill Shopoff",
+ "poster": "/img/posters/771348410.jpg",
+ "texts": [
+ "Commercial Real Estate Talk",
+ "with Steve & Arnie",
+ "Episode 1:",
+ "Bill Shopoff",
+ "President & CEO",
+ "Shopoff Realty & Investment"
+ ],
+ "logos": [
+ "RENTV",
+ "All Star GROUP INC."
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/795355693.json b/data/frames/795355693.json
new file mode 100644
index 0000000..b902f45
--- /dev/null
+++ b/data/frames/795355693.json
@@ -0,0 +1,18 @@
+{
+ "id": 795355693,
+ "title": "RENTV CRE Talk Episode #2 - Sandy Sigal",
+ "poster": "/img/posters/795355693.jpg",
+ "texts": [
+ "CRE TALK",
+ "Commercial Real Estate Talk with Steve & Arnie",
+ "Today's Guest:",
+ "Sandy Sigal",
+ "President & CEO",
+ "NewMark Merrill Companies",
+ "January 20, 2023"
+ ],
+ "logos": [
+ "RENTV Real Estate News & Media",
+ "All Star GROUP INC."
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/811518445.json b/data/frames/811518445.json
new file mode 100644
index 0000000..62e0020
--- /dev/null
+++ b/data/frames/811518445.json
@@ -0,0 +1,25 @@
+{
+ "id": 811518445,
+ "title": "RENTV ORANGE COUNTY OFFICE PANEL MARCH 16, 2023",
+ "poster": "/img/posters/811518445.jpg",
+ "texts": [
+ "RENTV",
+ "Real Estate News & Media",
+ "Orange County State of the Market The Office Panel",
+ "Irvine Company Office Properties",
+ "Mike Santley Irvine Company Office Properties",
+ "Savills",
+ "Steve Card Savills US",
+ "Granite",
+ "Jason Purvis Granite Properties",
+ "The Kelemen Company",
+ "Tibor Kelemen The Kelemen Company",
+ "March 16, 2023"
+ ],
+ "logos": [
+ "Irvine Company Office Properties",
+ "Savills",
+ "Granite",
+ "The Kelemen Company"
+ ]
+}
\ No newline at end of file
diff --git a/data/frames/82824854.json b/data/frames/82824854.json
new file mode 100644
index 0000000..efd4c50
--- /dev/null
+++ b/data/frames/82824854.json
@@ -0,0 +1,10 @@
+{
+ "id": 82824854,
+ "title": "The Wilshire Grand project in Downtown Los Angeles",
+ "poster": "/img/posters/82824854.jpg",
+ "texts": [
+ "The Wilshire Grand Project",
+ "Downtown Los Angeles"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/85237519.json b/data/frames/85237519.json
new file mode 100644
index 0000000..60ea422
--- /dev/null
+++ b/data/frames/85237519.json
@@ -0,0 +1,10 @@
+{
+ "id": 85237519,
+ "title": "Wilshire Grand Development, Los Angeles -- 2014",
+ "poster": "/img/posters/85237519.jpg",
+ "texts": [
+ "The Wilshire Grand Project",
+ "Downtown Los Angeles"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/90807750.json b/data/frames/90807750.json
new file mode 100644
index 0000000..f4fec6d
--- /dev/null
+++ b/data/frames/90807750.json
@@ -0,0 +1,12 @@
+{
+ "id": 90807750,
+ "title": "RENTV Revisits Two San Fernando Valley Apartment Developments",
+ "poster": "/img/posters/90807750.jpg",
+ "texts": [
+ "RENTV",
+ "Revisits",
+ "San Fernando Valley",
+ "Apartment Developments"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/frames/95064851.json b/data/frames/95064851.json
new file mode 100644
index 0000000..51b57d3
--- /dev/null
+++ b/data/frames/95064851.json
@@ -0,0 +1,9 @@
+{
+ "id": 95064851,
+ "title": "Major Recent San Diego Office Sales 5.14",
+ "poster": "/img/posters/95064851.jpg",
+ "texts": [
+ "Major Recent Office Sales In San Diego"
+ ],
+ "logos": []
+}
\ No newline at end of file
diff --git a/data/guests.json b/data/guests.json
index 86341d5..9fc2943 100644
--- a/data/guests.json
+++ b/data/guests.json
@@ -1,5 +1,5 @@
{
- "generated_at": "2026-08-07 08:55:23",
+ "generated_at": "2026-08-07 09:10:29",
"count": 42,
"guests": [
{
@@ -22,7 +22,8 @@
"episode_title": "CRE Talk Episode #22 with Bill Shopoff",
"url": "https://vimeo.com/1200839794",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Daniel Weiss",
@@ -43,7 +44,8 @@
"episode_title": "CRE Talk Episode #21 with Daniel Weiss",
"url": "https://vimeo.com/1199114985",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Colton Sudberry",
@@ -64,7 +66,8 @@
"episode_title": "CRE Talk Episode #20 with Colton Sudberry",
"url": "https://vimeo.com/1178561985",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Chris Tolo",
@@ -129,7 +132,8 @@
"episode_title": "RENTV CRE Talk Episode #17 Chris Rising",
"url": "https://vimeo.com/1106281388",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Alex Zikakis",
@@ -150,7 +154,8 @@
"episode_title": "RENTV CRE Talk Episode #16 - Alex Zikakis",
"url": "https://vimeo.com/1079649123",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Mark Brutten",
@@ -194,7 +199,8 @@
"episode_title": "RENTV CRE Talk Episode #14 - John McNellis",
"url": "https://vimeo.com/1056513923",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Ethan Penner",
@@ -215,7 +221,8 @@
"episode_title": "RENTV CRE Talk Episode #13 - Ethan Penner",
"url": "https://vimeo.com/1039101858",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Kaitlin Arden Murphy",
@@ -236,7 +243,8 @@
"episode_title": "RENTV CRE Talk Episode #12 - Kaitlin Arduino",
"url": "https://vimeo.com/1012976399",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Michael G Maker",
@@ -279,7 +287,8 @@
"episode_title": "RENTV CRE Talk Episode #10 Henry Manoucheri",
"url": "https://vimeo.com/931863337",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Eddie Ring",
@@ -300,7 +309,8 @@
"episode_title": "RENTV CRE Talk Episode #9 Eddie Ring",
"url": "https://vimeo.com/911412212",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Irwin Busey",
@@ -322,7 +332,8 @@
"episode_title": "RENTV CRE Talk Episode #8 Erwin Bucy",
"url": "https://vimeo.com/906276616",
"is_panel": false,
- "verified": false
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Chuck Hershson",
@@ -343,7 +354,8 @@
"episode_title": "RENTV CRE Talk Episode #7 Chuck Hershson",
"url": "https://vimeo.com/886025667",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Barry Seitz",
@@ -548,7 +560,8 @@
"episode_title": "RENTV CRE Talk Episode #5 Barry DiRaimondo",
"url": "https://vimeo.com/852462696",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "John McNellis",
@@ -569,7 +582,8 @@
"episode_title": "RENTV CRE Talk Episode #4 John McNellis",
"url": "https://vimeo.com/831673533",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Clayton McFadden",
@@ -752,7 +766,8 @@
"episode_title": "RENTV CRE Talk Episode #3 - Michael Van Every",
"url": "https://vimeo.com/812981342",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Sandy Siegel",
@@ -773,7 +788,8 @@
"episode_title": "RENTV CRE Talk Episode #2 - Sandy Sigal",
"url": "https://vimeo.com/795355693",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Bill Shopoff",
@@ -794,7 +810,8 @@
"episode_title": "RENTV CRE Talk Episode #1 - Bill Shopoff",
"url": "https://vimeo.com/771348410",
"is_panel": false,
- "verified": true
+ "verified": true,
+ "poster_confirmed": true
},
{
"name": "Jerry Fink",
diff --git a/data/synopses.json b/data/synopses.json
new file mode 100644
index 0000000..d3ec609
--- /dev/null
+++ b/data/synopses.json
@@ -0,0 +1,264 @@
+{
+ "1200839794": {
+ "synopsis": "This episode of 'Commercial Real Estate Talk' features Bill Shopoff, CEO of Shopoff Realty Investments, discussing his ongoing and upcoming projects in retail and residential development. The show covers recent developments like the de-retailing efforts at Bolsa Pacific mall in Westminster, California, where Target is relocating to a new building, and plans for 60-80,000 square feet of experiential retail spaces. Additionally, Shopoff discusses his large-scale residential project with about 2,250 units, including four rental buildings (three market rate and one affordable) and 855 for-sale units in Westminster.",
+ "highlights": [
+ "Bill Shopoff discussed the de-retailing efforts at Bolsa Pacific mall, where Target is relocating to a new building.",
+ "Plans for 60-80,000 square feet of experiential retail spaces are underway, focusing on local and entrepreneurial businesses.",
+ "Shopoff's residential project in Westminster includes about 2,250 units across four buildings (three market rate and one affordable) with 855 for-sale units."
+ ]
+ },
+ "1199114985": {
+ "synopsis": "The episode featured Daniel Weiss from Strauss Investments discussing his recent office property acquisitions and insights on the commercial real estate market. Co-hosts Steve and Arnie also introduced sponsors including Rockefeller Group, Provident Savings Bank, Chase Partners, and Fidelity Mortgage Lenders.",
+ "highlights": [
+ "Daniel Weiss shared experiences from recent office property deals, emphasizing the complexity of selling rooftop cell sites.",
+ "The discussion covered strategies for managing small, management-intensive properties in less-than-ideal markets.",
+ "Sponsors discussed included Rockefeller Group's focus on quality development and value creation, Provident Savings Bank\u2019s lending services, Chase Partners' industrial property investments, and Fidelity Mortgage Lenders\u2019 unique commercial real estate financing options."
+ ]
+ },
+ "1178561985": {
+ "synopsis": "This episode of 'Commercial Real Estate Talk with Steven Arnie' features Colton Sudberry from Sudberry, a prominent player in San Diego County's commercial real estate development industry for over four decades. The conversation covers the company\u2019s portfolio, recent developments, and future plans, including potential shifts towards retail and residential projects.",
+ "highlights": [
+ "Sudberry has been active in San Diego County's commercial real estate market since the 1970s, primarily focusing on retail development but expanding into mixed-use projects with a focus on retail and residential components.",
+ "The company is currently involved in a significant redevelopment project that includes converting an industrial site to a mixed-use property with potential for office, hotel, and residential spaces.",
+ "Future plans may involve a shift away from large-scale office developments due to current market conditions, instead focusing on more flexible uses like retail and residential.",
+ "The episode also discusses the role of sponsors in supporting commercial real estate events and conferences, highlighting partners such as Rockefeller Group, Provident Savings Bank, Chase Partners, and Fidelity Mortgage Lenders."
+ ]
+ },
+ "1138312637": {
+ "synopsis": "The episode covers LA Development\u2019s multifamily and self-storage business operations, including recent projects and strategies for attracting high-net-worth individual investors. Guest Chris Tolo discusses the company's evolution from build-and-sell to holding properties longer with institutional partners.",
+ "highlights": [
+ "LA Development operates in multifamily and self-storage sectors, with a focus on Southern California markets.",
+ "The company has completed over 3000 units across various locations including Burbank, Santa Monica, and Marina Del Rey.",
+ "Strategies include attracting high-net-worth individual investors for certain deals to extend holding periods beyond traditional build-and-sell models.",
+ "LA Development is expanding its investor base by hiring a specialist to procure family office capital."
+ ]
+ },
+ "1115700624": {
+ "synopsis": "This episode of Commercial Real Estate Talk features Terry Tallen from Talen Capital Group, discussing his company\u2019s focus on mixed-use retail and residential investments primarily in the West Coast with some presence in the Midwest. The conversation covers various real estate projects, including successful exits and ongoing developments.",
+ "highlights": [
+ "Talen Capital Group is a vertically integrated investment and development organization focusing mainly on retail properties across the West Coast and parts of the Midwest.",
+ "The company has managed several large-scale projects, such as a 60 million dollar property in California, where they increased GLA by about 20% and exited after capital partners wanted to exit.",
+ "Talen Capital Group also engages in smaller deals like repurposing vacant bank branches into productive spaces, showcasing their ability to find unique solutions for underutilized properties."
+ ]
+ },
+ "1106281388": {
+ "synopsis": "This episode of Commercial Real Estate Talk features Christopher Rising, co-founder and CEO of Rising Realty Partners, discussing the company's evolution over 12 years, strategies for deal sourcing, and focus on IRR and cash flow. The panel also covers sponsor updates from Chase Partners and Fidelity Mortgage Lenders.",
+ "highlights": [
+ "Rising Realty Partners has been in business for 12 years, with a current portfolio of approximately 6 million square feet.",
+ "The company uses technology to source deals through cold emails followed by direct calls to landlords.",
+ "IRR is emphasized as the primary metric for evaluating deals, but cash flow remains the ultimate focus.",
+ "Chase Partners is sponsoring the podcast and focusing on underperforming industrial and retail properties with non-performing debt.",
+ "Fidelity Mortgage Lenders specializes in commercial real estate lending with unique terms and fast funding."
+ ]
+ },
+ "1079649123": {
+ "synopsis": "The episode features Alex Zikakis, President of Capstone Advisors, discussing his company's portfolio and recent transactions in commercial real estate. The conversation also covers Capstone\u2019s land development strategy and their involvement in various events organized by Rent TV.",
+ "highlights": [
+ "Capstone Advisors has a diverse portfolio primarily focused on shopping centers (70%) with additional investments in multi-tenant flex industrial buildings and office properties.",
+ "The company operates across Southern California, Phoenix, Virginia, and recently entered Salt Lake City.",
+ "Recent acquisitions include value-add and core-plus deals, demonstrating Capstone's opportunistic approach to investment.",
+ "Capstone is self-contained with few external investors, managing its own capital for transactions.",
+ "Alex Zikakis emphasizes the importance of networking through events organized by Rent TV in driving business opportunities."
+ ]
+ },
+ "1059913595": {
+ "synopsis": "The episode features an interview with Marc Brutten from Bruton Global, discussing his company's portfolio and the launch of Broughton Private Access. The conversation covers topics such as private investments, exit strategies for assets, and the company\u2019s focus on industrial real estate in Europe.",
+ "highlights": [
+ "Marc Brutten founded Westcorp, a private industrial REIT headquartered in San Diego, California, in the late nineties.",
+ "Broughton Private Access allows direct investors to co-invest with Brutton Global, sharing equity and focusing on tax-efficient asset management over five to ten years.",
+ "The company\u2019s investment strategy is primarily focused on individual or portfolio-based capitalization rather than fund formation, with decisions on exiting deals based on the business plan's success.",
+ "Brutten discusses his company's presence in Europe through Westco Europe, emphasizing a culture that aligns well with other like-minded families."
+ ]
+ },
+ "1056513923": {
+ "synopsis": "The episode features John McNellis from McNe Partners, discussing his current portfolio in Northern California and insights on the commercial real estate market trends. Co-host Arnie Garfinkel also shares updates on upcoming events and sponsors for Rent TV.",
+ "highlights": [
+ "John McNellis's McNe Partners owns a portfolio of shopping centers mainly around Northern California, with some expansion into Orange County.",
+ "The shopping centers are running nearly full, with rents pushed slightly in some cases but generally kept flat due to modest retail sales growth.",
+ "Mixed-use properties in Palo Alto are struggling, particularly urbanized retail areas lacking daytime populations.",
+ "Office buildings owned by McNe Partners are fully leased but only 15% occupied, showing signs of improvement but still facing challenges."
+ ]
+ },
+ "1039101858": {
+ "synopsis": "This episode of Commercial Real Estate Talk features Ethan Penner, CEO of Mosaic real estate investors, discussing his journey into commercial real estate and the creation of the CMBS market in the 1990s. The conversation covers his approach to identifying valuable opportunities amidst an overcrowded market and his insights on the impact of reduced interest rates on the industry.",
+ "highlights": [
+ "Ethan Penner shares his background and how he initially entered the real estate business, attributing it to a divine hand in one's life.",
+ "Penner discusses his approach to identifying valuable opportunities by asking what is truly needed in the market rather than bringing sand to an already full beach.",
+ "He highlights the significant impact of reduced interest rates on commercial real estate investment strategies and how this trend influenced Mosaic\u2019s initial business thesis."
+ ]
+ },
+ "1012976399": {
+ "synopsis": "The episode covers Murphy Development's history in Southern California, focusing on their development projects in Otay Mesa and Boise, as well as strategies for land acquisition and property development. Kaitlin Arduino discusses the company\u2019s approach to growth areas, industrial developments, and the impact of market changes on their business.",
+ "highlights": [
+ "Murphy Development has been active in Southern California for 40 years, developing over 10 million square feet across various sectors including industrial and multifamily.",
+ "The company focuses on buying large pieces of land, entitling it or permanently zoned, then developing it in phases to maximize potential.",
+ "Market conditions significantly influence their decisions; they recently sold a project for a higher price than initially expected due to market escalation.",
+ "Murphy Development is currently expanding into the Boise area, identifying growth opportunities in new markets.",
+ "The company emphasizes providing high-quality properties that Fortune 500 companies would choose over competing properties."
+ ]
+ },
+ "953281926": {
+ "synopsis": "The episode covers MGR Real Estate Services' growth and operations in the Inland Empire, including their property management, brokerage, and ownership of commercial properties. The discussion includes insights on financing strategies for real estate projects and the current challenges in the office market due to lender hesitance.",
+ "highlights": [
+ "MGR Real Estate Services is a family-owned business with offices across Southern California, planning to expand further.",
+ "The company manages over 17,000 units and employs around 263 people, offering both commercial and residential brokerage services.",
+ "Financing strategies vary depending on the project size; larger deals often require lender assistance due to market conditions.",
+ "Office properties face financing challenges as lenders are cautious about potential losses in the current market.",
+ "CMBS can still finance office buildings with high occupancy rates, but at reduced leverage levels."
+ ]
+ },
+ "931863337": {
+ "synopsis": "This episode of RENTV CRE Talk features an in-depth interview with Henry Manoucheri, Chairman and CEO of Universe Holdings, discussing his real estate journey, company portfolio, financing strategies, and market insights. The panel also covers topics such as the impact of the Great Recession on their business practices and the importance of having institutional partners for accountability.",
+ "highlights": [
+ "Henry Manoucheri founded Universe Holdings over 37 years ago and has since grown it into a major multifamily property owner in California and the East Coast.",
+ "The company's financing strategy post-Great Recession includes minimal leverage, typically between 35% to 60% LTV, with a focus on private equity and institutional partnerships for oversight.",
+ "Institutional partners provide regular calls and reviews, ensuring high standards and accountability in transactions.",
+ "Manoucheri emphasizes the importance of lenders as another set of eyes to ensure deals are sound and that properties will generate income."
+ ]
+ },
+ "911412212": {
+ "synopsis": "The episode features Eddie Ring from New Standard Equities, discussing his multifamily property investments in California and the Pacific Northwest. He shares insights on market conditions, rental values, and strategies for navigating tenant-friendly laws while maintaining full occupancy.",
+ "highlights": [
+ "Eddie Ring founded New Standard Equities in 2010 after gaining experience at Kennedy Wilson during business school.",
+ "The company now manages about 1900 units across 15 assets, with a fully integrated approach to property management and asset development.",
+ "California's tenant-friendly laws pose challenges but also provide stable demand without the oversupply issues seen in other markets like Arizona or Orlando.",
+ "Rental values vary by location; for example, one-bedroom apartments in Bremerton are now around $1495, while San Jose two-bedrooms range from $2900 to $3100 post-pandemic.",
+ "Despite lower rents in some areas, Ring's properties still compete favorably with higher-end Class A buildings."
+ ]
+ },
+ "906276616": {
+ "synopsis": "This episode of RENTV CRE Talk features Irwin Bucy from Paragon Commercial Group, discussing the company\u2019s retail property development and investment strategies in California. The panel also covers topics such as return on cost versus internal rate of return (IRR) for decision-making, exit strategies, and the impact of market conditions like inflation and interest rates.",
+ "highlights": [
+ "Paragon Commercial Group focuses on grocery anchor shopping centers and necessity-driven retail properties.",
+ "Irwin Bucy emphasizes that return on cost is a more reliable metric than IRR for making buy decisions due to its stability over time.",
+ "The company employs a long-term ownership strategy, but also engages in build-and-sell models to trade into larger assets they wish to own long-term.",
+ "Market conditions such as inflation and interest rates significantly impact exit strategies and overall business planning."
+ ]
+ },
+ "886025667": {
+ "synopsis": "This episode of RENTV CRE Talk features Chuck Hershon from Fidelity Mortgage Lenders, discussing the company\u2019s history and operations, including its unique lending terms, fast funding process, and ability to fill gaps left by banks during high-interest-rate periods. The conversation also touches on market trends and strategies for navigating current economic conditions.",
+ "highlights": [
+ "Fidelity Mortgage Lenders was founded in 1971 by Chuck Hershon and has since serviced approximately 515 loans with a portfolio of about $300 million.",
+ "The company specializes in commercial real estate lending, offering unique terms such as no prepayment penalties and long-term fixed rates.",
+ "During high-interest-rate periods, Fidelity Mortgage Lenders fills the gap left by banks, processing loans quickly (in 5-10 working days) for clients with FO scores over 700 who are facing longer bank closing times.",
+ "The current market is favorable for private money lenders like Fidelity due to homogeneous loan terms and the speed advantage they offer compared to traditional banking institutions."
+ ]
+ },
+ "868849453": {
+ "synopsis": "This episode of RENTV CRE Talk features Barry Seitz from Seitz Properties and discusses market trends in commercial real estate, focusing on office and multifamily sectors. Guests also include Steve Bloom from Rent TV and Arnie Garfinkel from the Allstar Group, who discuss upcoming industry events and sponsorships.",
+ "highlights": [
+ "Barry Seitz shares insights on his company's approach to property evaluation and market trends in commercial real estate.",
+ "The episode covers current challenges and opportunities in the office and multifamily markets, including rent control issues and rising costs.",
+ "Guests discuss upcoming industry events such as the lawmakers forum and state of the market for San Diego.",
+ "Sponsors are introduced, including commercial real estate inspectors, Paramount Property Tax Appeal, and Redwood Mortgage."
+ ]
+ },
+ "865035925": {
+ "synopsis": "The panelists discussed their strategies in the multifamily real estate market, focusing on vertical integration, portfolio diversification, and legislative risks. The conversation highlighted the importance of controlling quality and speed through in-house capabilities, as well as adapting to new markets like New Jersey and Florida.",
+ "highlights": [
+ "Vertical integration is crucial for maintaining control over property management and construction quality.",
+ "Diversifying portfolios across multiple states can mitigate market-specific risks and legislative impacts.",
+ "Legislative challenges, such as potential rent control measures, are a significant concern for the industry.",
+ "The panelists emphasized the importance of adapting to new markets while staying true to their core investment strategies.",
+ "Consolidation through portfolio sales is seen as a strategic move in response to increased market competition and supply."
+ ]
+ },
+ "862593366": {
+ "synopsis": "The finance panel at RENTV's Greater Los Angeles State of the Market Conference featured discussions from various lenders and brokers about their approaches to financing commercial real estate. Panelists covered topics such as loan sizes, types of properties financed, and strategies for navigating current market conditions.",
+ "highlights": [
+ "Axo Bank offers a wide range of real estate loans, including bridge and permanent loans, with minimum sizes starting at $500,000.",
+ "Ms. Rahi TE Bank focuses on value-add and construction lending for apartment projects, typically ranging from $5 to 25 million and being recourse-driven.",
+ "Pacific Southwest Realty Services specializes in correspondent relationships with life insurance companies and brokers other financial institutions, covering various property types.",
+ "Provident Bank is a portfolio lender that primarily finances multifamily properties and small retail businesses, with loan sizes up to $6 million.",
+ "Fidelity Mortgage Lenders operates as both a private and hard money lender, offering flexible terms for various property types, including office and retail, with debt coverage ratios ranging from 1.23 to 1.5."
+ ]
+ },
+ "852462696": {
+ "synopsis": "This episode of Commercial Real Estate Talk features Barry DiRaimondo, CEO of Steel Wave, discussing his company\u2019s focus on tech-oriented markets like Seattle, Portland, the Bay Area, LA, Orange County, San Diego, Denver, and Austin. The conversation covers the company's portfolio size, recent developments, and marketing strategies for high-profile projects.",
+ "highlights": [
+ "- Steel Wave specializes in life science office and industrial properties with a focus on tech-dominated markets.",
+ "- The company has been active since 2017, tripling down during the pandemic to capitalize on growth opportunities.",
+ "- Marketing efforts are extensive, involving brokers for both leasing and buying processes, especially for large-scale projects like Infinite Labs.",
+ "- Steel Wave's portfolio includes a mix of ground-up developments and repositioning of existing properties.",
+ "- The company anticipates market recovery in life science despite current challenges due to high growth industry trends."
+ ]
+ },
+ "831673533": {
+ "synopsis": "The episode covers the current state of commercial real estate, focusing on challenges in the office and retail markets. John McNellis, founder and partner at MCNs Partners, discusses his portfolio's performance and tenant management strategies during a tough market environment. The conversation also touches on property tax appeals and the impact of inflation.",
+ "highlights": [
+ "John McNellis shares insights from over 40 years in commercial real estate, focusing on neighborhood supermarkets as his primary portfolio.",
+ "The current retail and office markets are described as challenging, with low demand for properties and limited financing options.",
+ "Property tax appeals are discussed as a potential strategy to mitigate financial pressures during inflationary periods.",
+ "John highlights the difficulty of selling properties due to poor market conditions, particularly in the retail sector."
+ ]
+ },
+ "830279080": {
+ "synopsis": "The panelists discussed the current state and future outlook of office real estate in the Inland Empire, focusing on trends such as low vacancy rates, strong demand from local and national tenants, and the impact of remote work during the pandemic. They also shared insights into value-add strategies like 'plug and play' spaces that offer existing furniture to tenants.",
+ "highlights": [
+ "The Inland Empire office market has historically low vacancy rates due to no new construction since the Great Recession.",
+ "Local and regional companies have strong demand, while some national firms are right-sizing their space needs.",
+ "Pandemic-driven population growth in the region continues to support tenant activity and office leasing.",
+ "Value-add strategies such as 'plug and play' spaces with existing furniture are popular among tenants downsizing or right-sizing.",
+ "The market remains active with ongoing purchases of office buildings and plans for new construction."
+ ]
+ },
+ "830276773": {
+ "synopsis": "The retail panel discussed the current state of the Inland Empire's retail market, focusing on development opportunities in Ontario, including downtown Ontario, underutilized shopping centers, and the Toyota Arena district. Panelists highlighted the city\u2019s efforts to revitalize commercial areas through partnerships with developers and investment in infrastructure.",
+ "highlights": [
+ "Ontario is experiencing significant development, with a focus on revitalizing downtown areas and underutilized shopping centers.",
+ "The city has acquired properties for redevelopment, aiming to infuse new residential and retail amenities into these areas.",
+ "The Toyota Arena district is undergoing major development, including a 15-story building and plans for an entertainment district.",
+ "Retail investors find the Inland Empire market attractive due to seamless deal-making and tenant rollouts.",
+ "Ontario\u2019s city leadership has secured funding through a sales tax measure to reinvest in capital improvement projects."
+ ]
+ },
+ "812981342": {
+ "synopsis": "The episode discusses current trends and challenges in commercial real estate, focusing on office space and development projects amid rising interest rates and remote work impacts. Michael Van Every from Republic Urban Properties shares insights on his company's focus areas and future project plans.",
+ "highlights": [
+ "Michael Van Every discusses the significant increase in construction costs due to the pandemic, making core market projects challenging to finance.",
+ "Republic Urban Properties has shifted its strategy towards lower-density single-family rental properties like five-minute townhomes in secondary markets.",
+ "Van Every criticizes remote work as a panacea and predicts long-term negative impacts on commercial real estate, especially office spaces.",
+ "The episode covers the challenges faced by developers due to increased costs and changing tenant preferences post-pandemic."
+ ]
+ },
+ "795355693": {
+ "synopsis": "The episode features an interview with Sandy Siegel, President and CEO of Newmark Merrill Companies, discussing the challenges faced by commercial real estate in retail, including labor costs, material costs, and interest rates. The discussion also covers strategies for navigating these challenges and the role of technology in the industry.",
+ "highlights": [
+ "Newmark Merrill Companies has been operating for 27 years with a portfolio of about 92 properties across three states.",
+ "The company faced significant challenges during the pandemic but is now dealing with rising labor costs, material costs, and interest rates.",
+ "Siegel emphasizes the importance of long-term debt maturities to mitigate some financial risks.",
+ "Technology plays a crucial role in managing and optimizing commercial real estate operations.",
+ "Retail strategies are evolving due to changing consumer behaviors post-pandemic."
+ ]
+ },
+ "771348410": {
+ "synopsis": "The episode features Bill Shopoff from Shopoff Realty Investments, discussing his company\u2019s diverse portfolio and recent projects including an opportunistic value-add investment in a hotel on the Las Vegas Strip within a qualified opportunity zone. The discussion also covers the evolving retail market trends towards experiential shopping experiences and the development plans for Westminster, California.",
+ "highlights": [
+ "Shopoff Realty Investments has been operating for 30 years with a focus on opportunistic value-add investments in various property types including office, industrial, multifamily, and hotel developments.",
+ "The company is developing a hotel on the Las Vegas Strip within a qualified opportunity zone to benefit from tax deferral benefits.",
+ "Retail market trends are shifting towards experiential shopping experiences, with examples like the Spectrum mall having limited parking availability compared to underutilized malls like Mission Viejo.",
+ "Shopoff Realty Investments is planning a significant development in Westminster, California, which includes 2500-3000 homes and apartments, combining rental and for-sale products targeting both families and singles.",
+ "The retail component of the Westminster project aims to achieve approximately 350,000 square feet of new retail space."
+ ]
+ },
+ "739081927": {
+ "synopsis": "The panelists discussed challenges faced in the multifamily market due to the pandemic, including tenant payment issues and delinquencies, as well as expectations for future trends such as rising interest rates, increasing rents, and tightening loan-to-value ratios. The participants are Jerry Fink from Bascom Group, Paul Julien from Advanced Real Estate, Dan Blackwell from CBRE, and Barry Sewitz from Say What's Properties.",
+ "highlights": [
+ "Delinquency issues were more prevalent in LA County compared to Orange County during the pandemic.",
+ "Panelists expect multifamily rents to continue increasing by 10-12% over the next year.",
+ "Interest rates are anticipated to rise, possibly reaching around 5% within six months.",
+ "Loan-to-value ratios for apartment acquisitions may decrease due to changing market dynamics.",
+ "The panel agreed that future cap rates will likely be higher in a year as economic forecasts predict a recession."
+ ]
+ },
+ "721184140": {
+ "synopsis": "The episode covers Rent TV\u2019s platform that connects video content creators in the commercial real estate industry with busy professionals seeking relevant information. The platform allows users to create free video channels, tag videos for specific categories and locations, and easily share them through links. The panel also discusses the Arnie's All-Star conference, highlighting its initial positive impressions and keynotes on homelessness.",
+ "highlights": [
+ "Rent TV is a media company that has been online for 23 years and created Rent TV to connect content creators with busy real estate professionals.",
+ "The platform allows users to create free video channels on Vimeo or YouTube and easily share them through links, improving searchability and categorization.",
+ "Rent TV\u2019s focus is on providing user-friendly tools for both content producers and consumers in the commercial real estate industry.",
+ "Initial impressions of Arnie's All-Star conference were positive, with great energy and keynote speakers addressing issues like homelessness.",
+ "The platform aims to increase traffic for video producers by making their content more accessible and relevant to the target audience."
+ ]
+ }
+}
\ No newline at end of file
diff --git a/public/img/posters/101654810.jpg b/public/img/posters/101654810.jpg
new file mode 100644
index 0000000..02f83f4
Binary files /dev/null and b/public/img/posters/101654810.jpg differ
diff --git a/public/img/posters/107204372.jpg b/public/img/posters/107204372.jpg
new file mode 100644
index 0000000..7ac1b96
Binary files /dev/null and b/public/img/posters/107204372.jpg differ
diff --git a/public/img/posters/107762220.jpg b/public/img/posters/107762220.jpg
new file mode 100644
index 0000000..57fdc81
Binary files /dev/null and b/public/img/posters/107762220.jpg differ
diff --git a/public/img/posters/109994315.jpg b/public/img/posters/109994315.jpg
new file mode 100644
index 0000000..414cf1b
Binary files /dev/null and b/public/img/posters/109994315.jpg differ
diff --git a/public/img/posters/117977696.jpg b/public/img/posters/117977696.jpg
new file mode 100644
index 0000000..00ff031
Binary files /dev/null and b/public/img/posters/117977696.jpg differ
diff --git a/public/img/posters/125349744.jpg b/public/img/posters/125349744.jpg
new file mode 100644
index 0000000..dcaf1a3
Binary files /dev/null and b/public/img/posters/125349744.jpg differ
diff --git a/public/img/posters/135939853.jpg b/public/img/posters/135939853.jpg
new file mode 100644
index 0000000..ce3b4e6
Binary files /dev/null and b/public/img/posters/135939853.jpg differ
diff --git a/public/img/posters/142347178.jpg b/public/img/posters/142347178.jpg
new file mode 100644
index 0000000..b62c01f
Binary files /dev/null and b/public/img/posters/142347178.jpg differ
diff --git a/public/img/posters/142347291.jpg b/public/img/posters/142347291.jpg
new file mode 100644
index 0000000..084467c
Binary files /dev/null and b/public/img/posters/142347291.jpg differ
diff --git a/public/img/posters/142347515.jpg b/public/img/posters/142347515.jpg
new file mode 100644
index 0000000..660c852
Binary files /dev/null and b/public/img/posters/142347515.jpg differ
diff --git a/public/img/posters/142348009.jpg b/public/img/posters/142348009.jpg
new file mode 100644
index 0000000..353852d
Binary files /dev/null and b/public/img/posters/142348009.jpg differ
diff --git a/public/img/posters/142348532.jpg b/public/img/posters/142348532.jpg
new file mode 100644
index 0000000..755ab51
Binary files /dev/null and b/public/img/posters/142348532.jpg differ
diff --git a/public/img/posters/142348827.jpg b/public/img/posters/142348827.jpg
new file mode 100644
index 0000000..c0a5df1
Binary files /dev/null and b/public/img/posters/142348827.jpg differ
diff --git a/public/img/posters/142350083.jpg b/public/img/posters/142350083.jpg
new file mode 100644
index 0000000..88824c7
Binary files /dev/null and b/public/img/posters/142350083.jpg differ
diff --git a/public/img/posters/142351726.jpg b/public/img/posters/142351726.jpg
new file mode 100644
index 0000000..9f678b4
Binary files /dev/null and b/public/img/posters/142351726.jpg differ
diff --git a/public/img/posters/142353259.jpg b/public/img/posters/142353259.jpg
new file mode 100644
index 0000000..a4dad26
Binary files /dev/null and b/public/img/posters/142353259.jpg differ
diff --git a/public/img/posters/143827823.jpg b/public/img/posters/143827823.jpg
new file mode 100644
index 0000000..51ca57d
Binary files /dev/null and b/public/img/posters/143827823.jpg differ
diff --git a/public/img/posters/144943180.jpg b/public/img/posters/144943180.jpg
new file mode 100644
index 0000000..beaccc5
Binary files /dev/null and b/public/img/posters/144943180.jpg differ
diff --git a/public/img/posters/149786738.jpg b/public/img/posters/149786738.jpg
new file mode 100644
index 0000000..6c6a145
Binary files /dev/null and b/public/img/posters/149786738.jpg differ
diff --git a/public/img/posters/157877482.jpg b/public/img/posters/157877482.jpg
new file mode 100644
index 0000000..14fef73
Binary files /dev/null and b/public/img/posters/157877482.jpg differ
diff --git a/public/img/posters/157877500.jpg b/public/img/posters/157877500.jpg
new file mode 100644
index 0000000..95bd6da
Binary files /dev/null and b/public/img/posters/157877500.jpg differ
diff --git a/public/img/posters/157877501.jpg b/public/img/posters/157877501.jpg
new file mode 100644
index 0000000..d472ccd
Binary files /dev/null and b/public/img/posters/157877501.jpg differ
diff --git a/public/img/posters/157877502.jpg b/public/img/posters/157877502.jpg
new file mode 100644
index 0000000..77d07fd
Binary files /dev/null and b/public/img/posters/157877502.jpg differ
diff --git a/public/img/posters/157877503.jpg b/public/img/posters/157877503.jpg
new file mode 100644
index 0000000..e2cd31a
Binary files /dev/null and b/public/img/posters/157877503.jpg differ
diff --git a/public/img/posters/157877504.jpg b/public/img/posters/157877504.jpg
new file mode 100644
index 0000000..ebc4f8f
Binary files /dev/null and b/public/img/posters/157877504.jpg differ
diff --git a/public/img/posters/162573796.jpg b/public/img/posters/162573796.jpg
new file mode 100644
index 0000000..2d8ca3c
Binary files /dev/null and b/public/img/posters/162573796.jpg differ
diff --git a/public/img/posters/162573927.jpg b/public/img/posters/162573927.jpg
new file mode 100644
index 0000000..f4c6266
Binary files /dev/null and b/public/img/posters/162573927.jpg differ
diff --git a/public/img/posters/162574294.jpg b/public/img/posters/162574294.jpg
new file mode 100644
index 0000000..110a8e0
Binary files /dev/null and b/public/img/posters/162574294.jpg differ
diff --git a/public/img/posters/162574320.jpg b/public/img/posters/162574320.jpg
new file mode 100644
index 0000000..979875e
Binary files /dev/null and b/public/img/posters/162574320.jpg differ
diff --git a/public/img/posters/162574338.jpg b/public/img/posters/162574338.jpg
new file mode 100644
index 0000000..104f472
Binary files /dev/null and b/public/img/posters/162574338.jpg differ
diff --git a/public/img/posters/162574358.jpg b/public/img/posters/162574358.jpg
new file mode 100644
index 0000000..8362e2e
Binary files /dev/null and b/public/img/posters/162574358.jpg differ
diff --git a/public/img/posters/162712456.jpg b/public/img/posters/162712456.jpg
new file mode 100644
index 0000000..9981a63
Binary files /dev/null and b/public/img/posters/162712456.jpg differ
diff --git a/public/img/posters/162712493.jpg b/public/img/posters/162712493.jpg
new file mode 100644
index 0000000..b694377
Binary files /dev/null and b/public/img/posters/162712493.jpg differ
diff --git a/public/img/posters/162712517.jpg b/public/img/posters/162712517.jpg
new file mode 100644
index 0000000..c30e8fe
Binary files /dev/null and b/public/img/posters/162712517.jpg differ
diff --git a/public/img/posters/167990145.jpg b/public/img/posters/167990145.jpg
new file mode 100644
index 0000000..257b077
Binary files /dev/null and b/public/img/posters/167990145.jpg differ
diff --git a/public/img/posters/167990176.jpg b/public/img/posters/167990176.jpg
new file mode 100644
index 0000000..c649da8
Binary files /dev/null and b/public/img/posters/167990176.jpg differ
diff --git a/public/img/posters/167990218.jpg b/public/img/posters/167990218.jpg
new file mode 100644
index 0000000..f8084a8
Binary files /dev/null and b/public/img/posters/167990218.jpg differ
diff --git a/public/img/posters/167990238.jpg b/public/img/posters/167990238.jpg
new file mode 100644
index 0000000..1328deb
Binary files /dev/null and b/public/img/posters/167990238.jpg differ
diff --git a/public/img/posters/167990250.jpg b/public/img/posters/167990250.jpg
new file mode 100644
index 0000000..e384b78
Binary files /dev/null and b/public/img/posters/167990250.jpg differ
diff --git a/public/img/posters/167990282.jpg b/public/img/posters/167990282.jpg
new file mode 100644
index 0000000..9ef26d0
Binary files /dev/null and b/public/img/posters/167990282.jpg differ
diff --git a/public/img/posters/171347069.jpg b/public/img/posters/171347069.jpg
new file mode 100644
index 0000000..5eeff1f
Binary files /dev/null and b/public/img/posters/171347069.jpg differ
diff --git a/public/img/posters/172014042.jpg b/public/img/posters/172014042.jpg
new file mode 100644
index 0000000..e1b9948
Binary files /dev/null and b/public/img/posters/172014042.jpg differ
diff --git a/public/img/posters/172014125.jpg b/public/img/posters/172014125.jpg
new file mode 100644
index 0000000..1800e30
Binary files /dev/null and b/public/img/posters/172014125.jpg differ
diff --git a/public/img/posters/172014837.jpg b/public/img/posters/172014837.jpg
new file mode 100644
index 0000000..f906906
Binary files /dev/null and b/public/img/posters/172014837.jpg differ
diff --git a/public/img/posters/188261706.jpg b/public/img/posters/188261706.jpg
new file mode 100644
index 0000000..cabf68b
Binary files /dev/null and b/public/img/posters/188261706.jpg differ
diff --git a/public/img/posters/188271441.jpg b/public/img/posters/188271441.jpg
new file mode 100644
index 0000000..e415fb8
Binary files /dev/null and b/public/img/posters/188271441.jpg differ
diff --git a/public/img/posters/208460446.jpg b/public/img/posters/208460446.jpg
new file mode 100644
index 0000000..800e308
Binary files /dev/null and b/public/img/posters/208460446.jpg differ
diff --git a/public/img/posters/227217030.jpg b/public/img/posters/227217030.jpg
new file mode 100644
index 0000000..17d8505
Binary files /dev/null and b/public/img/posters/227217030.jpg differ
diff --git a/public/img/posters/227224358.jpg b/public/img/posters/227224358.jpg
new file mode 100644
index 0000000..4c1d6b9
Binary files /dev/null and b/public/img/posters/227224358.jpg differ
diff --git a/public/img/posters/228295912.jpg b/public/img/posters/228295912.jpg
new file mode 100644
index 0000000..76dfb56
Binary files /dev/null and b/public/img/posters/228295912.jpg differ
diff --git a/public/img/posters/232088787.jpg b/public/img/posters/232088787.jpg
new file mode 100644
index 0000000..a9c5f4d
Binary files /dev/null and b/public/img/posters/232088787.jpg differ
diff --git a/public/img/posters/242491490.jpg b/public/img/posters/242491490.jpg
new file mode 100644
index 0000000..932219a
Binary files /dev/null and b/public/img/posters/242491490.jpg differ
diff --git a/public/img/posters/308597317.jpg b/public/img/posters/308597317.jpg
new file mode 100644
index 0000000..912cdd2
Binary files /dev/null and b/public/img/posters/308597317.jpg differ
diff --git a/public/img/posters/31239971.jpg b/public/img/posters/31239971.jpg
new file mode 100644
index 0000000..a6b924e
Binary files /dev/null and b/public/img/posters/31239971.jpg differ
diff --git a/public/img/posters/315327378.jpg b/public/img/posters/315327378.jpg
new file mode 100644
index 0000000..6d360a1
Binary files /dev/null and b/public/img/posters/315327378.jpg differ
diff --git a/public/img/posters/316709134.jpg b/public/img/posters/316709134.jpg
new file mode 100644
index 0000000..23a4d7f
Binary files /dev/null and b/public/img/posters/316709134.jpg differ
diff --git a/public/img/posters/32191299.jpg b/public/img/posters/32191299.jpg
new file mode 100644
index 0000000..f7a56a1
Binary files /dev/null and b/public/img/posters/32191299.jpg differ
diff --git a/public/img/posters/33583429.jpg b/public/img/posters/33583429.jpg
new file mode 100644
index 0000000..ba00bfe
Binary files /dev/null and b/public/img/posters/33583429.jpg differ
diff --git a/public/img/posters/35868287.jpg b/public/img/posters/35868287.jpg
new file mode 100644
index 0000000..f0a46da
Binary files /dev/null and b/public/img/posters/35868287.jpg differ
diff --git a/public/img/posters/38894517.jpg b/public/img/posters/38894517.jpg
new file mode 100644
index 0000000..1b42381
Binary files /dev/null and b/public/img/posters/38894517.jpg differ
diff --git a/public/img/posters/39610422.jpg b/public/img/posters/39610422.jpg
new file mode 100644
index 0000000..c46da37
Binary files /dev/null and b/public/img/posters/39610422.jpg differ
diff --git a/public/img/posters/42140576.jpg b/public/img/posters/42140576.jpg
new file mode 100644
index 0000000..4b50237
Binary files /dev/null and b/public/img/posters/42140576.jpg differ
diff --git a/public/img/posters/429079440.jpg b/public/img/posters/429079440.jpg
new file mode 100644
index 0000000..5378f03
Binary files /dev/null and b/public/img/posters/429079440.jpg differ
diff --git a/public/img/posters/434219208.jpg b/public/img/posters/434219208.jpg
new file mode 100644
index 0000000..310a607
Binary files /dev/null and b/public/img/posters/434219208.jpg differ
diff --git a/public/img/posters/44468806.jpg b/public/img/posters/44468806.jpg
new file mode 100644
index 0000000..730416e
Binary files /dev/null and b/public/img/posters/44468806.jpg differ
diff --git a/public/img/posters/46769758.jpg b/public/img/posters/46769758.jpg
new file mode 100644
index 0000000..f3352d8
Binary files /dev/null and b/public/img/posters/46769758.jpg differ
diff --git a/public/img/posters/48347303.jpg b/public/img/posters/48347303.jpg
new file mode 100644
index 0000000..0288810
Binary files /dev/null and b/public/img/posters/48347303.jpg differ
diff --git a/public/img/posters/493420423.jpg b/public/img/posters/493420423.jpg
new file mode 100644
index 0000000..d551527
Binary files /dev/null and b/public/img/posters/493420423.jpg differ
diff --git a/public/img/posters/503234116.jpg b/public/img/posters/503234116.jpg
new file mode 100644
index 0000000..7a11158
Binary files /dev/null and b/public/img/posters/503234116.jpg differ
diff --git a/public/img/posters/50591120.jpg b/public/img/posters/50591120.jpg
new file mode 100644
index 0000000..131998b
Binary files /dev/null and b/public/img/posters/50591120.jpg differ
diff --git a/public/img/posters/507211620.jpg b/public/img/posters/507211620.jpg
new file mode 100644
index 0000000..bb925f0
Binary files /dev/null and b/public/img/posters/507211620.jpg differ
diff --git a/public/img/posters/52820750.jpg b/public/img/posters/52820750.jpg
new file mode 100644
index 0000000..9e45aeb
Binary files /dev/null and b/public/img/posters/52820750.jpg differ
diff --git a/public/img/posters/55380262.jpg b/public/img/posters/55380262.jpg
new file mode 100644
index 0000000..e120d02
Binary files /dev/null and b/public/img/posters/55380262.jpg differ
diff --git a/public/img/posters/565693580.jpg b/public/img/posters/565693580.jpg
new file mode 100644
index 0000000..8d6eb0c
Binary files /dev/null and b/public/img/posters/565693580.jpg differ
diff --git a/public/img/posters/56573116.jpg b/public/img/posters/56573116.jpg
new file mode 100644
index 0000000..6a334ed
Binary files /dev/null and b/public/img/posters/56573116.jpg differ
diff --git a/public/img/posters/65258106.jpg b/public/img/posters/65258106.jpg
new file mode 100644
index 0000000..08514ef
Binary files /dev/null and b/public/img/posters/65258106.jpg differ
diff --git a/public/img/posters/69208165.jpg b/public/img/posters/69208165.jpg
new file mode 100644
index 0000000..5fcd32b
Binary files /dev/null and b/public/img/posters/69208165.jpg differ
diff --git a/public/img/posters/71974003.jpg b/public/img/posters/71974003.jpg
new file mode 100644
index 0000000..c88f87b
Binary files /dev/null and b/public/img/posters/71974003.jpg differ
diff --git a/public/img/posters/721184140.jpg b/public/img/posters/721184140.jpg
new file mode 100644
index 0000000..b9b2c73
Binary files /dev/null and b/public/img/posters/721184140.jpg differ
diff --git a/public/img/posters/739081927.jpg b/public/img/posters/739081927.jpg
new file mode 100644
index 0000000..d16c227
Binary files /dev/null and b/public/img/posters/739081927.jpg differ
diff --git a/public/img/posters/763442741.jpg b/public/img/posters/763442741.jpg
new file mode 100644
index 0000000..5c362a5
Binary files /dev/null and b/public/img/posters/763442741.jpg differ
diff --git a/public/img/posters/763447786.jpg b/public/img/posters/763447786.jpg
new file mode 100644
index 0000000..a5640a7
Binary files /dev/null and b/public/img/posters/763447786.jpg differ
diff --git a/public/img/posters/77077219.jpg b/public/img/posters/77077219.jpg
new file mode 100644
index 0000000..5cf6cf2
Binary files /dev/null and b/public/img/posters/77077219.jpg differ
diff --git a/public/img/posters/771348410.jpg b/public/img/posters/771348410.jpg
new file mode 100644
index 0000000..409ccf2
Binary files /dev/null and b/public/img/posters/771348410.jpg differ
diff --git a/public/img/posters/795355693.jpg b/public/img/posters/795355693.jpg
new file mode 100644
index 0000000..129af4e
Binary files /dev/null and b/public/img/posters/795355693.jpg differ
diff --git a/public/img/posters/82824854.jpg b/public/img/posters/82824854.jpg
new file mode 100644
index 0000000..cf022f8
Binary files /dev/null and b/public/img/posters/82824854.jpg differ
diff --git a/public/img/posters/85237519.jpg b/public/img/posters/85237519.jpg
new file mode 100644
index 0000000..533f544
Binary files /dev/null and b/public/img/posters/85237519.jpg differ
diff --git a/public/img/posters/90807750.jpg b/public/img/posters/90807750.jpg
new file mode 100644
index 0000000..9c90030
Binary files /dev/null and b/public/img/posters/90807750.jpg differ
diff --git a/public/img/posters/95064851.jpg b/public/img/posters/95064851.jpg
new file mode 100644
index 0000000..360d9c8
Binary files /dev/null and b/public/img/posters/95064851.jpg differ
diff --git a/public/index.html b/public/index.html
index 7a662fe..1b5f2c8 100644
--- a/public/index.html
+++ b/public/index.html
@@ -51,6 +51,10 @@
.muted{color:var(--dim);font-size:12px}
.quote{border-left:3px solid var(--teal);padding:4px 10px;color:var(--dim);font-style:italic;margin:6px 0}
.empty{color:var(--dim);padding:40px;text-align:center}
+ .mailbtn{background:var(--teal);color:#08131a;border:0;border-radius:7px;padding:5px 10px;font-size:12px;font-weight:700;cursor:pointer}
+ .mailbtn:hover{filter:brightness(1.1)}
+ .mailpanel{background:#0e1116;border:1px solid var(--teal);border-radius:10px;padding:12px;margin-top:14px}
+ .sheet{max-width:820px}
</style>
</head>
<body>
@@ -91,7 +95,7 @@ const setLS=(k,v)=>localStorage.setItem("rae_"+k,JSON.stringify(v));
const siteURL=s=>/^https?:/.test(s)?s:"https://"+s;
const telURL=p=>"tel:"+String(p).replace(/[^\d+]/g,"");
-let DATA={advertisers:[],guests:[],videos:[]}, FRAMES={};
+let DATA={advertisers:[],guests:[],videos:[]}, FRAMES={}, SYN={};
let view=LS("view","advertisers"), mode=LS("mode","cards");
const SORTS={
@@ -116,6 +120,7 @@ async function boot(){
]);
DATA.advertisers=a.advertisers||[]; DATA.guests=g.guests||[]; DATA.videos=m.videos||[];
(fr.frames||[]).forEach(f=>FRAMES[f.id]=f);
+ try{SYN=await fetch("/api/synopses").then(r=>r.json())}catch{SYN={}}
$("#stat").innerHTML=`<b>${s.advertisers}</b> advertisers · <b>${s.guests}</b> guests · <b>${s.videos_rich}</b>/${s.videos_total} videos transcribed`;
$("#dens").value=LS("dens",4); document.documentElement.style.setProperty("--cols",$("#dens").value);
document.querySelectorAll(".tab").forEach(t=>t.classList.toggle("on",t.dataset.view===view));
@@ -156,7 +161,7 @@ function render(){
mode==="table"?renderTable(main,L):renderCards(main,L);
}
-function epChips(eps){return (eps||[]).map(e=>`<span class="chip ep" onclick="window.open('${esc(e.url)}','_blank')" title="${esc(e.title)}">▶ ${esc(e.title.replace(/RENTV |CRE Talk /g,'').slice(0,26))}</span>`).join("")}
+function epChips(eps){return (eps||[]).map(e=>`<span class="chip ep" onclick="openEpisode(${e.id})" title="${esc(e.title)} — open dossier">▶ ${esc(e.title.replace(/RENTV |CRE Talk /g,'').slice(0,26))}</span>`).join("")}
function renderCards(main,L){
const g=el("div","grid");
@@ -180,17 +185,17 @@ function renderCards(main,L){
<div class="kv"><b>${esc(gu.title||"")}</b>${gu.company?" — "+esc(gu.company):""}</div>
${gu.location?`<div class="kv">📍 ${esc(gu.location)}</div>`:""}
<div class="row">${(gu.topics||[]).slice(0,6).map(t=>`<span class="chip">${esc(t)}</span>`).join("")}</div>
- <div class="row"><span class="chip ep" onclick="window.open('${esc(gu.url)}','_blank')">▶ ${esc(gu.episode_title.slice(0,32))}</span>${gu.is_panel?'<span class="badge">panel</span>':''}</div>`;
+ <div class="row"><span class="chip ep" onclick="openEpisode(${gu.episode_id})">▶ ${esc(gu.episode_title.slice(0,32))}</span>${gu.is_panel?'<span class="badge">panel</span>':''}</div>`;
g.appendChild(c);
});
else L.forEach(v=>{
const c=el("div","card"); const fr=FRAMES[v.id];
- c.innerHTML=`${fr&&fr.poster?`<img src="${esc(fr.poster)}" loading="lazy" onclick="window.open('${esc(v.url)}','_blank')" style="width:100%;border-radius:8px;cursor:pointer;border:1px solid var(--line)">`:""}
- <h3 onclick="window.open('${esc(v.url)}','_blank')" style="font-size:14px">${esc(v.title)}</h3>
+ c.innerHTML=`${fr&&fr.poster?`<img src="${esc(fr.poster)}" loading="lazy" onclick="openEpisode(${v.id})" style="width:100%;border-radius:8px;cursor:pointer;border:1px solid var(--line)">`:""}
+ <h3 onclick="openEpisode(${v.id})" style="font-size:14px">${esc(v.title)}</h3>
<div class="kv">⏱ ${(v.duration/60).toFixed(0)} min · 📝 ${(v.caption_chars/1000).toFixed(1)}k chars</div>
${fr&&fr.logos&&fr.logos.length?`<div class="row"><span class="kv">on-screen:</span>${fr.logos.map(l=>`<span class="chip">${esc(l)}</span>`).join("")}</div>`:""}
<div class="row"><span class="badge">${v.has_captions?"transcribed":"no captions"}</span>
- <a href="${esc(v.url)}" target="_blank" rel="noopener">open on Vimeo →</a></div>`;
+ <span class="chip ep" onclick="openEpisode(${v.id})">▶ open dossier</span></div>`;
g.appendChild(c);
});
main.appendChild(g);
@@ -267,8 +272,10 @@ window.openAdv=name=>{
${(a.phones||[]).map(p=>`<div>📞 <a href="${telURL(p)}">${esc(p)}</a></div>`).join("")}
${(a.emails||[]).map(m=>`<div>✉️ <a href="mailto:${esc(m)}">${esc(m)}</a></div>`).join("")}
${(a.contacts||[]).length?`<div>👤 ${esc(a.contacts.join(", "))}</div>`:""}
- <h3 style="margin-top:16px">Ran on these episodes</h3>
- ${(a.episodes||[]).map(e=>`<div>▶ <a href="${esc(e.url)}" target="_blank" rel="noopener">${esc(e.title)}</a></div>`).join("")}`;
+ <div style="margin:12px 0"><button class="mailbtn" onclick='genEmail("advertiser",${JSON.stringify(a.name)},0)'>✉️ Generate email to client</button></div>
+ <h3 style="margin-top:8px">Ran on these episodes</h3>
+ ${(a.episodes||[]).map(e=>`<div>▶ <a onclick="closeM();openEpisode(${e.id})" style="cursor:pointer">${esc(e.title)}</a></div>`).join("")}
+ <div id="mailout"></div>`;
$("#modal").classList.add("on");
};
window.openGuest=(epid,name)=>{
@@ -280,6 +287,65 @@ window.openGuest=(epid,name)=>{
<div style="margin-top:14px">▶ <a href="${esc(g.url)}" target="_blank" rel="noopener">${esc(g.episode_title)}</a></div>`;
$("#modal").classList.add("on");
};
+// ── per-video DOSSIER: video + screenshot + ads + guests + synopsis + email ──
+window.openEpisode=id=>{
+ id=+id;
+ const v=DATA.videos.find(x=>x.id===id); if(!v)return;
+ const fr=FRAMES[id]||{}; const syn=SYN[id]||{};
+ const ads=DATA.advertisers.filter(a=>(a.episodes||[]).some(e=>e.id===id));
+ const gts=DATA.guests.filter(x=>x.episode_id===id);
+ $("#sheet").innerHTML=`<span class="close" onclick="closeM()">✕</span>
+ <h2 style="max-width:90%">${esc(v.title)}</h2>
+ <div class="muted">⏱ ${(v.duration/60).toFixed(0)} min · 📝 ${(v.caption_chars/1000).toFixed(1)}k transcript · <a href="${esc(v.url)}" target="_blank" rel="noopener">open on Vimeo →</a></div>
+ <div style="display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0">
+ <div><iframe src="https://player.vimeo.com/video/${id}" style="width:100%;aspect-ratio:16/9;border:0;border-radius:8px" allow="fullscreen" loading="lazy"></iframe>
+ <div class="muted" style="margin-top:4px">Original video (if embedding is blocked, use “open on Vimeo”).</div></div>
+ <div>${fr.poster?`<img src="${esc(fr.poster)}" style="width:100%;border-radius:8px;border:1px solid var(--line)">`:""}
+ ${fr.logos&&fr.logos.length?`<div class="row" style="margin-top:6px"><span class="muted">on-screen:</span>${fr.logos.map(l=>`<span class="chip">${esc(l)}</span>`).join("")}</div>`:""}</div>
+ </div>
+ <h3>Synopsis</h3>
+ <p>${esc(syn.synopsis||"(synopsis still generating — refresh shortly)")}</p>
+ ${(syn.highlights||[]).length?`<ul style="color:var(--dim)">${syn.highlights.map(h=>`<li>${esc(h)}</li>`).join("")}</ul>`:""}
+ <h3>Advertisers in this episode (${ads.length})</h3>
+ ${ads.length?ads.map(a=>`<div class="row" style="margin:4px 0"><b>${esc(a.name)}</b> <span class="badge cat">${esc(a.category)}</span>
+ ${(a.websites||[]).map(w=>`<a href="${siteURL(esc(w))}" target="_blank" rel="noopener">${esc(w)}</a>`).join(" ")}
+ ${(a.phones||[]).map(p=>`<a href="${telURL(p)}">${esc(p)}</a>`).join(" ")}
+ <button class="mailbtn" onclick='genEmail("advertiser",${JSON.stringify(a.name)},${id})'>✉️ Generate email to client</button></div>`).join(""):'<div class="muted">none detected in transcript</div>'}
+ <h3 style="margin-top:12px">Guests (${gts.length})</h3>
+ ${gts.map(g=>`<div class="row" style="margin:4px 0"><b>${esc(g.name)}</b> — ${esc(g.title||"")}${g.company?", "+esc(g.company):""}
+ <button class="mailbtn" onclick='genEmail("guest",${JSON.stringify(g.name)},${id})'>✉️ Follow-up email</button></div>`).join("")||'<div class="muted">none</div>'}
+ <div id="mailout"></div>`;
+ $("#modal").classList.add("on");
+};
+
+window.genEmail=(kind,name,epid)=>{
+ const out=$("#mailout");
+ out.innerHTML=`<div class="mailpanel"><div class="muted">Drafting ${kind} email to <b>${esc(name)}</b> via local AI…</div></div>`;
+ out.scrollIntoView({behavior:"smooth",block:"nearest"});
+ let context="";
+ if(kind==="advertiser"){
+ const a=DATA.advertisers.find(x=>x.name===name)||{};
+ context=`Advertiser: ${a.name}\nCategory: ${a.category}\nWebsites: ${(a.websites||[]).join(", ")}\nPhones: ${(a.phones||[]).join(", ")}\nContacts: ${(a.contacts||[]).join(", ")}\nWhat they do: ${a.pitch}\nSponsored ${a.appearances} RENTV CRE Talk episode(s): ${(a.episodes||[]).map(e=>e.title).join("; ")}`;
+ }else{
+ const g=DATA.guests.find(x=>x.episode_id===epid&&x.name===name)||{};
+ context=`Guest: ${g.name}\nTitle: ${g.title}\nCompany: ${g.company}\nFrom: ${g.location}\nTopics: ${(g.topics||[]).join(", ")}\nAppeared on: ${g.episode_title}`;
+ }
+ fetch("/api/email",{method:"POST",headers:{"Content-Type":"application/json"},
+ body:JSON.stringify({kind,name,context})})
+ .then(r=>r.json()).then(d=>{
+ if(d.error){out.innerHTML=`<div class="mailpanel" style="color:#e5989b">${esc(d.error)}</div>`;return;}
+ out.innerHTML=`<div class="mailpanel">
+ <div class="row" style="justify-content:space-between"><b>Draft email → ${esc(name)}</b>
+ <span><button class="mailbtn" onclick='genEmail(${JSON.stringify(kind)},${JSON.stringify(name)},${epid})'>↻ Regenerate</button>
+ <button class="mailbtn" onclick="copyMail(this)">Copy</button></span></div>
+ <input id="mailsubj" value="${esc(d.subject)}" style="width:100%;margin:8px 0;font-weight:600">
+ <textarea id="mailbody" style="width:100%;height:200px;background:#0e1116;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:10px">${esc(d.body)}</textarea>
+ </div>`;
+ out.scrollIntoView({behavior:"smooth",block:"nearest"});
+ }).catch(e=>{out.innerHTML=`<div class="mailpanel" style="color:#e5989b">draft failed: ${esc(e.message)}</div>`});
+};
+window.copyMail=btn=>{const s=$("#mailsubj").value,b=$("#mailbody").value;navigator.clipboard.writeText("Subject: "+s+"\n\n"+b);btn.textContent="Copied ✓";setTimeout(()=>btn.textContent="Copy",1500)};
+
window.closeM=()=>$("#modal").classList.remove("on");
$("#modal").onclick=e=>{if(e.target.id==="modal")closeM()};
diff --git a/scripts/synopsize.py b/scripts/synopsize.py
new file mode 100644
index 0000000..5f4ff4f
--- /dev/null
+++ b/scripts/synopsize.py
@@ -0,0 +1,60 @@
+#!/usr/bin/env python3
+"""Generate a short SYNOPSIS per caption-rich video from its transcript (local, $0).
+
+Output: data/synopses.json { "<id>": {"synopsis": "...", "highlights": ["...", ...]} }
+Env: OLLAMA_URL, OLLAMA_MODEL (default qwen2.5:latest), FORCE=1
+"""
+import json, os, re, urllib.request, time
+
+ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
+TDIR = os.path.join(ROOT, "data", "transcripts")
+MANIFEST = os.path.join(ROOT, "data", "manifest.json")
+OUT = os.path.join(ROOT, "data", "synopses.json")
+OLLAMA = os.environ.get("OLLAMA_URL", "http://127.0.0.1:11434")
+MODEL = os.environ.get("OLLAMA_MODEL", "qwen2.5:latest")
+FORCE = os.environ.get("FORCE", "") == "1"
+
+PROMPT = """Summarize this commercial-real-estate interview/panel ("RENTV CRE Talk") for a business reader.
+Return ONLY JSON: {"synopsis":"2-3 sentence plain-English summary of what the episode covered and who was on","highlights":["3-5 short bullet takeaways / topics discussed"]}
+
+EPISODE: {title}
+TRANSCRIPT (excerpt):
+"""
+
+
+def ollama(prompt):
+ body = json.dumps({"model": MODEL, "prompt": prompt, "format": "json", "stream": False,
+ "options": {"temperature": 0.2, "num_ctx": 8192}}).encode()
+ req = urllib.request.Request(OLLAMA + "/api/generate", data=body, headers={"Content-Type": "application/json"})
+ raw = json.load(urllib.request.urlopen(req, timeout=180)).get("response", "").strip()
+ try:
+ return json.loads(raw)
+ except Exception:
+ m = re.search(r"\{.*\}", raw, re.S)
+ return json.loads(m.group(0)) if m else {}
+
+
+def main():
+ man = json.load(open(MANIFEST))
+ vids = [v for v in man["videos"] if v.get("has_captions") and v.get("caption_chars", 0) > 3000]
+ out = json.load(open(OUT)) if os.path.exists(OUT) and not FORCE else {}
+ print(f"[synopsis] {len(vids)} rich videos model={MODEL}")
+ for i, v in enumerate(vids, 1):
+ vid = str(v["id"])
+ if vid in out and not FORCE:
+ continue
+ text = open(os.path.join(TDIR, f"{vid}.txt"), encoding="utf-8").read()
+ excerpt = text[:6000] + "\n...\n" + text[len(text)//2: len(text)//2 + 2000]
+ try:
+ r = ollama(PROMPT.replace("{title}", v["title"]) + excerpt)
+ out[vid] = {"synopsis": r.get("synopsis", ""), "highlights": r.get("highlights", [])}
+ except Exception as e:
+ out[vid] = {"synopsis": "", "highlights": [], "err": str(e)}
+ if i % 5 == 0 or i == len(vids):
+ print(f" [{i}/{len(vids)}] {vid} {v['title'][:40]}")
+ json.dump(out, open(OUT, "w"), indent=1) # incremental save
+ print(f"[synopsis] DONE {len(out)} -> {OUT}")
+
+
+if __name__ == "__main__":
+ main()
diff --git a/server.js b/server.js
index 8592a00..1937264 100644
--- a/server.js
+++ b/server.js
@@ -38,6 +38,8 @@ const server = http.createServer((req, res) => {
if (p === "/api/guests") return send(res, 200, readJSON("guests.json", { guests: [] }));
if (p === "/api/manifest") return send(res, 200, readJSON("manifest.json", { videos: [] }));
if (p === "/api/frames") return send(res, 200, readJSON("frames.json", { frames: [] }));
+ if (p === "/api/synopses") return send(res, 200, readJSON("synopses.json", {}));
+ if (p === "/api/email" && req.method === "POST") return draftEmail(req, res);
if (p === "/api/health") return send(res, 200, { ok: true, ts: Date.now() });
if (p === "/api/stats") {
const a = readJSON("advertisers.json", { advertisers: [] }).advertisers;
@@ -57,6 +59,45 @@ const server = http.createServer((req, res) => {
fs.createReadStream(fp).pipe(res);
});
+// ── AI email drafter (local Ollama, $0) ──
+const OLLAMA = process.env.OLLAMA_URL || "http://127.0.0.1:11434";
+const EMAIL_MODEL = process.env.OLLAMA_MODEL || "qwen2.5:latest";
+function ollama(prompt, cb) {
+ const body = JSON.stringify({ model: EMAIL_MODEL, prompt, format: "json", stream: false, options: { temperature: 0.5, num_ctx: 8192 } });
+ const u = new URL(OLLAMA + "/api/generate");
+ const r = http.request({ hostname: u.hostname, port: u.port, path: u.pathname, method: "POST",
+ headers: { "Content-Type": "application/json", "Content-Length": Buffer.byteLength(body) } }, resp => {
+ let d = ""; resp.on("data", c => d += c); resp.on("end", () => {
+ try { cb(null, JSON.parse(JSON.parse(d).response)); }
+ catch (e) { try { cb(null, JSON.parse((JSON.parse(d).response.match(/\{[\s\S]*\}/) || ["{}"])[0])); } catch (e2) { cb(e2); } }
+ });
+ });
+ r.on("error", cb); r.write(body); r.end();
+}
+function draftEmail(req, res) {
+ let raw = ""; req.on("data", c => raw += c); req.on("end", () => {
+ let b = {}; try { b = JSON.parse(raw); } catch {}
+ const kind = b.kind || "advertiser"; // advertiser | guest
+ const name = b.name || "there";
+ const ctx = (b.context || "").slice(0, 2500);
+ const sender = b.sender || "Steve Bloom, RENTV";
+ const tone = b.tone || "warm, professional, concise";
+ const goal = kind === "guest"
+ ? `Write a follow-up email to a past RENTV "CRE Talk" guest, thanking them for appearing and proposing a next touchpoint (a follow-up episode, a panel invite, or sharing the episode). ${name} is the guest.`
+ : `Write a business-development email from RENTV to ${name}, a company that has advertised/sponsored RENTV's "CRE Talk" show, to renew or expand their advertising and thank them for their partnership. Reference their past sponsorship naturally.`;
+ const prompt = `${goal}
+Tone: ${tone}. Sign as ${sender}. Keep it under 180 words. Do not invent facts not in the context.
+CONTEXT (their extracted profile + episodes):
+${ctx}
+
+Return ONLY JSON: {"subject":"...","body":"...(with line breaks as \\n)..."}`;
+ ollama(prompt, (err, out) => {
+ if (err || !out) return send(res, 200, { subject: "", body: "", error: "draft failed (is Ollama running?)" });
+ send(res, 200, { subject: out.subject || "", body: out.body || "" });
+ });
+ });
+}
+
function send(res, code, obj) {
const body = JSON.stringify(obj);
res.writeHead(code, { "Content-Type": "application/json", "Content-Length": Buffer.byteLength(body) });
← 0c8d277 auto-data-snapshot: 2026-08-07T09:05:06 (12 data files) — da
·
back to Rentv Ad Engine
·
Emails tab: batch-drafted client emails for all 29 advertise 8ae82f6 →