blackroad-os-live / channels.js
blackroadio's picture
BlackRoad Network v2: full broadcast system + modular codebase
e037c1e
Raw History Blame Contribute Delete
17.6 kB
// channels.js β€” BlackRoad Network Source Registry
// 36 channels across 10 vibes. Never raw channel URLs. Curated playlists or uploads only.
// Upload playlists (UU prefix) are used as defaults β€” swap for curated playlists when available.
export const CHANNELS = [
// ── CORE: MATH ──
{ id: '3blue1brown', name: '3Blue1Brown', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab&autoplay=1&mute=1&playsinline=1',
category: 'Math', description: 'Visual mathematics and intuition-first explanations.',
durationMinutes: 20, priority: 10, enabled: true, health: 'unknown' },
{ id: 'numberphile', name: 'Numberphile', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=PLt5AfwLFPxWJ8GCgpFo5_OSyfl7j0nOiu&autoplay=1&mute=1&playsinline=1',
category: 'Math', description: 'Math stories, ideas, oddities, and number intuition.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
// ── CORE: SYSTEMS ──
{ id: 'computerphile', name: 'Computerphile', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=PLzH6n4zXuckquVnQ0KlMDxyT5YE-sA8Ps&autoplay=1&mute=1&playsinline=1',
category: 'Systems', description: 'Computer science, security, and programming concepts.',
durationMinutes: 20, priority: 10, enabled: true, health: 'unknown' },
// ── CORE: SCIENCE ──
{ id: 'veritasium', name: 'Veritasium', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=PLkahZjV5wKe_dajngssVLffaCh2gbq55g&autoplay=1&mute=1&playsinline=1',
category: 'Science', description: 'Deep science, experiments, and surprising explanations.',
durationMinutes: 20, priority: 10, enabled: true, health: 'unknown' },
{ id: 'sixtysymbols', name: 'Sixty Symbols', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUvBqzzvUBLCs8Y7Axb-jZew&autoplay=1&mute=1&playsinline=1',
category: 'Physics', description: 'Physics, astronomy, and scientific ideas.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
// ── CORE: VISUAL EXPLAINERS ──
{ id: 'kurzgesagt', name: 'Kurzgesagt', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=PLFs4vir_WsTwEd-nJgVJCZPNL3HALHHpF&autoplay=1&mute=1&playsinline=1',
category: 'Visual Explainers', description: 'Animated explainers for science, humanity, and systems.',
durationMinutes: 20, priority: 9, enabled: true, health: 'unknown' },
{ id: 'infographicsshow', name: 'The Infographics Show', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUfdNM3NAhaBOXCafH7krzrA&autoplay=1&mute=1&playsinline=1',
category: 'Explainers', description: 'Narrated explainers, scenarios, and current-interest topics.',
durationMinutes: 20, priority: 6, enabled: true, health: 'unknown' },
// ── CORE: EDUCATION ──
{ id: 'khanacademy', name: 'Khan Academy', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=PLSQl0a2vh4HC5feHa6U5g0yNLNIRYhILj&autoplay=1&mute=1&playsinline=1',
category: 'Education', description: 'Core learning blocks across math, science, and more.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
{ id: 'mitocw', name: 'MIT OpenCourseWare', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=PLUl4u3cNGP63oMNUHXqIGcBbal4NOL6Y&autoplay=1&mute=1&playsinline=1',
category: 'Lecture', description: 'Long-form technical and academic content.',
durationMinutes: 30, priority: 7, enabled: true, health: 'unknown' },
{ id: 'crashcourse', name: 'Crash Course', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo&autoplay=1&mute=1&playsinline=1',
category: 'Education', description: 'Fast-paced educational explainers across disciplines.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
// ── CORE: CONTEXT / JOURNALISM ──
{ id: 'vox', name: 'Vox', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=PLJ8cMiYb3G5dOTLINen1K7E4wSMfWjbI7&autoplay=1&mute=1&playsinline=1',
category: 'Context', description: 'Context-heavy journalism and visual reporting.',
durationMinutes: 15, priority: 6, enabled: true, health: 'unknown' },
{ id: 'vice', name: 'Vice', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUn8zNIfYAQNdrFRrr8oibKw&autoplay=1&mute=1&playsinline=1',
category: 'Documentary', description: 'Documentary-style stories and field reporting.',
durationMinutes: 15, priority: 5, enabled: true, health: 'unknown' },
{ id: 'insider', name: 'Insider', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUHJuQZuzapBh-CuhRYxIZrg&autoplay=1&mute=1&playsinline=1',
category: 'Features', description: 'Feature journalism, industry explainers, and visual stories.',
durationMinutes: 15, priority: 5, enabled: true, health: 'unknown' },
// ── HIGH-INTEL ──
{ id: 'pbsspacetime', name: 'PBS Space Time', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUYNbYGl89UUowy8oXkipC-Q&autoplay=1&mute=1&playsinline=1',
category: 'Deep Space', description: 'Astrophysics, cosmology, and spacetime at the edge of knowledge.',
durationMinutes: 20, priority: 9, enabled: true, health: 'unknown' },
{ id: 'sabinehossenfelder', name: 'Sabine Hossenfelder', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UU1yNl2E66ArXEBTf8JXSvCg&autoplay=1&mute=1&playsinline=1',
category: 'Physics Frontier', description: 'Theoretical physics, science critique, and honest takes.',
durationMinutes: 20, priority: 9, enabled: true, health: 'unknown' },
{ id: 'closertotruth', name: 'Closer To Truth', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUl_dlV_7ofr4bSwJnk9gs-g&autoplay=1&mute=1&playsinline=1',
category: 'Ultimate Questions', description: 'Consciousness, reality, existence. The deep end.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
// ── HACKER / BUILDER ──
{ id: 'lowlevellearning', name: 'Low Level Learning', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUc4Rz_T9Sb1w5SVhv2HGMkA&autoplay=1&mute=1&playsinline=1',
category: 'Hacker', description: 'Low-level systems, C, Rust, and why things actually work.',
durationMinutes: 20, priority: 9, enabled: true, health: 'unknown' },
{ id: 'liveoverflow', name: 'LiveOverflow', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUlcE-kVhqyiHCcjYwcpfj9w&autoplay=1&mute=1&playsinline=1',
category: 'Security', description: 'Security research, CTFs, and hacking explained.',
durationMinutes: 20, priority: 9, enabled: true, health: 'unknown' },
{ id: 'beneater', name: 'Ben Eater', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUS0N5baNlQWJCUrhCEo8WlA&autoplay=1&mute=1&playsinline=1',
category: 'Hardware', description: 'Building computers from scratch. Breadboards and truth tables.',
durationMinutes: 20, priority: 9, enabled: true, health: 'unknown' },
{ id: 'thecodingtrain', name: 'The Coding Train', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUvjgXvBlISQQnl7eYng8Chg&autoplay=1&mute=1&playsinline=1',
category: 'Creative Code', description: 'Creative coding, visual algorithms, and joyful hacking.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
// ── WEIRD / EXPERIMENTAL ──
{ id: 'michaelreeves', name: 'Michael Reeves', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUtHaxi4GTYDpJgMSGy7AeSw&autoplay=1&mute=1&playsinline=1',
category: 'Chaos', description: 'Unhinged engineering. Robots that should not exist.',
durationMinutes: 20, priority: 6, enabled: true, health: 'unknown' },
{ id: 'stuffmadehere', name: 'Stuff Made Here', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUj1VqrHhDte54oLgPG4xpuQ&autoplay=1&mute=1&playsinline=1',
category: 'Invention', description: 'Over-engineered solutions to problems nobody asked about.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
{ id: 'markrober', name: 'Mark Rober', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUY1kMZp36IQSyNx_9h4mpCg&autoplay=1&mute=1&playsinline=1',
category: 'Engineering Play', description: 'Engineering + spectacle. Glitter bombs and squirrel courses.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
// ── PHILOSOPHY / EXISTENTIAL ──
{ id: 'exurb1a', name: 'Exurb1a', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUimiUgDLbi6P17BdaCZpVbg&autoplay=1&mute=1&playsinline=1',
category: 'Philosophy', description: 'Existential dread disguised as comedy. The meaning layer.',
durationMinutes: 20, priority: 10, enabled: true, health: 'unknown' },
{ id: 'pursuitofwonder', name: 'Pursuit of Wonder', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUMbQbXKGSJ2LqHHoaGRJ5sA&autoplay=1&mute=1&playsinline=1',
category: 'Reflection', description: 'Quiet philosophy. Questions that stay with you.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
{ id: 'academyofideas', name: 'Academy of Ideas', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUiRiQGCHGjDLT9FQXFW0I3A&autoplay=1&mute=1&playsinline=1',
category: 'Big Ideas', description: 'Nietzsche, Jung, freedom, tyranny. Intellectual history.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
// ── HOW THE WORLD WORKS ──
{ id: 'realengineering', name: 'Real Engineering', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUR1IuLEqb6UEA0zQ1PeYXXg&autoplay=1&mute=1&playsinline=1',
category: 'Engineering', description: 'How real systems are designed and why they work.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
{ id: 'practicalengineering', name: 'Practical Engineering', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUMOqf8ab-42UUQIdVoKwjlQ&autoplay=1&mute=1&playsinline=1',
category: 'Real World', description: 'Civil engineering and infrastructure explained.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
{ id: 'wendover', name: 'Wendover Productions', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UU9RM-iSvTu1uPJb8X5yp3EQ&autoplay=1&mute=1&playsinline=1',
category: 'Systems Logic', description: 'Logistics, economics, and hidden systems that run the world.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
// ── AI / FUTURE / TECH EDGE ──
{ id: 'twominutepapers', name: 'Two Minute Papers', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUbfYPyITQ-7l4upoX8nvctg&autoplay=1&mute=1&playsinline=1',
category: 'AI Edge', description: 'Latest AI research in two minutes. What a time to be alive.',
durationMinutes: 20, priority: 9, enabled: true, health: 'unknown' },
{ id: 'yannickilcher', name: 'Yannic Kilcher', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUZHmQk67mSJgfCCTn7xBfew&autoplay=1&mute=1&playsinline=1',
category: 'AI Edge', description: 'Deep ML paper reviews and AI industry analysis.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
{ id: 'coldfusion', name: 'ColdFusion', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UU4QZ_LsYcvcq7qOsOhpAI4A&autoplay=1&mute=1&playsinline=1',
category: 'Future Tech', description: 'Tech history, future trends, and industry stories.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
// ── CINEMATIC / PREMIUM STORY ──
{ id: 'johnnyharris', name: 'Johnny Harris', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUmGSJVG3mCRXVOP4yZrU1Dw&autoplay=1&mute=1&playsinline=1',
category: 'World Report', description: 'Cinematic journalism. Maps, borders, and hidden stories.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
{ id: 'lemmino', name: 'Lemmino', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UURcgy6GzDeccI7dkbbBna3Q&autoplay=1&mute=1&playsinline=1',
category: 'Cinematic', description: 'Premium mini-documentaries. Unsolved mysteries and deep dives.',
durationMinutes: 20, priority: 9, enabled: true, health: 'unknown' },
{ id: 'neo', name: 'Neo', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUd57xvMlrfbIoSPp-rT8Ibg&autoplay=1&mute=1&playsinline=1',
category: 'Deep Story', description: 'Short-form documentary storytelling.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
// ── DOCUMENTARY CORE ──
{ id: 'dwdocumentary', name: 'DW Documentary', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUW39zufHfsuGgpLviKh297Q&autoplay=1&mute=1&playsinline=1',
category: 'Documentary', description: 'German public broadcasting. Industry, economy, global systems.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
{ id: 'freedocumentary', name: 'Free Documentary', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUijmHCrS0A-cNLdkpnVfn0w&autoplay=1&mute=1&playsinline=1',
category: 'Documentary', description: 'Full-length documentaries. Nature, science, society.',
durationMinutes: 20, priority: 6, enabled: true, health: 'unknown' },
{ id: 'timeline', name: 'Timeline', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UU88lvyJe7aHZmcvzvubDFRg&autoplay=1&mute=1&playsinline=1',
category: 'History', description: 'World history documentaries. Ancient to modern.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
{ id: 'pbsfrontline', name: 'PBS Frontline', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUrJuxWJgFNh_bJEqMPm_D8w&autoplay=1&mute=1&playsinline=1',
category: 'Investigative', description: 'Investigative journalism. Deep, serious, unflinching.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
// ── ARCHIVE / VINTAGE ──
{ id: 'periscopefilm', name: 'PeriscopeFilm', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUrJuxWJgFNh_bJEqMPm_D8w&autoplay=1&mute=1&playsinline=1',
category: 'Archive', description: 'Rescued films from 1920s-1980s. Training films, industrial, aviation, Bell Labs.',
durationMinutes: 20, priority: 8, enabled: true, health: 'unknown' },
// ── SPECIAL AUDIENCE / HUMAN STORIES ──
{ id: 'truly', name: 'Truly', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UUb-fMTiGfOQ4NF1EaGjbiiQ&autoplay=1&mute=1&playsinline=1',
category: 'Human Stories', description: 'Unusual lives, real people, empathetic curiosity.',
durationMinutes: 20, priority: 6, enabled: true, health: 'unknown' },
{ id: 'softwhiteunderbelly', name: 'Soft White Underbelly', type: 'youtube_playlist',
embedUrl: 'https://www.youtube.com/embed/videoseries?list=UU4E98HDsPXrf5kTKIgrSmtQ&autoplay=1&mute=1&playsinline=1',
category: 'Human Stories', description: 'Raw interviews. Addiction, poverty, survival. The real world.',
durationMinutes: 20, priority: 7, enabled: true, health: 'unknown' },
// ── INTERNAL ──
{ id: 'blackroadosinc', name: 'BlackRoad OS', type: 'internal',
embedUrl: '', category: 'Internal Broadcast',
description: 'BlackRoad-native content, agent activity, and system updates.',
durationMinutes: 20, priority: 100, enabled: true, health: 'healthy' },
];
// ── Helpers ──
export function getEnabledChannels() {
return CHANNELS.filter(function(c) { return c.enabled; });
}
export function getChannelById(id) {
return CHANNELS.find(function(c) { return c.id === id; }) || null;
}
export function getChannelsByCategory(category) {
return CHANNELS.filter(function(c) { return c.enabled && c.category === category; });
}
export function getHealthyChannels() {
return CHANNELS.filter(function(c) { return c.enabled && c.health !== 'down'; });
}
export function markChannelHealth(id, status) {
var ch = CHANNELS.find(function(c) { return c.id === id; });
if (ch) ch.health = status;
}
export function getNextHealthyFallback(fallbackIds) {
if (!fallbackIds || !fallbackIds.length) return null;
for (var i = 0; i < fallbackIds.length; i++) {
var ch = getChannelById(fallbackIds[i]);
if (ch && ch.enabled && ch.health !== 'down') return ch;
}
return null;
}