[object Object]

← back to Rentv 2026

feat(social): RENTV Video Library panel — 60 Vimeo CRE Talk assets (localized thumbs, sort/filter/density, copy-link/embed/draft-post) (v0.15.0)

eda14bfaaf97849ee6740fda57774ab20fabd7d7 · 2026-07-31 14:27:18 -0700 · Steve

Files touched

Diff

commit eda14bfaaf97849ee6740fda57774ab20fabd7d7
Author: Steve <steve@designerwallcoverings.com>
Date:   Fri Jul 31 14:27:18 2026 -0700

    feat(social): RENTV Video Library panel — 60 Vimeo CRE Talk assets (localized thumbs, sort/filter/density, copy-link/embed/draft-post) (v0.15.0)
---
 data/vimeo-library.json         | 727 ++++++++++++++++++++++++++++++++++++++++
 package.json                    |   2 +-
 public/img/vimeo/1012976399.jpg | Bin 0 -> 50974 bytes
 public/img/vimeo/1039101858.jpg | Bin 0 -> 48483 bytes
 public/img/vimeo/1056513923.jpg | Bin 0 -> 53855 bytes
 public/img/vimeo/1059913595.jpg | Bin 0 -> 51360 bytes
 public/img/vimeo/1079649123.jpg | Bin 0 -> 51438 bytes
 public/img/vimeo/1083187666.jpg | Bin 0 -> 106487 bytes
 public/img/vimeo/1083187746.jpg | Bin 0 -> 23992 bytes
 public/img/vimeo/1083187814.jpg | Bin 0 -> 20769 bytes
 public/img/vimeo/1083188249.jpg | Bin 0 -> 74503 bytes
 public/img/vimeo/1106281388.jpg | Bin 0 -> 50694 bytes
 public/img/vimeo/1115700624.jpg | Bin 0 -> 51743 bytes
 public/img/vimeo/1138312637.jpg | Bin 0 -> 50832 bytes
 public/img/vimeo/1158999653.jpg | Bin 0 -> 30836 bytes
 public/img/vimeo/1178561985.jpg | Bin 0 -> 53630 bytes
 public/img/vimeo/1199114985.jpg | Bin 0 -> 50463 bytes
 public/img/vimeo/1200839794.jpg | Bin 0 -> 48614 bytes
 public/img/vimeo/171347069.jpg  | Bin 0 -> 47844 bytes
 public/img/vimeo/172014042.jpg  | Bin 0 -> 17133 bytes
 public/img/vimeo/172014125.jpg  | Bin 0 -> 12805 bytes
 public/img/vimeo/172014837.jpg  | Bin 0 -> 38453 bytes
 public/img/vimeo/188261706.jpg  | Bin 0 -> 40661 bytes
 public/img/vimeo/188271441.jpg  | Bin 0 -> 17896 bytes
 public/img/vimeo/208460446.jpg  | Bin 0 -> 15558 bytes
 public/img/vimeo/227217030.jpg  | Bin 0 -> 16663 bytes
 public/img/vimeo/227224358.jpg  | Bin 0 -> 19406 bytes
 public/img/vimeo/228295912.jpg  | Bin 0 -> 24472 bytes
 public/img/vimeo/232088787.jpg  | Bin 0 -> 52611 bytes
 public/img/vimeo/242491490.jpg  | Bin 0 -> 25852 bytes
 public/img/vimeo/308597317.jpg  | Bin 0 -> 31143 bytes
 public/img/vimeo/315327378.jpg  | Bin 0 -> 21041 bytes
 public/img/vimeo/316709134.jpg  | Bin 0 -> 32987 bytes
 public/img/vimeo/429079440.jpg  | Bin 0 -> 81354 bytes
 public/img/vimeo/434219208.jpg  | Bin 0 -> 54610 bytes
 public/img/vimeo/493420423.jpg  | Bin 0 -> 41016 bytes
 public/img/vimeo/503234116.jpg  | Bin 0 -> 3844 bytes
 public/img/vimeo/507211620.jpg  | Bin 0 -> 39649 bytes
 public/img/vimeo/565693580.jpg  | Bin 0 -> 28577 bytes
 public/img/vimeo/721184140.jpg  | Bin 0 -> 65601 bytes
 public/img/vimeo/739081927.jpg  | Bin 0 -> 19582 bytes
 public/img/vimeo/763442741.jpg  | Bin 0 -> 19552 bytes
 public/img/vimeo/763447786.jpg  | Bin 0 -> 19448 bytes
 public/img/vimeo/771348410.jpg  | Bin 0 -> 40017 bytes
 public/img/vimeo/795355693.jpg  | Bin 0 -> 26712 bytes
 public/img/vimeo/811518445.jpg  | Bin 0 -> 24622 bytes
 public/img/vimeo/812981342.jpg  | Bin 0 -> 25733 bytes
 public/img/vimeo/812982818.jpg  | Bin 0 -> 22710 bytes
 public/img/vimeo/830276773.jpg  | Bin 0 -> 21165 bytes
 public/img/vimeo/830279080.jpg  | Bin 0 -> 20665 bytes
 public/img/vimeo/831673533.jpg  | Bin 0 -> 24570 bytes
 public/img/vimeo/852462696.jpg  | Bin 0 -> 50597 bytes
 public/img/vimeo/862593366.jpg  | Bin 0 -> 39089 bytes
 public/img/vimeo/865035925.jpg  | Bin 0 -> 60085 bytes
 public/img/vimeo/868849453.jpg  | Bin 0 -> 49177 bytes
 public/img/vimeo/886025667.jpg  | Bin 0 -> 48808 bytes
 public/img/vimeo/906276616.jpg  | Bin 0 -> 50330 bytes
 public/img/vimeo/911412212.jpg  | Bin 0 -> 46091 bytes
 public/img/vimeo/931863337.jpg  | Bin 0 -> 47752 bytes
 public/img/vimeo/953281926.jpg  | Bin 0 -> 56114 bytes
 public/img/vimeo/978657040.jpg  | Bin 0 -> 67814 bytes
 public/img/vimeo/989909369.jpg  | Bin 0 -> 69804 bytes
 public/social.html              | 110 ++++++
 server.js                       |   6 +
 64 files changed, 844 insertions(+), 1 deletion(-)

diff --git a/data/vimeo-library.json b/data/vimeo-library.json
new file mode 100644
index 00000000..c70b64d1
--- /dev/null
+++ b/data/vimeo-library.json
@@ -0,0 +1,727 @@
+{
+ "source": "https://vimeo.com/user9059207",
+ "fetched_at": "2026-07-31",
+ "count": 60,
+ "items": [
+  {
+   "id": 1200839794,
+   "title": "CRE Talk Episode #22 with Bill Shopoff",
+   "url": "https://vimeo.com/1200839794",
+   "date": "2026-06-12 13:28:16",
+   "duration": 3979,
+   "thumb": "https://i.vimeocdn.com/video/2169770000-0ea0a32bbbee8e3b9c45737f32d58ec2f687bb26e7e5426495da1a51a3b88572-d_640?region=us",
+   "plays": 78,
+   "embed": "https://player.vimeo.com/video/1200839794",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1200839794.jpg"
+  },
+  {
+   "id": 1199114985,
+   "title": "CRE Talk Episode #21 with Daniel Weiss",
+   "url": "https://vimeo.com/1199114985",
+   "date": "2026-06-07 00:34:33",
+   "duration": 4051,
+   "thumb": "https://i.vimeocdn.com/video/2166514816-c98e54d53aa65126895e763788cc145438cc78619335fd4d9595d0442e60ff37-d_640?region=us",
+   "plays": 51,
+   "embed": "https://player.vimeo.com/video/1199114985",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1199114985.jpg"
+  },
+  {
+   "id": 1178561985,
+   "title": "CRE Talk Episode #20 with Colton Sudberry",
+   "url": "https://vimeo.com/1178561985",
+   "date": "2026-03-30 14:22:56",
+   "duration": 3470,
+   "thumb": "https://i.vimeocdn.com/video/2140759192-5b26ce8ec22891f26cbc8d050b5a0730264cf59f536acdced0298ded8c95e9f7-d_640?region=us",
+   "plays": 3478,
+   "embed": "https://player.vimeo.com/video/1178561985",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1178561985.jpg"
+  },
+  {
+   "id": 1158999653,
+   "title": "Elevation Land OBP 012226 w.audio (1)",
+   "url": "https://vimeo.com/1158999653",
+   "date": "2026-01-27 18:17:38",
+   "duration": 105,
+   "thumb": "https://i.vimeocdn.com/video/2113218557-490c1d9d9d83464b28fcf32335c10f7519d4f4f33be5673258c0057284b35a93-d_640?region=us",
+   "plays": 10,
+   "embed": "https://player.vimeo.com/video/1158999653",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/1158999653.jpg"
+  },
+  {
+   "id": 1138312637,
+   "title": "CRE Talk Episode #19 - Chris Tourtellotte",
+   "url": "https://vimeo.com/1138312637",
+   "date": "2025-11-18 19:23:30",
+   "duration": 3700,
+   "thumb": "https://i.vimeocdn.com/video/2085094399-bfe09af988df7d6368152bb9df1dba4c36bfd63e95a6633608ebd6c9c63c665b-d_640?region=us",
+   "plays": 269,
+   "embed": "https://player.vimeo.com/video/1138312637",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1138312637.jpg"
+  },
+  {
+   "id": 1115700624,
+   "title": "CRE Talk  Episode #18 Terry Tallen",
+   "url": "https://vimeo.com/1115700624",
+   "date": "2025-09-03 23:50:39",
+   "duration": 3804,
+   "thumb": "https://i.vimeocdn.com/video/2056617980-26efbeb8c741e1f279bba30111aa07fd26f4d1bf5b42e95adc647a8abd450a54-d_640?region=us",
+   "plays": 174,
+   "embed": "https://player.vimeo.com/video/1115700624",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1115700624.jpg"
+  },
+  {
+   "id": 1106281388,
+   "title": "RENTV CRE Talk Episode #17 Chris Rising",
+   "url": "https://vimeo.com/1106281388",
+   "date": "2025-07-31 17:50:41",
+   "duration": 4122,
+   "thumb": "https://i.vimeocdn.com/video/2044166858-88746fb02c8eb5f5b267cb88c3c2def542f10cb157e4a45d900af72a359ec72e-d_640?region=us",
+   "plays": 95,
+   "embed": "https://player.vimeo.com/video/1106281388",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1106281388.jpg"
+  },
+  {
+   "id": 1083188249,
+   "title": "1000015093",
+   "url": "https://vimeo.com/1083188249",
+   "date": "2025-05-10 15:59:51",
+   "duration": 26,
+   "thumb": "https://i.vimeocdn.com/video/2014336179-114f2175f8d75e010f9aefbfed2a22c7e7ea4142bfd9731e610468527f6d1ce3-d_640?region=us",
+   "plays": 0,
+   "embed": "https://player.vimeo.com/video/1083188249",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/1083188249.jpg"
+  },
+  {
+   "id": 1083187814,
+   "title": "1000015119",
+   "url": "https://vimeo.com/1083187814",
+   "date": "2025-05-10 15:56:27",
+   "duration": 116,
+   "thumb": "https://i.vimeocdn.com/video/2014333831-34ab63c50c95b2e864fe55b8301c3d7f1e2b078a0ad1496952e3bab680968122-d_640?region=us",
+   "plays": 4,
+   "embed": "https://player.vimeo.com/video/1083187814",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/1083187814.jpg"
+  },
+  {
+   "id": 1083187746,
+   "title": "1000015116",
+   "url": "https://vimeo.com/1083187746",
+   "date": "2025-05-10 15:55:55",
+   "duration": 19,
+   "thumb": "https://i.vimeocdn.com/video/2014333334-d5d90abdcf1c1a89b46f935c217f7d5e3be0a8c543c17cc97febf6a125c8b1b8-d_640?region=us",
+   "plays": 1,
+   "embed": "https://player.vimeo.com/video/1083187746",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/1083187746.jpg"
+  },
+  {
+   "id": 1083187666,
+   "title": "1000015101",
+   "url": "https://vimeo.com/1083187666",
+   "date": "2025-05-10 15:55:15",
+   "duration": 23,
+   "thumb": "https://i.vimeocdn.com/video/2014333261-5fa0713295dec4e76d807f30f92d0f7e18a6f633407239787b911ab22186e2f7-d_640?region=us",
+   "plays": 1,
+   "embed": "https://player.vimeo.com/video/1083187666",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/1083187666.jpg"
+  },
+  {
+   "id": 1079649123,
+   "title": "RENTV CRE Talk Episode #16 - Alex Zikakis",
+   "url": "https://vimeo.com/1079649123",
+   "date": "2025-04-28 22:57:59",
+   "duration": 3750,
+   "thumb": "https://i.vimeocdn.com/video/2010411638-d1ce6c03cee0253e779c50b275e2c8485a8568fc397c062042046bc26ea79f1b-d_640?region=us",
+   "plays": 164,
+   "embed": "https://player.vimeo.com/video/1079649123",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1079649123.jpg"
+  },
+  {
+   "id": 1059913595,
+   "title": "RENTV CRE Talk Episode #15 - Marc Brutten",
+   "url": "https://vimeo.com/1059913595",
+   "date": "2025-02-24 18:39:10",
+   "duration": 4111,
+   "thumb": "https://i.vimeocdn.com/video/1986858612-00e7e47c88e740378fe869a81c4ec6a4b12f768e748a50f4c0980c51f62dd2e9-d_640?region=us",
+   "plays": 24922,
+   "embed": "https://player.vimeo.com/video/1059913595",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1059913595.jpg"
+  },
+  {
+   "id": 1056513923,
+   "title": "RENTV CRE Talk Episode #14 - John McNellis",
+   "url": "https://vimeo.com/1056513923",
+   "date": "2025-02-13 13:49:24",
+   "duration": 3012,
+   "thumb": "https://i.vimeocdn.com/video/1984914036-b754fa579c09fdc6bae49c36fd28221667291340ae27ad064127c9fc8599fca7-d_640?region=us",
+   "plays": 79,
+   "embed": "https://player.vimeo.com/video/1056513923",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1056513923.jpg"
+  },
+  {
+   "id": 1039101858,
+   "title": "RENTV CRE Talk Episode #13 - Ethan Penner",
+   "url": "https://vimeo.com/1039101858",
+   "date": "2024-12-13 17:54:48",
+   "duration": 4613,
+   "thumb": "https://i.vimeocdn.com/video/1962184347-f8036566909cc6dd84b965f6da9fbac5173bb4a39fa7327baf5d6b3445f53a4b-d_640?region=us",
+   "plays": 166,
+   "embed": "https://player.vimeo.com/video/1039101858",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1039101858.jpg"
+  },
+  {
+   "id": 1012976399,
+   "title": "RENTV CRE Talk Episode #12 - Kaitlin Arduino",
+   "url": "https://vimeo.com/1012976399",
+   "date": "2024-09-25 20:16:39",
+   "duration": 3050,
+   "thumb": "https://i.vimeocdn.com/video/1931197730-0fb2fc071dfa8a9a4a095e143df4da842cfbeebada4783b5922ba1e844ac2db6-d_640?region=us",
+   "plays": 78,
+   "embed": "https://player.vimeo.com/video/1012976399",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/1012976399.jpg"
+  },
+  {
+   "id": 989909369,
+   "title": "The Industrial Panel at RENTV's Orange County State of the Market Conference",
+   "url": "https://vimeo.com/989909369",
+   "date": "2024-07-24 23:31:42",
+   "duration": 3066,
+   "thumb": "https://i.vimeocdn.com/video/1906229718-7a6bcdd08a48edcd87c66b71a0c44bdc9c853892917be71b438dcb6ba5fc077b-d_640?region=us",
+   "plays": 36,
+   "embed": "https://player.vimeo.com/video/989909369",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/989909369.jpg"
+  },
+  {
+   "id": 978657040,
+   "title": "The Multifamily Panel at RENTV's Orange County State of the Market Conference",
+   "url": "https://vimeo.com/978657040",
+   "date": "2024-07-05 21:59:33",
+   "duration": 2500,
+   "thumb": "https://i.vimeocdn.com/video/1897565264-5567c6cba5ad11b9c1856da21778fdd4226327efa49afca913fc93d9e1635021-d_640?region=us",
+   "plays": 12,
+   "embed": "https://player.vimeo.com/video/978657040",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/978657040.jpg"
+  },
+  {
+   "id": 953281926,
+   "title": "RENTV CRE Talk Episode #11 - Michael Rademaker",
+   "url": "https://vimeo.com/953281926",
+   "date": "2024-06-03 15:31:29",
+   "duration": 3656,
+   "thumb": "https://i.vimeocdn.com/video/1864960388-8ea5ef1e6351dd947ac6fbfd59aa288fc7ea0e90e6f77cb99d829f98de4388e3-d_640?region=us",
+   "plays": 145,
+   "embed": "https://player.vimeo.com/video/953281926",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/953281926.jpg"
+  },
+  {
+   "id": 931863337,
+   "title": "RENTV CRE Talk Episode #10 Henry Manoucheri",
+   "url": "https://vimeo.com/931863337",
+   "date": "2024-04-07 20:28:28",
+   "duration": 3678,
+   "thumb": "https://i.vimeocdn.com/video/1833077460-0fe13a27a22235dcfec4c27b58c173a25216da439eddb8da097b2e8dba2c1b70-d_640?region=us",
+   "plays": 162,
+   "embed": "https://player.vimeo.com/video/931863337",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/931863337.jpg"
+  },
+  {
+   "id": 911412212,
+   "title": "RENTV CRE Talk Episode #9 Eddie Ring",
+   "url": "https://vimeo.com/911412212",
+   "date": "2024-02-08 20:18:24",
+   "duration": 4139,
+   "thumb": "https://i.vimeocdn.com/video/1798554135-27b7c6e784e773ae6ffa4cea47c25fbb274e07749817a7c93daa1af01e47cd19-d_640?region=us",
+   "plays": 97,
+   "embed": "https://player.vimeo.com/video/911412212",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/911412212.jpg"
+  },
+  {
+   "id": 906276616,
+   "title": "RENTV CRE Talk Episode #8 Erwin Bucy",
+   "url": "https://vimeo.com/906276616",
+   "date": "2024-01-25 03:01:40",
+   "duration": 3601,
+   "thumb": "https://i.vimeocdn.com/video/1788353836-22afa88f4ef731b198e53c3957d06043c07801a1893343430ded019961bae7b5-d_640?region=us",
+   "plays": 126,
+   "embed": "https://player.vimeo.com/video/906276616",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/906276616.jpg"
+  },
+  {
+   "id": 886025667,
+   "title": "RENTV CRE Talk Episode #7 Chuck Hershson",
+   "url": "https://vimeo.com/886025667",
+   "date": "2023-11-18 18:51:22",
+   "duration": 3521,
+   "thumb": "https://i.vimeocdn.com/video/1757431275-3e98d1638bc1f08067bb6f195f2618c0f9483f6460e0284ba70d2886722fa27c-d_640?region=us",
+   "plays": 80,
+   "embed": "https://player.vimeo.com/video/886025667",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/886025667.jpg"
+  },
+  {
+   "id": 868849453,
+   "title": "RENTV CRE Talk Episode #6 Barry Saywitz",
+   "url": "https://vimeo.com/868849453",
+   "date": "2023-09-27 14:34:04",
+   "duration": 3690,
+   "thumb": "https://i.vimeocdn.com/video/1734139149-0c4f3089aeac0f1736811d2619000570c0c6b4d85cacb78b117210cd77df2461-d_640?region=us",
+   "plays": 71,
+   "embed": "https://player.vimeo.com/video/868849453",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/868849453.jpg"
+  },
+  {
+   "id": 865035925,
+   "title": "The Multifamily Panel at RENTV's Greater LA State of the Market Conference",
+   "url": "https://vimeo.com/865035925",
+   "date": "2023-09-16 01:50:20",
+   "duration": 3078,
+   "thumb": "https://i.vimeocdn.com/video/1727261634-5b490a0906107bf50e0ac012b40c6829f8d44166dce0efe8bed932f425c57c71-d_640?region=us",
+   "plays": 97,
+   "embed": "https://player.vimeo.com/video/865035925",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/865035925.jpg"
+  },
+  {
+   "id": 862593366,
+   "title": "The Finance Panel at RENTV's Greater LA State of the Market Conference",
+   "url": "https://vimeo.com/862593366",
+   "date": "2023-09-08 22:01:06",
+   "duration": 3466,
+   "thumb": "https://i.vimeocdn.com/video/1721501396-d1c40a537b950c4207aac74fe48efd54017cf3db8c2b385fbecb7df4654cc98c-d_640?region=us",
+   "plays": 70,
+   "embed": "https://player.vimeo.com/video/862593366",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/862593366.jpg"
+  },
+  {
+   "id": 852462696,
+   "title": "RENTV CRE Talk Episode #5 Barry DiRaimondo",
+   "url": "https://vimeo.com/852462696",
+   "date": "2023-08-07 16:21:34",
+   "duration": 3910,
+   "thumb": "https://i.vimeocdn.com/video/1708603588-c4024c36ac79eed69caa990a6a07d26cdd04d68b3af9db3ae6f17d27b71c5df6-d_640?region=us",
+   "plays": 151,
+   "embed": "https://player.vimeo.com/video/852462696",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/852462696.jpg"
+  },
+  {
+   "id": 831673533,
+   "title": "RENTV CRE Talk Episode #4 John McNellis",
+   "url": "https://vimeo.com/831673533",
+   "date": "2023-05-30 17:50:59",
+   "duration": 3175,
+   "thumb": "https://i.vimeocdn.com/video/1677180902-3d17dfbdc2f660446caeea5732e9b3da7f15758cc36daac656e073fe89df6e15-d_640?region=us",
+   "plays": 165,
+   "embed": "https://player.vimeo.com/video/831673533",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/831673533.jpg"
+  },
+  {
+   "id": 830279080,
+   "title": "The Office Panel at RENTV's Inland Empire State of The Market Conference",
+   "url": "https://vimeo.com/830279080",
+   "date": "2023-05-25 12:48:35",
+   "duration": 2526,
+   "thumb": "https://i.vimeocdn.com/video/1675016569-791bda4becc202e15da34f66f24f45eb1e5f43fcd56f1ec9fa8422b49e051dce-d_640?region=us",
+   "plays": 32,
+   "embed": "https://player.vimeo.com/video/830279080",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/830279080.jpg"
+  },
+  {
+   "id": 830276773,
+   "title": "The Retail Panel at RENTV's Inland Empire State of The Market Conference",
+   "url": "https://vimeo.com/830276773",
+   "date": "2023-05-25 12:41:20",
+   "duration": 2490,
+   "thumb": "https://i.vimeocdn.com/video/1675013114-788213b54ab79ae52124140f72888282dde3152895e4cdaa0213c3370545f8be-d_640?region=us",
+   "plays": 27,
+   "embed": "https://player.vimeo.com/video/830276773",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/830276773.jpg"
+  },
+  {
+   "id": 812982818,
+   "title": "RENTV ORANGE COUNTY RETAIL PANEL MARCH 16, 2023",
+   "url": "https://vimeo.com/812982818",
+   "date": "2023-03-29 18:02:32",
+   "duration": 2724,
+   "thumb": "https://i.vimeocdn.com/video/1643927686-399b494f34f2927037d914a9cb04aedd1e83ee12a6ff8e9c0dca51d4367d5e91-d_640?region=us",
+   "plays": 16,
+   "embed": "https://player.vimeo.com/video/812982818",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/812982818.jpg"
+  },
+  {
+   "id": 812981342,
+   "title": "RENTV CRE Talk Episode #3 - Michael Van Every",
+   "url": "https://vimeo.com/812981342",
+   "date": "2023-03-29 17:56:41",
+   "duration": 3029,
+   "thumb": "https://i.vimeocdn.com/video/1643923477-568f8b4b1fdc6e4d96d73c819bb8287c2147e7366d6249997b26404fca777004-d_640?region=us",
+   "plays": 31,
+   "embed": "https://player.vimeo.com/video/812981342",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/812981342.jpg"
+  },
+  {
+   "id": 811518445,
+   "title": "RENTV ORANGE COUNTY OFFICE PANEL MARCH 16, 2023",
+   "url": "https://vimeo.com/811518445",
+   "date": "2023-03-25 02:07:01",
+   "duration": 3296,
+   "thumb": "https://i.vimeocdn.com/video/1640310216-e3c01ffa5b65752899bd8a92f6883365b078866779d8bc09ef103a5f66efb9e1-d_640?region=us",
+   "plays": 40,
+   "embed": "https://player.vimeo.com/video/811518445",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/811518445.jpg"
+  },
+  {
+   "id": 795355693,
+   "title": "RENTV CRE Talk Episode #2 - Sandy Sigal",
+   "url": "https://vimeo.com/795355693",
+   "date": "2023-02-02 14:40:25",
+   "duration": 2883,
+   "thumb": "https://i.vimeocdn.com/video/1601922095-39efd15dff1490b2208a13b52e35d497fe33ff99e3ba6ad3eacd8f02bde287a6-d_640?region=us",
+   "plays": 123,
+   "embed": "https://player.vimeo.com/video/795355693",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/795355693.jpg"
+  },
+  {
+   "id": 771348410,
+   "title": "RENTV CRE Talk Episode #1 - Bill Shopoff",
+   "url": "https://vimeo.com/771348410",
+   "date": "2022-11-15 17:42:36",
+   "duration": 3065,
+   "thumb": "https://i.vimeocdn.com/video/1553727993-e68ef6ac0c9528cdbc41dcae533eef93331034488821627e9620423864de6aa6-d_640?region=us",
+   "plays": 6265,
+   "embed": "https://player.vimeo.com/video/771348410",
+   "kind": "episode",
+   "thumb_local": "/img/vimeo/771348410.jpg"
+  },
+  {
+   "id": 763447786,
+   "title": "RENTV FINANCE OCT 19 2022.mp4",
+   "url": "https://vimeo.com/763447786",
+   "date": "2022-10-24 12:01:54",
+   "duration": 2355,
+   "thumb": "https://i.vimeocdn.com/video/1533223037-845e2ee239044940693a39d6e1bb5d20fa1e075ccbdc14489d276b78ed2596f8-d_640?region=us",
+   "plays": 48,
+   "embed": "https://player.vimeo.com/video/763447786",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/763447786.jpg"
+  },
+  {
+   "id": 763442741,
+   "title": "RENTV INDUSTRIAL OCT 19 2022.mp4",
+   "url": "https://vimeo.com/763442741",
+   "date": "2022-10-24 11:50:59",
+   "duration": 2666,
+   "thumb": "https://i.vimeocdn.com/video/1533215945-2df8957b5b498e336a3292901645e0e485064feb2831ae78589c69850593303a-d_640?region=us",
+   "plays": 51,
+   "embed": "https://player.vimeo.com/video/763442741",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/763442741.jpg"
+  },
+  {
+   "id": 739081927,
+   "title": "RENTV ORANGE COUNTY MULTIFAMILY PANEL July 26, 2022",
+   "url": "https://vimeo.com/739081927",
+   "date": "2022-08-12 16:09:49",
+   "duration": 3876,
+   "thumb": "https://i.vimeocdn.com/video/1490664632-6590c24ea2acce5543eef374e818477861303b6ec93eec8d7a57a9dba9ac111c-d_640?region=us",
+   "plays": 46,
+   "embed": "https://player.vimeo.com/video/739081927",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/739081927.jpg"
+  },
+  {
+   "id": 721184140,
+   "title": "CLIC Vlog w Steve Bloom.mov",
+   "url": "https://vimeo.com/721184140",
+   "date": "2022-06-16 15:02:03",
+   "duration": 210,
+   "thumb": "https://i.vimeocdn.com/video/1452447081-b2d4946374e96296686b557d6a79e34f1b3717761ffe9e95b5f5a6f3886dcc6b-d_640?region=us",
+   "plays": 0,
+   "embed": "https://player.vimeo.com/video/721184140",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/721184140.jpg"
+  },
+  {
+   "id": 565693580,
+   "title": "SMART CITY",
+   "url": "https://vimeo.com/565693580",
+   "date": "2021-06-21 12:20:18",
+   "duration": 1041,
+   "thumb": "https://i.vimeocdn.com/video/1169699773-d094a6c7584c4069918c53b3b4aacd11ddb1d4cf02b946b20cd9e143ba3c8b71-d_640?region=us",
+   "plays": 28,
+   "embed": "https://player.vimeo.com/video/565693580",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/565693580.jpg"
+  },
+  {
+   "id": 507211620,
+   "title": "SYNERGY VIDEO",
+   "url": "https://vimeo.com/507211620",
+   "date": "2021-02-01 14:06:06",
+   "duration": 37,
+   "thumb": "https://i.vimeocdn.com/video/1049799061-66a41515f12bd1d14e66cef2337f27154d3ac0986945832e84ffb92881c72c4f-d_640?region=us",
+   "plays": 3,
+   "embed": "https://player.vimeo.com/video/507211620",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/507211620.jpg"
+  },
+  {
+   "id": 503234116,
+   "title": "GANTRY Video_VO",
+   "url": "https://vimeo.com/503234116",
+   "date": "2021-01-21 17:08:58",
+   "duration": 55,
+   "thumb": "https://i.vimeocdn.com/video/1041094637-68e54c929015f11e2c526e7a3ab00ffbfabfa93fc62ad75d9cea875867a525bf-d_640?region=us",
+   "plays": 16,
+   "embed": "https://player.vimeo.com/video/503234116",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/503234116.jpg"
+  },
+  {
+   "id": 493420423,
+   "title": "F & F Income Properties - Your San Diego Family Mutifamily Owner",
+   "url": "https://vimeo.com/493420423",
+   "date": "2020-12-21 11:56:53",
+   "duration": 29,
+   "thumb": "https://i.vimeocdn.com/video/1020380254-74c76684395baaff0c5ff1798d98cb34f937dd8717ce0952e14f8d48277bf129-d_640?region=us",
+   "plays": 165,
+   "embed": "https://player.vimeo.com/video/493420423",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/493420423.jpg"
+  },
+  {
+   "id": 434219208,
+   "title": "Commercial Real Estate Inspectors Video 1 6 30 20",
+   "url": "https://vimeo.com/434219208",
+   "date": "2020-06-30 23:36:26",
+   "duration": 111,
+   "thumb": "https://i.vimeocdn.com/video/917196346-bf475b63707e0a49dbaa4f500f6bc29344d0bb7fe8b73b07cdfaca92cc3fd894-d_640?region=us",
+   "plays": 4,
+   "embed": "https://player.vimeo.com/video/434219208",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/434219208.jpg"
+  },
+  {
+   "id": 429079440,
+   "title": "CapitalRiversCovidFinal",
+   "url": "https://vimeo.com/429079440",
+   "date": "2020-06-14 17:33:41",
+   "duration": 35,
+   "thumb": "https://i.vimeocdn.com/video/908924183-a5a89e999bb30956e55ed7dde7da599e496f701cd5098bc526ae51f2d03708ea-d_640?region=us",
+   "plays": 36,
+   "embed": "https://player.vimeo.com/video/429079440",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/429079440.jpg"
+  },
+  {
+   "id": 316709134,
+   "title": "A Glimpse of One Paseo in San Diego",
+   "url": "https://vimeo.com/316709134",
+   "date": "2019-02-12 00:34:17",
+   "duration": 62,
+   "thumb": "https://i.vimeocdn.com/video/758784950-8a5077b1155fdb86369f21928850b8051b41c7fa2dfb7c85c3dcd93d3ea0f296-d_640?region=us",
+   "plays": 1785,
+   "embed": "https://player.vimeo.com/video/316709134",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/316709134.jpg"
+  },
+  {
+   "id": 315327378,
+   "title": "Kilroy Realty's Oyster Point - An Aerial Introduction",
+   "url": "https://vimeo.com/315327378",
+   "date": "2019-02-04 17:00:16",
+   "duration": 73,
+   "thumb": "https://i.vimeocdn.com/video/757074351-ad307c9ee8e5325968cd90dd26e28de6220dd0e41b122ded04a14cbb15c4ffdc-d_640?region=us",
+   "plays": 338,
+   "embed": "https://player.vimeo.com/video/315327378",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/315327378.jpg"
+  },
+  {
+   "id": 308597317,
+   "title": "Introducing The Center at Needham Ranch",
+   "url": "https://vimeo.com/308597317",
+   "date": "2018-12-28 14:03:02",
+   "duration": 152,
+   "thumb": "https://i.vimeocdn.com/video/749054931-f7e83a595d5296ee3c6df2e16423d66dc000a5fde1750b85a1c5bd0b1b2a517d-d_640?region=us",
+   "plays": 12489,
+   "embed": "https://player.vimeo.com/video/308597317",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/308597317.jpg"
+  },
+  {
+   "id": 242491490,
+   "title": "Brandon Birtcher, CEO of Birtcher Development, LLC, Keynote Address at RENTV's South Bay/Long Beach Conference 10.18.17",
+   "url": "https://vimeo.com/242491490",
+   "date": "2017-11-12 18:04:10",
+   "duration": 1999,
+   "thumb": "https://i.vimeocdn.com/video/666749033-a71fec49d292313634097e368610707d09614f855dfbc0f3c86a9d96e1ad3595-d_640?region=us",
+   "plays": 47497,
+   "embed": "https://player.vimeo.com/video/242491490",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/242491490.jpg"
+  },
+  {
+   "id": 232088787,
+   "title": "Introduction to Pacific Castle 1 Q 2005",
+   "url": "https://vimeo.com/232088787",
+   "date": "2017-09-01 15:50:47",
+   "duration": 664,
+   "thumb": "https://i.vimeocdn.com/video/653061078-92f8a60f5d8ebe7e33e5747b12cf75ac5f9de31dd2343665d56ed37ce1c48f6a-d_640?region=us",
+   "plays": 16,
+   "embed": "https://player.vimeo.com/video/232088787",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/232088787.jpg"
+  },
+  {
+   "id": 228295912,
+   "title": "Yat-Pang Au, Founder & CEO of Veritas Investments - Keynote Address at RENTV's DT San Francisco Conference 7/20/17",
+   "url": "https://vimeo.com/228295912",
+   "date": "2017-08-03 19:09:02",
+   "duration": 1366,
+   "thumb": "https://i.vimeocdn.com/video/649834046-da41d1a8f3331aa92e2a619f88bf8af3fc6694388ba13c77864f4593147b0577-d_640?region=us",
+   "plays": 13791,
+   "embed": "https://player.vimeo.com/video/228295912",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/228295912.jpg"
+  },
+  {
+   "id": 227224358,
+   "title": "Office Panel at RENTV's Downtown Los Angeles State of the Market Conference - April 2017",
+   "url": "https://vimeo.com/227224358",
+   "date": "2017-07-27 04:32:11",
+   "duration": 2191,
+   "thumb": "https://i.vimeocdn.com/video/648074006-5da7445069eb360ebb25836984e5b61427c056b961f5e90aaddabdd917189897-d_640?region=us",
+   "plays": 1088,
+   "embed": "https://player.vimeo.com/video/227224358",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/227224358.jpg"
+  },
+  {
+   "id": 227217030,
+   "title": "Metropolis Los Angeles, Presentation by Ryan Aubry. Director of Development, Greenland USA",
+   "url": "https://vimeo.com/227217030",
+   "date": "2017-07-27 02:59:47",
+   "duration": 1037,
+   "thumb": "https://i.vimeocdn.com/video/648080960-3d112d339f6e2c7784652750451c8888dff57d57dafdad19bdabaa07c7117565-d_640?region=us",
+   "plays": 1462,
+   "embed": "https://player.vimeo.com/video/227217030",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/227217030.jpg"
+  },
+  {
+   "id": 208460446,
+   "title": "Industrial Panel at RENTV's San Jose/SIlicon Valley State of the Market Conference - Feb 2017",
+   "url": "https://vimeo.com/208460446",
+   "date": "2017-03-15 06:15:24",
+   "duration": 3334,
+   "thumb": "https://i.vimeocdn.com/video/625392104-f311e590551f2ac7fdb2bfa9ce80aab868e711928af8f60a17d9330224ec87c4-d_640?region=us",
+   "plays": 642,
+   "embed": "https://player.vimeo.com/video/208460446",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/208460446.jpg"
+  },
+  {
+   "id": 188271441,
+   "title": "Retail Panel at RENTV's Westside of LA State of the Market Conference - Aug, 2016",
+   "url": "https://vimeo.com/188271441",
+   "date": "2016-10-21 05:43:28",
+   "duration": 2907,
+   "thumb": "https://i.vimeocdn.com/video/599927840-56af35864608f319e39e0ec5f5de6b7e737c719e2da61c9ac6fd20e551588af8-d_640?region=us",
+   "plays": 2824,
+   "embed": "https://player.vimeo.com/video/188271441",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/188271441.jpg"
+  },
+  {
+   "id": 188261706,
+   "title": "Westside Hotel Development and One Beverly Hills",
+   "url": "https://vimeo.com/188261706",
+   "date": "2016-10-21 03:56:22",
+   "duration": 2502,
+   "thumb": "https://i.vimeocdn.com/video/598283747-876c551db9a72a4c69a92da7556c0b03313a72a55d4077407c98e357c5308f80-d_640?region=us",
+   "plays": 25205,
+   "embed": "https://player.vimeo.com/video/188261706",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/188261706.jpg"
+  },
+  {
+   "id": 172014837,
+   "title": "Office Panel at RENTV's Sacramento State of the Market Conference - May, 2016",
+   "url": "https://vimeo.com/172014837",
+   "date": "2016-06-23 17:09:46",
+   "duration": 2806,
+   "thumb": "https://i.vimeocdn.com/video/577625433-00865546ce6923edae52eba83956dcc85b74862fd05c8722d501ea02a19a571b-d_640?region=us",
+   "plays": 141,
+   "embed": "https://player.vimeo.com/video/172014837",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/172014837.jpg"
+  },
+  {
+   "id": 172014125,
+   "title": "The new Sacramento Airport hotel -  RENTV's Sacramento State of the Market Conference - May, 2016",
+   "url": "https://vimeo.com/172014125",
+   "date": "2016-06-23 17:05:49",
+   "duration": 2122,
+   "thumb": "https://i.vimeocdn.com/video/595897609-ecb780a06bbaff5ef002df7622f76cdf11758ad6b8baa90aa36c0cb9b2c1062b-d_640?region=us",
+   "plays": 45,
+   "embed": "https://player.vimeo.com/video/172014125",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/172014125.jpg"
+  },
+  {
+   "id": 172014042,
+   "title": "Industrial Discussion at RENTV's Sacramento State of the Market Conference - May, 2016",
+   "url": "https://vimeo.com/172014042",
+   "date": "2016-06-23 17:05:23",
+   "duration": 2535,
+   "thumb": "https://i.vimeocdn.com/video/593563669-68071584fa018ba1edd768867f49c56e3def64068b25cb7efdeadf6ad5db43b7-d_640?region=us",
+   "plays": 7,
+   "embed": "https://player.vimeo.com/video/172014042",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/172014042.jpg"
+  },
+  {
+   "id": 171347069,
+   "title": "Industrial Panel at RENTV's Inland Empire State of The Market Conference - May, 2016",
+   "url": "https://vimeo.com/171347069",
+   "date": "2016-06-19 21:56:28",
+   "duration": 3096,
+   "thumb": "https://i.vimeocdn.com/video/599781986-6682f5b852de617fb56e5b2a9acbd3020c104243647fd7ed18e91ad2f0b06857-d_640?region=us",
+   "plays": 29,
+   "embed": "https://player.vimeo.com/video/171347069",
+   "kind": "clip",
+   "thumb_local": "/img/vimeo/171347069.jpg"
+  }
+ ]
+}
\ No newline at end of file
diff --git a/package.json b/package.json
index 86398314..80f35e0d 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "rentv",
-  "version": "0.13.1",
+  "version": "0.15.0",
   "private": true,
   "main": "server.js",
   "scripts": {
diff --git a/public/img/vimeo/1012976399.jpg b/public/img/vimeo/1012976399.jpg
new file mode 100644
index 00000000..7bafcbf5
Binary files /dev/null and b/public/img/vimeo/1012976399.jpg differ
diff --git a/public/img/vimeo/1039101858.jpg b/public/img/vimeo/1039101858.jpg
new file mode 100644
index 00000000..d26a9902
Binary files /dev/null and b/public/img/vimeo/1039101858.jpg differ
diff --git a/public/img/vimeo/1056513923.jpg b/public/img/vimeo/1056513923.jpg
new file mode 100644
index 00000000..34246d07
Binary files /dev/null and b/public/img/vimeo/1056513923.jpg differ
diff --git a/public/img/vimeo/1059913595.jpg b/public/img/vimeo/1059913595.jpg
new file mode 100644
index 00000000..c8b5ae92
Binary files /dev/null and b/public/img/vimeo/1059913595.jpg differ
diff --git a/public/img/vimeo/1079649123.jpg b/public/img/vimeo/1079649123.jpg
new file mode 100644
index 00000000..77437ca2
Binary files /dev/null and b/public/img/vimeo/1079649123.jpg differ
diff --git a/public/img/vimeo/1083187666.jpg b/public/img/vimeo/1083187666.jpg
new file mode 100644
index 00000000..4600d299
Binary files /dev/null and b/public/img/vimeo/1083187666.jpg differ
diff --git a/public/img/vimeo/1083187746.jpg b/public/img/vimeo/1083187746.jpg
new file mode 100644
index 00000000..4a310dff
Binary files /dev/null and b/public/img/vimeo/1083187746.jpg differ
diff --git a/public/img/vimeo/1083187814.jpg b/public/img/vimeo/1083187814.jpg
new file mode 100644
index 00000000..a8d5c237
Binary files /dev/null and b/public/img/vimeo/1083187814.jpg differ
diff --git a/public/img/vimeo/1083188249.jpg b/public/img/vimeo/1083188249.jpg
new file mode 100644
index 00000000..b2ff7b5a
Binary files /dev/null and b/public/img/vimeo/1083188249.jpg differ
diff --git a/public/img/vimeo/1106281388.jpg b/public/img/vimeo/1106281388.jpg
new file mode 100644
index 00000000..8704ba95
Binary files /dev/null and b/public/img/vimeo/1106281388.jpg differ
diff --git a/public/img/vimeo/1115700624.jpg b/public/img/vimeo/1115700624.jpg
new file mode 100644
index 00000000..cd055b10
Binary files /dev/null and b/public/img/vimeo/1115700624.jpg differ
diff --git a/public/img/vimeo/1138312637.jpg b/public/img/vimeo/1138312637.jpg
new file mode 100644
index 00000000..d300ed16
Binary files /dev/null and b/public/img/vimeo/1138312637.jpg differ
diff --git a/public/img/vimeo/1158999653.jpg b/public/img/vimeo/1158999653.jpg
new file mode 100644
index 00000000..4a2f44d6
Binary files /dev/null and b/public/img/vimeo/1158999653.jpg differ
diff --git a/public/img/vimeo/1178561985.jpg b/public/img/vimeo/1178561985.jpg
new file mode 100644
index 00000000..d0515f92
Binary files /dev/null and b/public/img/vimeo/1178561985.jpg differ
diff --git a/public/img/vimeo/1199114985.jpg b/public/img/vimeo/1199114985.jpg
new file mode 100644
index 00000000..fdc669d2
Binary files /dev/null and b/public/img/vimeo/1199114985.jpg differ
diff --git a/public/img/vimeo/1200839794.jpg b/public/img/vimeo/1200839794.jpg
new file mode 100644
index 00000000..e3c9d7b5
Binary files /dev/null and b/public/img/vimeo/1200839794.jpg differ
diff --git a/public/img/vimeo/171347069.jpg b/public/img/vimeo/171347069.jpg
new file mode 100644
index 00000000..5eeff1fa
Binary files /dev/null and b/public/img/vimeo/171347069.jpg differ
diff --git a/public/img/vimeo/172014042.jpg b/public/img/vimeo/172014042.jpg
new file mode 100644
index 00000000..e1b9948a
Binary files /dev/null and b/public/img/vimeo/172014042.jpg differ
diff --git a/public/img/vimeo/172014125.jpg b/public/img/vimeo/172014125.jpg
new file mode 100644
index 00000000..1800e302
Binary files /dev/null and b/public/img/vimeo/172014125.jpg differ
diff --git a/public/img/vimeo/172014837.jpg b/public/img/vimeo/172014837.jpg
new file mode 100644
index 00000000..f9069064
Binary files /dev/null and b/public/img/vimeo/172014837.jpg differ
diff --git a/public/img/vimeo/188261706.jpg b/public/img/vimeo/188261706.jpg
new file mode 100644
index 00000000..cabf68b9
Binary files /dev/null and b/public/img/vimeo/188261706.jpg differ
diff --git a/public/img/vimeo/188271441.jpg b/public/img/vimeo/188271441.jpg
new file mode 100644
index 00000000..e415fb82
Binary files /dev/null and b/public/img/vimeo/188271441.jpg differ
diff --git a/public/img/vimeo/208460446.jpg b/public/img/vimeo/208460446.jpg
new file mode 100644
index 00000000..800e3083
Binary files /dev/null and b/public/img/vimeo/208460446.jpg differ
diff --git a/public/img/vimeo/227217030.jpg b/public/img/vimeo/227217030.jpg
new file mode 100644
index 00000000..17d8505c
Binary files /dev/null and b/public/img/vimeo/227217030.jpg differ
diff --git a/public/img/vimeo/227224358.jpg b/public/img/vimeo/227224358.jpg
new file mode 100644
index 00000000..4c1d6b90
Binary files /dev/null and b/public/img/vimeo/227224358.jpg differ
diff --git a/public/img/vimeo/228295912.jpg b/public/img/vimeo/228295912.jpg
new file mode 100644
index 00000000..76dfb56f
Binary files /dev/null and b/public/img/vimeo/228295912.jpg differ
diff --git a/public/img/vimeo/232088787.jpg b/public/img/vimeo/232088787.jpg
new file mode 100644
index 00000000..a9c5f4dc
Binary files /dev/null and b/public/img/vimeo/232088787.jpg differ
diff --git a/public/img/vimeo/242491490.jpg b/public/img/vimeo/242491490.jpg
new file mode 100644
index 00000000..932219af
Binary files /dev/null and b/public/img/vimeo/242491490.jpg differ
diff --git a/public/img/vimeo/308597317.jpg b/public/img/vimeo/308597317.jpg
new file mode 100644
index 00000000..912cdd21
Binary files /dev/null and b/public/img/vimeo/308597317.jpg differ
diff --git a/public/img/vimeo/315327378.jpg b/public/img/vimeo/315327378.jpg
new file mode 100644
index 00000000..6d360a15
Binary files /dev/null and b/public/img/vimeo/315327378.jpg differ
diff --git a/public/img/vimeo/316709134.jpg b/public/img/vimeo/316709134.jpg
new file mode 100644
index 00000000..23a4d7f6
Binary files /dev/null and b/public/img/vimeo/316709134.jpg differ
diff --git a/public/img/vimeo/429079440.jpg b/public/img/vimeo/429079440.jpg
new file mode 100644
index 00000000..5378f032
Binary files /dev/null and b/public/img/vimeo/429079440.jpg differ
diff --git a/public/img/vimeo/434219208.jpg b/public/img/vimeo/434219208.jpg
new file mode 100644
index 00000000..310a6076
Binary files /dev/null and b/public/img/vimeo/434219208.jpg differ
diff --git a/public/img/vimeo/493420423.jpg b/public/img/vimeo/493420423.jpg
new file mode 100644
index 00000000..d551527e
Binary files /dev/null and b/public/img/vimeo/493420423.jpg differ
diff --git a/public/img/vimeo/503234116.jpg b/public/img/vimeo/503234116.jpg
new file mode 100644
index 00000000..7a111581
Binary files /dev/null and b/public/img/vimeo/503234116.jpg differ
diff --git a/public/img/vimeo/507211620.jpg b/public/img/vimeo/507211620.jpg
new file mode 100644
index 00000000..bb925f08
Binary files /dev/null and b/public/img/vimeo/507211620.jpg differ
diff --git a/public/img/vimeo/565693580.jpg b/public/img/vimeo/565693580.jpg
new file mode 100644
index 00000000..8d6eb0c6
Binary files /dev/null and b/public/img/vimeo/565693580.jpg differ
diff --git a/public/img/vimeo/721184140.jpg b/public/img/vimeo/721184140.jpg
new file mode 100644
index 00000000..b9b2c73f
Binary files /dev/null and b/public/img/vimeo/721184140.jpg differ
diff --git a/public/img/vimeo/739081927.jpg b/public/img/vimeo/739081927.jpg
new file mode 100644
index 00000000..d16c2274
Binary files /dev/null and b/public/img/vimeo/739081927.jpg differ
diff --git a/public/img/vimeo/763442741.jpg b/public/img/vimeo/763442741.jpg
new file mode 100644
index 00000000..5c362a58
Binary files /dev/null and b/public/img/vimeo/763442741.jpg differ
diff --git a/public/img/vimeo/763447786.jpg b/public/img/vimeo/763447786.jpg
new file mode 100644
index 00000000..a5640a7d
Binary files /dev/null and b/public/img/vimeo/763447786.jpg differ
diff --git a/public/img/vimeo/771348410.jpg b/public/img/vimeo/771348410.jpg
new file mode 100644
index 00000000..409ccf2e
Binary files /dev/null and b/public/img/vimeo/771348410.jpg differ
diff --git a/public/img/vimeo/795355693.jpg b/public/img/vimeo/795355693.jpg
new file mode 100644
index 00000000..129af4e0
Binary files /dev/null and b/public/img/vimeo/795355693.jpg differ
diff --git a/public/img/vimeo/811518445.jpg b/public/img/vimeo/811518445.jpg
new file mode 100644
index 00000000..75416c49
Binary files /dev/null and b/public/img/vimeo/811518445.jpg differ
diff --git a/public/img/vimeo/812981342.jpg b/public/img/vimeo/812981342.jpg
new file mode 100644
index 00000000..c3f0efae
Binary files /dev/null and b/public/img/vimeo/812981342.jpg differ
diff --git a/public/img/vimeo/812982818.jpg b/public/img/vimeo/812982818.jpg
new file mode 100644
index 00000000..5460d824
Binary files /dev/null and b/public/img/vimeo/812982818.jpg differ
diff --git a/public/img/vimeo/830276773.jpg b/public/img/vimeo/830276773.jpg
new file mode 100644
index 00000000..254adbdc
Binary files /dev/null and b/public/img/vimeo/830276773.jpg differ
diff --git a/public/img/vimeo/830279080.jpg b/public/img/vimeo/830279080.jpg
new file mode 100644
index 00000000..8f886a49
Binary files /dev/null and b/public/img/vimeo/830279080.jpg differ
diff --git a/public/img/vimeo/831673533.jpg b/public/img/vimeo/831673533.jpg
new file mode 100644
index 00000000..a431047d
Binary files /dev/null and b/public/img/vimeo/831673533.jpg differ
diff --git a/public/img/vimeo/852462696.jpg b/public/img/vimeo/852462696.jpg
new file mode 100644
index 00000000..0dfc847e
Binary files /dev/null and b/public/img/vimeo/852462696.jpg differ
diff --git a/public/img/vimeo/862593366.jpg b/public/img/vimeo/862593366.jpg
new file mode 100644
index 00000000..283e5c85
Binary files /dev/null and b/public/img/vimeo/862593366.jpg differ
diff --git a/public/img/vimeo/865035925.jpg b/public/img/vimeo/865035925.jpg
new file mode 100644
index 00000000..f903d17d
Binary files /dev/null and b/public/img/vimeo/865035925.jpg differ
diff --git a/public/img/vimeo/868849453.jpg b/public/img/vimeo/868849453.jpg
new file mode 100644
index 00000000..a52a05d3
Binary files /dev/null and b/public/img/vimeo/868849453.jpg differ
diff --git a/public/img/vimeo/886025667.jpg b/public/img/vimeo/886025667.jpg
new file mode 100644
index 00000000..3af4926f
Binary files /dev/null and b/public/img/vimeo/886025667.jpg differ
diff --git a/public/img/vimeo/906276616.jpg b/public/img/vimeo/906276616.jpg
new file mode 100644
index 00000000..5d8227c2
Binary files /dev/null and b/public/img/vimeo/906276616.jpg differ
diff --git a/public/img/vimeo/911412212.jpg b/public/img/vimeo/911412212.jpg
new file mode 100644
index 00000000..ca7a87da
Binary files /dev/null and b/public/img/vimeo/911412212.jpg differ
diff --git a/public/img/vimeo/931863337.jpg b/public/img/vimeo/931863337.jpg
new file mode 100644
index 00000000..766096da
Binary files /dev/null and b/public/img/vimeo/931863337.jpg differ
diff --git a/public/img/vimeo/953281926.jpg b/public/img/vimeo/953281926.jpg
new file mode 100644
index 00000000..34abcd34
Binary files /dev/null and b/public/img/vimeo/953281926.jpg differ
diff --git a/public/img/vimeo/978657040.jpg b/public/img/vimeo/978657040.jpg
new file mode 100644
index 00000000..056b48f0
Binary files /dev/null and b/public/img/vimeo/978657040.jpg differ
diff --git a/public/img/vimeo/989909369.jpg b/public/img/vimeo/989909369.jpg
new file mode 100644
index 00000000..699c4163
Binary files /dev/null and b/public/img/vimeo/989909369.jpg differ
diff --git a/public/social.html b/public/social.html
index dd284340..e4a440a7 100644
--- a/public/social.html
+++ b/public/social.html
@@ -142,6 +142,31 @@
   .vjob .vact button, .vjob .vact a { font-size:11.5px; padding:6px 9px; border-radius:7px; text-decoration:none; text-align:center; }
   .vjob .vact a { background:#eef2f7; color:var(--ink); }
   .vjob .err { color:var(--red,#c8102e); font-size:11.5px; }
+  /* ── RENTV Video Library (Vimeo CRE Talk assets) ── */
+  .vlib .sub { font-size:12px; font-weight:400; color:var(--muted); text-transform:none; letter-spacing:0; }
+  .vlib-note { font-size:12px; color:var(--muted); line-height:1.5; margin:2px 0 12px; }
+  .vlib-controls { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-bottom:14px; font-size:12.5px; color:var(--muted); }
+  .vlib-controls select { padding:6px 8px; font-size:12.5px; }
+  .vlib-controls input[type=range] { vertical-align:middle; }
+  .vlib-filter { display:flex; align-items:center; gap:5px; cursor:pointer; }
+  .vgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(var(--vcols,220px),1fr)); gap:14px; }
+  .vcard { border:1px solid var(--line); border-radius:12px; overflow:hidden; background:#fff; display:flex; flex-direction:column; }
+  .vcard:hover { border-color:#c9d6e4; box-shadow:0 2px 10px rgba(13,27,42,.06); }
+  .vthumb { position:relative; display:block; aspect-ratio:16/9; background:#0d1b2a; overflow:hidden; }
+  .vthumb img { width:100%; height:100%; object-fit:cover; display:block; }
+  .vthumb .dur { position:absolute; right:6px; bottom:6px; background:rgba(13,27,42,.88); color:#fff; font-size:11px; font-weight:700; padding:1px 6px; border-radius:5px; }
+  .vthumb .play { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#fff; font-size:34px; opacity:.85; text-shadow:0 2px 8px rgba(0,0,0,.5); }
+  .vcard .vb { padding:9px 11px 11px; display:flex; flex-direction:column; gap:6px; flex:1; }
+  .vcard .ep { align-self:flex-start; font-size:10px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:#fff; background:var(--red,#c8102e); padding:1px 7px; border-radius:20px; }
+  .vcard .ep.clip { background:#5b6b7b; }
+  .vcard h4 { margin:0; font-size:13px; line-height:1.32; font-weight:700; color:var(--ink); }
+  .vcard a.vt { color:var(--ink); text-decoration:none; }
+  .vcard a.vt:hover { color:var(--red,#c8102e); }
+  .vcard .vwhen { font-size:10.5px; color:var(--muted); margin-top:auto; }
+  .vcard .vacts { display:flex; flex-wrap:wrap; gap:5px; margin-top:4px; }
+  .vcard .vacts button { font-size:11px; padding:5px 8px; border-radius:6px; background:#eef2f7; color:var(--ink); border:0; cursor:pointer; }
+  .vcard .vacts button.pri { background:#0d1b2a; color:#fff; }
+  .vcard .vacts button.pri:hover { background:var(--red,#c8102e); }
 </style>
 </head>
 <body>
@@ -235,6 +260,20 @@
       <p id="ads" style="margin:0;font-size:13.5px;color:var(--muted)"></p>
     </div>
   </div>
+  <section class="panel vlib" style="grid-column:1/-1">
+    <h2>📼 RENTV Video Library <span class="sub">— CRE Talk &amp; clips · post-ready assets</span></h2>
+    <div class="vlib-note">Pulled from <b>vimeo.com/user9059207</b> (thumbnails localized). Use for social &amp; email — copy the link, grab the embed code, or draft a post. <b>Draft-only; nothing sends.</b></div>
+    <div class="vlib-controls">
+      <label>Sort <select id="vlibSort">
+        <option value="new">Newest</option><option value="old">Oldest</option>
+        <option value="ep">Episodes first</option><option value="plays">Most played</option>
+      </select></label>
+      <label class="vlib-filter"><input type="checkbox" id="vlibEpOnly"> CRE Talk episodes only</label>
+      <label>Size <input type="range" id="vlibDensity" min="170" max="320" step="10" value="220"></label>
+      <span id="vlibCount"></span>
+    </div>
+    <div class="vgrid" id="vlibGrid"><p class="vlib-note">Loading video library…</p></div>
+  </section>
 </main>
 </div><!-- /shell -->
 <script src="/desk-assets/role-icons.js"></script>
@@ -709,6 +748,77 @@
     vgSet(localStorage.getItem(VGOPEN)==='1');
     loadArticles();
   })();
+
+  /* ══ RENTV Video Library — Vimeo CRE Talk assets, post-ready ══ */
+  (function(){
+    var LKSORT='rentv.vlib.sort', LKDENS='rentv.vlib.dens', LKEP='rentv.vlib.eponly';
+    var grid=document.getElementById('vlibGrid');
+    var vids=[];
+    function esc(s){ var d=document.createElement('div'); d.textContent=s==null?'':String(s); return d.innerHTML; }
+    function dur(sec){ sec=+sec||0; var m=Math.floor(sec/60), s=sec%60; if(sec>=3600){var h=Math.floor(sec/3600);m=Math.floor((sec%3600)/60);return h+':'+String(m).padStart(2,'0')+':'+String(s).padStart(2,'0');} return m+':'+String(s).padStart(2,'0'); }
+    function fmtDT(d){ try{ return new Date(d.replace(' ','T')).toLocaleString(undefined,{year:'numeric',month:'short',day:'numeric',hour:'numeric',minute:'2-digit'}); }catch(e){ return (d||'').slice(0,10); } }
+    function toast(msg){ var m=document.getElementById('grailMsg')||document.getElementById('msg'); if(m){ m.textContent=msg; setTimeout(function(){m.textContent='';},2200);} }
+
+    var sortSel=document.getElementById('vlibSort'), epOnly=document.getElementById('vlibEpOnly'), dens=document.getElementById('vlibDensity');
+    sortSel.value=localStorage.getItem(LKSORT)||'new';
+    epOnly.checked=localStorage.getItem(LKEP)==='1';
+    dens.value=localStorage.getItem(LKDENS)||'220';
+    document.querySelector('.vgrid').style.setProperty('--vcols',dens.value+'px');
+    sortSel.onchange=function(){ localStorage.setItem(LKSORT,sortSel.value); render(); };
+    epOnly.onchange=function(){ localStorage.setItem(LKEP,epOnly.checked?'1':'0'); render(); };
+    dens.oninput=function(){ localStorage.setItem(LKDENS,dens.value); document.querySelector('.vgrid').style.setProperty('--vcols',dens.value+'px'); };
+
+    function render(){
+      var list=vids.slice();
+      if(epOnly.checked) list=list.filter(function(v){return v.kind==='episode';});
+      var s=sortSel.value;
+      list.sort(function(a,b){
+        if(s==='old') return (a.date||'').localeCompare(b.date||'');
+        if(s==='plays') return (+b.plays||0)-(+a.plays||0);
+        if(s==='ep'){ var d=(a.kind==='episode'?0:1)-(b.kind==='episode'?0:1); return d||(b.date||'').localeCompare(a.date||''); }
+        return (b.date||'').localeCompare(a.date||''); // new
+      });
+      document.getElementById('vlibCount').textContent=list.length+' videos';
+      if(!list.length){ grid.innerHTML='<p class="vlib-note">No videos.</p>'; return; }
+      grid.innerHTML=list.map(function(v){
+        var thumb=v.thumb_local||v.thumb||'';
+        return '<div class="vcard">'+
+          '<a class="vthumb" href="'+esc(v.url)+'" target="_blank" rel="noopener">'+
+            (thumb?'<img loading="lazy" src="'+esc(thumb)+'" alt="">':'')+
+            '<span class="play">▶</span>'+(v.duration?'<span class="dur">'+dur(v.duration)+'</span>':'')+
+          '</a>'+
+          '<div class="vb">'+
+            '<span class="ep'+(v.kind==='clip'?' clip':'')+'">'+(v.kind==='episode'?'CRE Talk':'Clip')+'</span>'+
+            '<h4><a class="vt" href="'+esc(v.url)+'" target="_blank" rel="noopener">'+esc(v.title)+'</a></h4>'+
+            '<div class="vwhen">🕓 '+fmtDT(v.date)+(v.plays?(' · '+(+v.plays).toLocaleString()+' plays'):'')+'</div>'+
+            '<div class="vacts">'+
+              '<button class="pri" data-act="draft" data-id="'+v.id+'">→ Draft post</button>'+
+              '<button data-act="link" data-id="'+v.id+'">🔗 Link</button>'+
+              '<button data-act="embed" data-id="'+v.id+'">&lt;/&gt; Embed</button>'+
+            '</div>'+
+          '</div></div>';
+      }).join('');
+    }
+
+    grid.addEventListener('click',function(ev){
+      var b=ev.target.closest('button[data-act]'); if(!b) return;
+      var v=vids.find(function(x){return String(x.id)===b.dataset.id;}); if(!v) return;
+      if(b.dataset.act==='link'){ copy(v.url,'Link copied ✓'); }
+      else if(b.dataset.act==='embed'){ copy('<iframe src="'+v.embed+'" width="640" height="360" frameborder="0" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen title="'+String(v.title).replace(/"/g,'&quot;')+'"></iframe>','Embed code copied ✓'); }
+      else if(b.dataset.act==='draft'){
+        var cap='🎥 '+v.title+'\n\nWatch on RENTV — Western U.S. commercial real estate news, deals & conversations.\n'+v.url+'\n\n#CRE #CommercialRealEstate #RENTV #CRETalk';
+        document.getElementById('pf').value='LinkedIn';
+        document.getElementById('topic').value='RENTV video · '+String(v.title).slice(0,80);
+        document.getElementById('text').value=cap;
+        document.getElementById('text').scrollIntoView({behavior:'smooth',block:'center'});
+      }
+    });
+    function copy(t,msg){ (navigator.clipboard&&navigator.clipboard.writeText(t)||Promise.reject()).then(function(){toast(msg);}).catch(function(){ var ta=document.createElement('textarea'); ta.value=t; document.body.appendChild(ta); ta.select(); try{document.execCommand('copy'); toast(msg);}catch(e){} ta.remove(); }); }
+
+    fetch('/api/social/vimeo',{credentials:'same-origin'}).then(function(r){return r.json();}).then(function(d){
+      vids=(d.items||[]); render();
+    }).catch(function(){ grid.innerHTML='<p class="vlib-note" style="color:#c8102e">Could not load the video library.</p>'; });
+  })();
 </script>
 </body>
 </html>
diff --git a/server.js b/server.js
index 46b3b9e9..d27a8c82 100644
--- a/server.js
+++ b/server.js
@@ -889,6 +889,12 @@ app.get('/api/social/video/:jobId', adminOnly, (req, res) => {
   if (!fs.existsSync(f)) return res.status(404).json({ ok: false, error: 'no such job' });
   try { res.json(JSON.parse(fs.readFileSync(f, 'utf8'))); } catch { res.status(500).json({ ok: false, error: 'job read failed' }); }
 });
+// RENTV Vimeo library (CRE Talk episodes + clips) — post-ready assets pulled from
+// the public vimeo.com/user9059207 feed (thumbnails localized). Read-only picker.
+app.get('/api/social/vimeo', adminOnly, (_q, res) => {
+  res.set('Cache-Control', 'public, max-age=300');
+  res.json(readJSON('vimeo-library.json', { items: [], count: 0 }));
+});
 app.get('/api/social/videos', adminOnly, (_q, res) => {
   let jobs = [];
   try { jobs = fs.readdirSync(SVID_JOBS).filter(f => f.endsWith('.json')).map(f => { try { return JSON.parse(fs.readFileSync(path.join(SVID_JOBS, f), 'utf8')); } catch { return null; } }).filter(Boolean); } catch {}

← d55d5b82 feat(social): use Boomer's dedicated VO clone (EoZqhGRrFYVEn  ·  back to Rentv 2026  ·  feat(social): full Vimeo catalog (123 videos via viewer-JWT 35320f6b →