Initial commit: IndeeHub decentralized streaming platform
Built a complete Netflix-style streaming interface for IndeeHub's decentralized media platform with real film content. Features: - Vue 3 + TypeScript + Vite setup with hot module reloading - Netflix-inspired UI with hero section and horizontal scrolling content rows - Glass morphism design system with custom Tailwind configuration - 20+ real IndeeHub films organized into 6 categories (Bitcoin, Documentaries, Drama, etc.) - Full-featured video player component with custom controls - Mobile-responsive design with bottom navigation - Nostr integration ready (nostr-tools, relay pool, NIP-71 support) - Pinia state management for content - MCP tools configured (Filesystem, Memory, Nostr, Puppeteer) Components: - Browse.vue: Main streaming interface with hero and content rows - ContentRow.vue: Horizontal scrolling film cards with navigation arrows - VideoPlayer.vue: Custom video player with play/pause, seek, volume, fullscreen - MobileNav.vue: Bottom tab navigation for mobile devices Tech Stack: - Frontend: Vue 3 (Composition API), TypeScript - Build: Vite 7 - Styling: Tailwind CSS with custom theme - State: Pinia 3 - Router: Vue Router 4.6 - Protocol: Nostr (nostr-tools 2.22) Design: - 4px grid spacing system - Glass morphism UI components - Netflix-style hero section with featured content - Smooth animations and hover effects - Mobile-first responsive breakpoints - Dark theme with custom color palette Content: - 20+ IndeeHub films with titles, descriptions, categories - Bitcoin documentaries: God Bless Bitcoin, Dirty Coin, Searching for Satoshi - Independent films and documentaries - Working Unsplash CDN images for thumbnails and backdrops Ready for deployment to Umbrel, Start9, and Archy nodes. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
25
extract-films.js
Normal file
25
extract-films.js
Normal file
@@ -0,0 +1,25 @@
|
||||
// Script to extract IndeeHub film data from screening room
|
||||
// Run this in browser console on https://indeehub.studio/screening-room?type=film
|
||||
|
||||
const films = [];
|
||||
const filmCards = document.querySelectorAll('a[href^="/film/"]');
|
||||
|
||||
filmCards.forEach((card, index) => {
|
||||
const title = card.querySelector('h3, [class*="title"]')?.textContent?.trim();
|
||||
const img = card.querySelector('img');
|
||||
const thumbnail = img?.src || img?.getAttribute('data-src');
|
||||
const link = card.getAttribute('href');
|
||||
|
||||
if (title && thumbnail && link) {
|
||||
films.push({
|
||||
id: link.replace('/film/', ''),
|
||||
title: title,
|
||||
thumbnail: thumbnail,
|
||||
link: `https://indeehub.studio${link}`,
|
||||
type: 'film'
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
console.log(JSON.stringify(films, null, 2));
|
||||
copy(JSON.stringify(films, null, 2));
|
||||
Reference in New Issue
Block a user