nmtalhp commited on
Commit
93c0b04
Β·
verified Β·
1 Parent(s): e1563af

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +6 -4
  2. index.html +597 -19
  3. prompts.txt +1 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Streamhub
3
- emoji: πŸ‘€
4
- colorFrom: blue
5
  colorTo: red
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: streamhub
3
+ emoji: 🐳
4
+ colorFrom: green
5
  colorTo: red
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,597 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>StreamHub - Video Streaming Platform</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ /* Custom CSS for elements that need more styling than Tailwind provides */
11
+ .video-card:hover .video-overlay {
12
+ opacity: 1;
13
+ }
14
+ .video-overlay {
15
+ transition: opacity 0.3s ease;
16
+ }
17
+ .progress-bar {
18
+ transition: width 0.3s ease;
19
+ }
20
+ .player-container {
21
+ aspect-ratio: 16/9;
22
+ }
23
+ @media (max-width: 768px) {
24
+ .sidebar {
25
+ transform: translateX(-100%);
26
+ transition: transform 0.3s ease;
27
+ }
28
+ .sidebar.open {
29
+ transform: translateX(0);
30
+ }
31
+ }
32
+ </style>
33
+ </head>
34
+ <body class="bg-gray-900 text-white">
35
+ <!-- Navigation -->
36
+ <nav class="bg-gray-800 px-4 py-3 flex items-center justify-between sticky top-0 z-50">
37
+ <div class="flex items-center space-x-4">
38
+ <button id="mobile-menu-button" class="md:hidden text-xl">
39
+ <i class="fas fa-bars"></i>
40
+ </button>
41
+ <a href="#" class="text-2xl font-bold text-red-500">StreamHub</a>
42
+ <div class="hidden md:flex space-x-6">
43
+ <a href="#" class="hover:text-red-400">Home</a>
44
+ <a href="#" class="hover:text-red-400">Browse</a>
45
+ <a href="#" class="hover:text-red-400">Live</a>
46
+ <a href="#" class="hover:text-red-400">Library</a>
47
+ </div>
48
+ </div>
49
+
50
+ <div class="flex items-center space-x-4">
51
+ <div class="relative hidden md:block">
52
+ <input type="text" placeholder="Search videos..." class="bg-gray-700 px-4 py-2 rounded-full w-64 focus:outline-none focus:ring-2 focus:ring-red-500">
53
+ <button class="absolute right-3 top-2 text-gray-400">
54
+ <i class="fas fa-search"></i>
55
+ </button>
56
+ </div>
57
+ <button class="bg-red-600 hover:bg-red-700 px-4 py-2 rounded-md font-medium">
58
+ Upload
59
+ </button>
60
+ <div class="w-10 h-10 rounded-full bg-gray-600 flex items-center justify-center cursor-pointer">
61
+ <i class="fas fa-user"></i>
62
+ </div>
63
+ </div>
64
+ </nav>
65
+
66
+ <!-- Mobile Search -->
67
+ <div class="md:hidden px-4 py-2 bg-gray-800">
68
+ <div class="relative">
69
+ <input type="text" placeholder="Search videos..." class="bg-gray-700 px-4 py-2 rounded-full w-full focus:outline-none focus:ring-2 focus:ring-red-500">
70
+ <button class="absolute right-3 top-2 text-gray-400">
71
+ <i class="fas fa-search"></i>
72
+ </button>
73
+ </div>
74
+ </div>
75
+
76
+ <!-- Sidebar -->
77
+ <div id="sidebar" class="sidebar fixed md:static inset-y-0 left-0 w-64 bg-gray-800 p-4 z-40 md:translate-x-0">
78
+ <div class="flex flex-col space-y-6">
79
+ <div class="flex items-center space-x-2 mb-6">
80
+ <div class="w-10 h-10 rounded-full bg-gray-600 flex items-center justify-center">
81
+ <i class="fas fa-user"></i>
82
+ </div>
83
+ <div>
84
+ <p class="font-medium">John Doe</p>
85
+ <p class="text-sm text-gray-400">Pro Member</p>
86
+ </div>
87
+ </div>
88
+
89
+ <div>
90
+ <h3 class="text-gray-400 uppercase text-xs font-bold mb-3">Menu</h3>
91
+ <ul class="space-y-2">
92
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-home w-5"></i> <span>Home</span></a></li>
93
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-fire w-5"></i> <span>Trending</span></a></li>
94
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-compass w-5"></i> <span>Discover</span></a></li>
95
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-video w-5"></i> <span>Subscriptions</span></a></li>
96
+ </ul>
97
+ </div>
98
+
99
+ <div>
100
+ <h3 class="text-gray-400 uppercase text-xs font-bold mb-3">Library</h3>
101
+ <ul class="space-y-2">
102
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-history w-5"></i> <span>History</span></a></li>
103
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-clock w-5"></i> <span>Watch Later</span></a></li>
104
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-thumbs-up w-5"></i> <span>Liked Videos</span></a></li>
105
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-download w-5"></i> <span>Downloads</span></a></li>
106
+ </ul>
107
+ </div>
108
+
109
+ <div>
110
+ <h3 class="text-gray-400 uppercase text-xs font-bold mb-3">Categories</h3>
111
+ <ul class="space-y-2">
112
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-gamepad w-5"></i> <span>Gaming</span></a></li>
113
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-music w-5"></i> <span>Music</span></a></li>
114
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-newspaper w-5"></i> <span>News</span></a></li>
115
+ <li><a href="#" class="flex items-center space-x-3 p-2 rounded hover:bg-gray-700"><i class="fas fa-lightbulb w-5"></i> <span>Learning</span></a></li>
116
+ </ul>
117
+ </div>
118
+ </div>
119
+ </div>
120
+
121
+ <!-- Main Content -->
122
+ <main class="md:ml-64 p-4 md:p-6">
123
+ <!-- Hero Section -->
124
+ <section class="mb-8">
125
+ <div class="player-container w-full bg-black rounded-lg overflow-hidden relative">
126
+ <!-- Video Player Placeholder -->
127
+ <div class="absolute inset-0 flex items-center justify-center">
128
+ <i class="fas fa-play text-6xl text-gray-500"></i>
129
+ </div>
130
+ <div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-4">
131
+ <h2 class="text-2xl font-bold mb-2">Featured Video Title</h2>
132
+ <div class="flex items-center space-x-4 text-sm">
133
+ <span>1.2M views</span>
134
+ <span>β€’</span>
135
+ <span>3 days ago</span>
136
+ <span>β€’</span>
137
+ <span class="flex items-center space-x-1">
138
+ <i class="fas fa-thumbs-up"></i>
139
+ <span>45K</span>
140
+ </span>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ </section>
145
+
146
+ <!-- Video Grid -->
147
+ <section>
148
+ <h2 class="text-xl font-bold mb-4">Recommended For You</h2>
149
+ <div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
150
+ <!-- Video Card 1 -->
151
+ <div class="video-card bg-gray-800 rounded-lg overflow-hidden cursor-pointer transition-transform hover:scale-105">
152
+ <div class="relative">
153
+ <img src="https://via.placeholder.com/320x180" alt="Video thumbnail" class="w-full">
154
+ <div class="video-overlay absolute inset-0 bg-black bg-opacity-50 opacity-0 flex items-center justify-center">
155
+ <button class="bg-red-600 hover:bg-red-700 p-3 rounded-full">
156
+ <i class="fas fa-play"></i>
157
+ </button>
158
+ </div>
159
+ <div class="absolute bottom-2 right-2 bg-black bg-opacity-70 px-2 py-1 rounded text-sm">
160
+ 10:45
161
+ </div>
162
+ </div>
163
+ <div class="p-3">
164
+ <div class="flex space-x-3">
165
+ <div class="w-10 h-10 rounded-full bg-gray-600 flex-shrink-0"></div>
166
+ <div>
167
+ <h3 class="font-medium line-clamp-2">How to build a video streaming platform with modern technologies</h3>
168
+ <p class="text-gray-400 text-sm mt-1">Tech Channel</p>
169
+ <p class="text-gray-400 text-sm">120K views β€’ 2 days ago</p>
170
+ </div>
171
+ </div>
172
+ </div>
173
+ </div>
174
+
175
+ <!-- Video Card 2 -->
176
+ <div class="video-card bg-gray-800 rounded-lg overflow-hidden cursor-pointer transition-transform hover:scale-105">
177
+ <div class="relative">
178
+ <img src="https://via.placeholder.com/320x180" alt="Video thumbnail" class="w-full">
179
+ <div class="video-overlay absolute inset-0 bg-black bg-opacity-50 opacity-0 flex items-center justify-center">
180
+ <button class="bg-red-600 hover:bg-red-700 p-3 rounded-full">
181
+ <i class="fas fa-play"></i>
182
+ </button>
183
+ </div>
184
+ <div class="absolute bottom-2 right-2 bg-black bg-opacity-70 px-2 py-1 rounded text-sm">
185
+ 22:15
186
+ </div>
187
+ </div>
188
+ <div class="p-3">
189
+ <div class="flex space-x-3">
190
+ <div class="w-10 h-10 rounded-full bg-gray-600 flex-shrink-0"></div>
191
+ <div>
192
+ <h3 class="font-medium line-clamp-2">The future of video streaming technologies and what's coming next</h3>
193
+ <p class="text-gray-400 text-sm mt-1">Future Tech</p>
194
+ <p class="text-gray-400 text-sm">450K views β€’ 1 week ago</p>
195
+ </div>
196
+ </div>
197
+ </div>
198
+ </div>
199
+
200
+ <!-- Video Card 3 -->
201
+ <div class="video-card bg-gray-800 rounded-lg overflow-hidden cursor-pointer transition-transform hover:scale-105">
202
+ <div class="relative">
203
+ <img src="https://via.placeholder.com/320x180" alt="Video thumbnail" class="w-full">
204
+ <div class="video-overlay absolute inset-0 bg-black bg-opacity-50 opacity-0 flex items-center justify-center">
205
+ <button class="bg-red-600 hover:bg-red-700 p-3 rounded-full">
206
+ <i class="fas fa-play"></i>
207
+ </button>
208
+ </div>
209
+ <div class="absolute bottom-2 right-2 bg-black bg-opacity-70 px-2 py-1 rounded text-sm">
210
+ 15:30
211
+ </div>
212
+ </div>
213
+ <div class="p-3">
214
+ <div class="flex space-x-3">
215
+ <div class="w-10 h-10 rounded-full bg-gray-600 flex-shrink-0"></div>
216
+ <div>
217
+ <h3 class="font-medium line-clamp-2">Optimizing video delivery with CDN and edge computing</h3>
218
+ <p class="text-gray-400 text-sm mt-1">DevOps Guide</p>
219
+ <p class="text-gray-400 text-sm">89K views β€’ 3 days ago</p>
220
+ </div>
221
+ </div>
222
+ </div>
223
+ </div>
224
+
225
+ <!-- Video Card 4 -->
226
+ <div class="video-card bg-gray-800 rounded-lg overflow-hidden cursor-pointer transition-transform hover:scale-105">
227
+ <div class="relative">
228
+ <img src="https://via.placeholder.com/320x180" alt="Video thumbnail" class="w-full">
229
+ <div class="video-overlay absolute inset-0 bg-black bg-opacity-50 opacity-0 flex items-center justify-center">
230
+ <button class="bg-red-600 hover:bg-red-700 p-3 rounded-full">
231
+ <i class="fas fa-play"></i>
232
+ </button>
233
+ </div>
234
+ <div class="absolute bottom-2 right-2 bg-black bg-opacity-70 px-2 py-1 rounded text-sm">
235
+ 08:22
236
+ </div>
237
+ </div>
238
+ <div class="p-3">
239
+ <div class="flex space-x-3">
240
+ <div class="w-10 h-10 rounded-full bg-gray-600 flex-shrink-0"></div>
241
+ <div>
242
+ <h3 class="font-medium line-clamp-2">Building adaptive bitrate streaming for all devices</h3>
243
+ <p class="text-gray-400 text-sm mt-1">Streaming Tech</p>
244
+ <p class="text-gray-400 text-sm">210K views β€’ 5 days ago</p>
245
+ </div>
246
+ </div>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ </section>
251
+
252
+ <!-- Live Streams Section -->
253
+ <section class="mt-10">
254
+ <h2 class="text-xl font-bold mb-4">Live Now</h2>
255
+ <div class="grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4">
256
+ <!-- Live Card 1 -->
257
+ <div class="bg-gray-800 rounded-lg overflow-hidden cursor-pointer transition-transform hover:scale-105">
258
+ <div class="relative">
259
+ <img src="https://via.placeholder.com/320x180" alt="Live thumbnail" class="w-full">
260
+ <div class="absolute inset-0 bg-gradient-to-t from-black to-transparent"></div>
261
+ <div class="absolute top-2 left-2 bg-red-600 px-2 py-1 rounded text-xs font-bold">
262
+ LIVE
263
+ </div>
264
+ <div class="absolute bottom-2 left-2 flex items-center space-x-1 bg-black bg-opacity-70 px-2 py-1 rounded text-sm">
265
+ <i class="fas fa-eye"></i>
266
+ <span>12.4K</span>
267
+ </div>
268
+ </div>
269
+ <div class="p-3">
270
+ <h3 class="font-medium">Building a Streaming Platform - Day 3</h3>
271
+ <p class="text-gray-400 text-sm mt-1">Dev Streamer</p>
272
+ <p class="text-gray-400 text-sm">Gaming β€’ Programming</p>
273
+ </div>
274
+ </div>
275
+
276
+ <!-- Live Card 2 -->
277
+ <div class="bg-gray-800 rounded-lg overflow-hidden cursor-pointer transition-transform hover:scale-105">
278
+ <div class="relative">
279
+ <img src="https://via.placeholder.com/320x180" alt="Live thumbnail" class="w-full">
280
+ <div class="absolute inset-0 bg-gradient-to-t from-black to-transparent"></div>
281
+ <div class="absolute top-2 left-2 bg-red-600 px-2 py-1 rounded text-xs font-bold">
282
+ LIVE
283
+ </div>
284
+ <div class="absolute bottom-2 left-2 flex items-center space-x-1 bg-black bg-opacity-70 px-2 py-1 rounded text-sm">
285
+ <i class="fas fa-eye"></i>
286
+ <span>8.2K</span>
287
+ </div>
288
+ </div>
289
+ <div class="p-3">
290
+ <h3 class="font-medium">Q&A About Video Encoding</h3>
291
+ <p class="text-gray-400 text-sm mt-1">Video Expert</p>
292
+ <p class="text-gray-400 text-sm">Education β€’ Technology</p>
293
+ </div>
294
+ </div>
295
+ </div>
296
+ </section>
297
+
298
+ <!-- Upload Modal (Hidden by default) -->
299
+ <div id="upload-modal" class="fixed inset-0 bg-black bg-opacity-75 flex items-center justify-center z-50 hidden">
300
+ <div class="bg-gray-800 rounded-lg w-full max-w-2xl max-h-[90vh] overflow-y-auto">
301
+ <div class="p-6">
302
+ <div class="flex justify-between items-center mb-4">
303
+ <h2 class="text-xl font-bold">Upload Video</h2>
304
+ <button id="close-upload" class="text-gray-400 hover:text-white">
305
+ <i class="fas fa-times"></i>
306
+ </button>
307
+ </div>
308
+
309
+ <div class="border-2 border-dashed border-gray-600 rounded-lg p-8 text-center mb-6">
310
+ <i class="fas fa-cloud-upload-alt text-4xl text-gray-400 mb-3"></i>
311
+ <p class="mb-2">Drag and drop video files here</p>
312
+ <p class="text-sm text-gray-400 mb-4">or</p>
313
+ <button class="bg-red-600 hover:bg-red-700 px-6 py-2 rounded-md font-medium">
314
+ Select Files
315
+ </button>
316
+ <p class="text-xs text-gray-400 mt-3">MP4, WebM or AVI. Max 5GB.</p>
317
+ </div>
318
+
319
+ <div class="mb-6">
320
+ <label class="block text-sm font-medium mb-2">Title</label>
321
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-md px-4 py-2 focus:outline-none focus:ring-2 focus:ring-red-500">
322
+ </div>
323
+
324
+ <div class="mb-6">
325
+ <label class="block text-sm font-medium mb-2">Description</label>
326
+ <textarea class="w-full bg-gray-700 border border-gray-600 rounded-md px-4 py-2 h-24 focus:outline-none focus:ring-2 focus:ring-red-500"></textarea>
327
+ </div>
328
+
329
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-6">
330
+ <div>
331
+ <label class="block text-sm font-medium mb-2">Visibility</label>
332
+ <select class="w-full bg-gray-700 border border-gray-600 rounded-md px-4 py-2 focus:outline-none focus:ring-2 focus:ring-red-500">
333
+ <option>Public</option>
334
+ <option>Unlisted</option>
335
+ <option>Private</option>
336
+ </select>
337
+ </div>
338
+ <div>
339
+ <label class="block text-sm font-medium mb-2">Category</label>
340
+ <select class="w-full bg-gray-700 border border-gray-600 rounded-md px-4 py-2 focus:outline-none focus:ring-2 focus:ring-red-500">
341
+ <option>Technology</option>
342
+ <option>Gaming</option>
343
+ <option>Education</option>
344
+ <option>Music</option>
345
+ <option>Entertainment</option>
346
+ </select>
347
+ </div>
348
+ </div>
349
+
350
+ <div class="mb-6">
351
+ <label class="block text-sm font-medium mb-2">Tags (comma separated)</label>
352
+ <input type="text" class="w-full bg-gray-700 border border-gray-600 rounded-md px-4 py-2 focus:outline-none focus:ring-2 focus:ring-red-500" placeholder="streaming, tutorial, how-to">
353
+ </div>
354
+
355
+ <div class="mb-6">
356
+ <label class="block text-sm font-medium mb-2">Thumbnail</label>
357
+ <div class="flex space-x-4">
358
+ <div class="w-1/3 h-24 bg-gray-700 rounded-md flex items-center justify-center cursor-pointer">
359
+ <i class="fas fa-image text-gray-400"></i>
360
+ </div>
361
+ <div class="w-1/3 h-24 bg-gray-700 rounded-md flex items-center justify-center cursor-pointer">
362
+ <i class="fas fa-image text-gray-400"></i>
363
+ </div>
364
+ <div class="w-1/3 h-24 bg-gray-700 rounded-md flex items-center justify-center cursor-pointer">
365
+ <i class="fas fa-image text-gray-400"></i>
366
+ </div>
367
+ </div>
368
+ </div>
369
+
370
+ <div class="flex justify-end space-x-3">
371
+ <button class="px-6 py-2 border border-gray-600 rounded-md font-medium hover:bg-gray-700">
372
+ Cancel
373
+ </button>
374
+ <button class="bg-red-600 hover:bg-red-700 px-6 py-2 rounded-md font-medium">
375
+ Upload
376
+ </button>
377
+ </div>
378
+ </div>
379
+
380
+ <!-- Upload Progress (Hidden by default) -->
381
+ <div id="upload-progress" class="p-6 border-t border-gray-700 hidden">
382
+ <h3 class="font-medium mb-4">Uploading...</h3>
383
+ <div class="w-full bg-gray-700 rounded-full h-2.5 mb-2">
384
+ <div class="progress-bar bg-red-600 h-2.5 rounded-full" style="width: 0%"></div>
385
+ </div>
386
+ <div class="flex justify-between text-sm text-gray-400">
387
+ <span>0%</span>
388
+ <span>Processing...</span>
389
+ </div>
390
+ </div>
391
+ </div>
392
+ </div>
393
+ </main>
394
+
395
+ <!-- Video Player Modal (Hidden by default) -->
396
+ <div id="video-player-modal" class="fixed inset-0 bg-black z-50 hidden">
397
+ <div class="absolute top-4 right-4 z-10">
398
+ <button id="close-player" class="text-white bg-black bg-opacity-50 rounded-full p-2 hover:bg-opacity-70">
399
+ <i class="fas fa-times"></i>
400
+ </button>
401
+ </div>
402
+
403
+ <div class="h-full flex flex-col">
404
+ <div class="flex-grow flex items-center justify-center">
405
+ <div class="w-full max-w-4xl px-4">
406
+ <div class="player-container w-full bg-black rounded-lg overflow-hidden relative">
407
+ <!-- Video Player Placeholder -->
408
+ <div class="absolute inset-0 flex items-center justify-center">
409
+ <i class="fas fa-play text-6xl text-gray-500"></i>
410
+ </div>
411
+ <div class="absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black to-transparent p-4">
412
+ <div class="flex items-center justify-between">
413
+ <div>
414
+ <h2 class="text-xl font-bold">Now Playing: Video Title</h2>
415
+ <p class="text-sm text-gray-300">1.2M views β€’ 3 days ago</p>
416
+ </div>
417
+ <div class="flex space-x-3">
418
+ <button class="text-white hover:text-red-400">
419
+ <i class="fas fa-thumbs-up"></i> 45K
420
+ </button>
421
+ <button class="text-white hover:text-red-400">
422
+ <i class="fas fa-thumbs-down"></i>
423
+ </button>
424
+ <button class="text-white hover:text-red-400">
425
+ <i class="fas fa-share"></i>
426
+ </button>
427
+ </div>
428
+ </div>
429
+
430
+ <div class="mt-3 w-full bg-gray-700 rounded-full h-1.5">
431
+ <div class="bg-red-600 h-1.5 rounded-full" style="width: 35%"></div>
432
+ </div>
433
+
434
+ <div class="flex justify-between mt-1 text-xs text-gray-400">
435
+ <span>5:22</span>
436
+ <span>14:36</span>
437
+ </div>
438
+
439
+ <div class="flex justify-between mt-3">
440
+ <div class="flex space-x-4">
441
+ <button class="text-white hover:text-red-400">
442
+ <i class="fas fa-play"></i>
443
+ </button>
444
+ <button class="text-white hover:text-red-400">
445
+ <i class="fas fa-volume-up"></i>
446
+ </button>
447
+ <button class="text-white hover:text-red-400">
448
+ <i class="fas fa-closed-captioning"></i>
449
+ </button>
450
+ <button class="text-white hover:text-red-400">
451
+ <i class="fas fa-cog"></i>
452
+ </button>
453
+ </div>
454
+ <button class="text-white hover:text-red-400">
455
+ <i class="fas fa-expand"></i>
456
+ </button>
457
+ </div>
458
+ </div>
459
+ </div>
460
+ </div>
461
+ </div>
462
+
463
+ <div class="bg-gray-900 p-4">
464
+ <div class="max-w-4xl mx-auto">
465
+ <div class="flex items-start space-x-4">
466
+ <div class="w-12 h-12 rounded-full bg-gray-700 flex-shrink-0"></div>
467
+ <div class="flex-grow">
468
+ <div class="flex items-center justify-between">
469
+ <div>
470
+ <h3 class="font-medium">Channel Name</h3>
471
+ <p class="text-sm text-gray-400">1.5M subscribers</p>
472
+ </div>
473
+ <button class="bg-red-600 hover:bg-red-700 px-4 py-2 rounded-md font-medium text-sm">
474
+ Subscribe
475
+ </button>
476
+ </div>
477
+
478
+ <div class="mt-4 bg-gray-800 rounded-lg p-4">
479
+ <div class="flex items-center space-x-2 text-sm mb-2">
480
+ <span>45K views</span>
481
+ <span>β€’</span>
482
+ <span>3 days ago</span>
483
+ </div>
484
+ <p class="text-sm">This is the video description. It explains what the video is about and might include links or timestamps for different sections.</p>
485
+ </div>
486
+
487
+ <div class="mt-4">
488
+ <h4 class="font-medium mb-3">Comments (1,234)</h4>
489
+ <div class="flex space-x-3 mb-4">
490
+ <div class="w-8 h-8 rounded-full bg-gray-700 flex-shrink-0"></div>
491
+ <input type="text" placeholder="Add a comment..." class="bg-transparent border-b border-gray-700 w-full focus:outline-none focus:border-red-500">
492
+ </div>
493
+
494
+ <div class="space-y-4">
495
+ <!-- Comment 1 -->
496
+ <div class="flex space-x-3">
497
+ <div class="w-8 h-8 rounded-full bg-gray-700 flex-shrink-0"></div>
498
+ <div>
499
+ <div class="flex items-center space-x-2 text-sm">
500
+ <span class="font-medium">User123</span>
501
+ <span class="text-gray-400">2 days ago</span>
502
+ </div>
503
+ <p class="text-sm mt-1">Great video! Very informative and well explained.</p>
504
+ <div class="flex items-center space-x-4 mt-1 text-sm text-gray-400">
505
+ <button class="hover:text-white">
506
+ <i class="fas fa-thumbs-up"></i> 245
507
+ </button>
508
+ <button class="hover:text-white">
509
+ <i class="fas fa-thumbs-down"></i>
510
+ </button>
511
+ <button class="hover:text-white">
512
+ Reply
513
+ </button>
514
+ </div>
515
+ </div>
516
+ </div>
517
+ </div>
518
+ </div>
519
+ </div>
520
+ </div>
521
+ </div>
522
+ </div>
523
+ </div>
524
+ </div>
525
+
526
+ <script>
527
+ // Mobile menu toggle
528
+ document.getElementById('mobile-menu-button').addEventListener('click', function() {
529
+ document.getElementById('sidebar').classList.toggle('open');
530
+ });
531
+
532
+ // Upload modal
533
+ const uploadButtons = document.querySelectorAll('button:contains("Upload")');
534
+ const uploadModal = document.getElementById('upload-modal');
535
+ const closeUpload = document.getElementById('close-upload');
536
+
537
+ uploadButtons.forEach(button => {
538
+ button.addEventListener('click', function() {
539
+ uploadModal.classList.remove('hidden');
540
+ });
541
+ });
542
+
543
+ closeUpload.addEventListener('click', function() {
544
+ uploadModal.classList.add('hidden');
545
+ });
546
+
547
+ // Simulate upload progress
548
+ const uploadBtn = uploadModal.querySelector('button:contains("Upload")');
549
+ uploadBtn.addEventListener('click', function() {
550
+ const uploadProgress = document.getElementById('upload-progress');
551
+ const progressBar = uploadProgress.querySelector('.progress-bar');
552
+
553
+ uploadProgress.classList.remove('hidden');
554
+ uploadBtn.disabled = true;
555
+
556
+ let progress = 0;
557
+ const interval = setInterval(() => {
558
+ progress += Math.random() * 10;
559
+ if (progress >= 100) {
560
+ progress = 100;
561
+ clearInterval(interval);
562
+ uploadProgress.querySelector('span:last-child').textContent = 'Processing complete!';
563
+ }
564
+ progressBar.style.width = `${progress}%`;
565
+ uploadProgress.querySelector('span:first-child').textContent = `${Math.round(progress)}%`;
566
+ }, 500);
567
+ });
568
+
569
+ // Video player modal
570
+ const videoCards = document.querySelectorAll('.video-card');
571
+ const videoPlayerModal = document.getElementById('video-player-modal');
572
+ const closePlayer = document.getElementById('close-player');
573
+
574
+ videoCards.forEach(card => {
575
+ card.addEventListener('click', function() {
576
+ videoPlayerModal.classList.remove('hidden');
577
+ document.body.style.overflow = 'hidden';
578
+ });
579
+ });
580
+
581
+ closePlayer.addEventListener('click', function() {
582
+ videoPlayerModal.classList.add('hidden');
583
+ document.body.style.overflow = '';
584
+ });
585
+
586
+ // Close modals when clicking outside
587
+ [uploadModal, videoPlayerModal].forEach(modal => {
588
+ modal.addEventListener('click', function(e) {
589
+ if (e.target === modal) {
590
+ modal.classList.add('hidden');
591
+ document.body.style.overflow = '';
592
+ }
593
+ });
594
+ });
595
+ </script>
596
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=nmtalhp/streamhub" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
597
+ </html>
prompts.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ VIDEO STREAMING & SHARING PLATFORM – TECHNICAL REQUIREMENT CHECKLIST Category Detailed Requirements 🎯 Core Objectives - Stream HD/4K video with low latency - Enable video upload/download by users (with permission control) - Store, manage, and categorize video content - Monitor traffic & user behavior in real time - Support multi-device playback (web, mobile, smart TV) 🧱 Platform Architecture - Cloud-based infrastructure (e.g., AWS, GCP, Azure) - Microservices or modular backend - Scalable storage & content delivery (CDN) - Secure API layer for streaming, auth, analytics - Database for metadata (PostgreSQL, MongoDB) πŸ“Ή Video Features - Support MP4, HLS, DASH formats - Live streaming support (RTMP ingest) - On-demand playback with adaptive bitrate - Upload module (drag/drop, size limits, processing queue) - Download management with permission logic - Auto thumbnail generation & video preview πŸ§‘β€πŸ’Ό User Features - Signup/login (with OAuth: Google, Facebook, etc.) - User dashboard: uploaded videos, downloads, favorites - Watch history & playback resume - Profile settings & subscription (if monetized) - Reporting or flagging content πŸ—‚οΈ Content Management - Admin panel for video moderation - Categorization: tags, genres, creators - Publish/unpublish controls - Video scheduling (e.g., release date) - Manual or auto-transcription/subtitle upload πŸ“Š Analytics Dashboard (for Admins) - Traffic stats: daily/monthly visits, active users - Storage stats: total videos, storage used (GB), avg file size - Upload/download stats: per user, per video - Top videos: views, likes, watch time - Viewer location map (GeoIP) - Export data (CSV/Excel) πŸ“ˆ Video Performance Metrics (for Creators) - View count, like/dislike, watch duration - Audience retention % - Upload performance (approval time, processing speed) - Storage quota remaining πŸ” Security Requirements - Video tokenization / DRM (for premium content) - Role-based access: admin, moderator, user - Rate limiting (to prevent abuse on uploads/downloads) - Encrypted stream URLs (anti-leeching) - Captcha on upload/login forms 🌐 Frontend (UI/UX) - Clean Netflix-style grid layout - Responsive design for mobile/tablet - Video player: speed control, subtitle toggle, fullscreen, etc. - Search bar with auto-suggestions - Filters by genre, popularity, upload date - Infinite scroll or pagination 🧩 Third-party Integrations - CDN: Cloudflare / AWS CloudFront / Akamai - Video encoder: FFmpeg / AWS Elastic Transcoder - Analytics: Google Analytics + Custom internal metrics - Email service: Mailgun, SendGrid for notifications - Payment gateway (optional): Stripe / PayPal πŸ“€ Upload Flow Requirements - File validation (type, size, virus scan) - Real-time progress bar - Video compression (automated) - Transcoding to multiple resolutions (e.g., 1080p, 720p, 480p) - Metadata input: title, tags, thumbnail, description ⏱ Performance Benchmarks - Page load time < 2s - Upload processing under 5 min (avg) - Live streaming latency < 5s - Uptime target: 99.9% monthly πŸ”„ System Maintenance Tools - Video storage cleanup logic - Auto-expiry rules (for temp uploads) - Background job queue (RabbitMQ, Redis Queue) - Admin alerts on system errors (email/slack/logs) πŸ§ͺ Testing & QA Checklist - Multi-device testing (mobile, desktop, tablet, smart TV) - Browser compatibility (Chrome, Safari, Edge, Firefox) - Playback under slow network (adaptive bitrate test) - Load test: concurrent stream viewers - Upload/download stress test πŸš€ Launch Readiness - Final security audit complete - Backup system in place - Admin/moderator roles verified - Test content uploaded & approved - CDN fully cached and optimized