Dappi commited on
Commit
1b4b65f
·
verified ·
1 Parent(s): c5729a2

Create me a website for automated shorts posting in youtube. That I can use with my personal data no sample data - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +355 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Devilking
3
- emoji: 📊
4
- colorFrom: purple
5
- colorTo: blue
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: devilking
3
+ emoji: 🐳
4
+ colorFrom: gray
5
+ colorTo: yellow
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,355 @@
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>Shorts Automator | YouTube Content Manager</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
+ .gradient-bg {
11
+ background: linear-gradient(135deg, #FF5F6D 0%, #FFC371 100%);
12
+ }
13
+ .video-preview {
14
+ aspect-ratio: 9/16;
15
+ }
16
+ .sidebar {
17
+ transition: all 0.3s ease;
18
+ }
19
+ @media (max-width: 768px) {
20
+ .sidebar {
21
+ transform: translateX(-100%);
22
+ position: fixed;
23
+ z-index: 50;
24
+ height: 100vh;
25
+ }
26
+ .sidebar.active {
27
+ transform: translateX(0);
28
+ }
29
+ }
30
+ .schedule-time-input::-webkit-calendar-picker-indicator {
31
+ filter: invert(1);
32
+ }
33
+ </style>
34
+ </head>
35
+ <body class="bg-gray-100 font-sans">
36
+ <div class="flex h-screen overflow-hidden">
37
+ <!-- Sidebar -->
38
+ <div class="sidebar bg-gray-900 text-white w-64 flex-shrink-0">
39
+ <div class="p-4 flex items-center space-x-3 border-b border-gray-700">
40
+ <i class="fas fa-bolt text-yellow-400 text-2xl"></i>
41
+ <h1 class="text-xl font-bold">Shorts Automator</h1>
42
+ </div>
43
+ <nav class="p-4 space-y-2">
44
+ <a href="#" class="flex items-center space-x-3 p-3 rounded-lg bg-gray-800 text-yellow-400">
45
+ <i class="fas fa-home"></i>
46
+ <span>Dashboard</span>
47
+ </a>
48
+ <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-800">
49
+ <i class="fas fa-upload"></i>
50
+ <span>Upload Shorts</span>
51
+ </a>
52
+ <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-800">
53
+ <i class="fas fa-calendar-alt"></i>
54
+ <span>Schedule</span>
55
+ </a>
56
+ <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-800">
57
+ <i class="fas fa-chart-line"></i>
58
+ <span>Analytics</span>
59
+ </a>
60
+ <a href="#" class="flex items-center space-x-3 p-3 rounded-lg hover:bg-gray-800">
61
+ <i class="fas fa-cog"></i>
62
+ <span>Settings</span>
63
+ </a>
64
+ </nav>
65
+ <div class="absolute bottom-0 w-full p-4 border-t border-gray-700">
66
+ <div class="flex items-center space-x-3">
67
+ <div class="w-10 h-10 rounded-full bg-gray-700 flex items-center justify-center">
68
+ <i class="fas fa-user"></i>
69
+ </div>
70
+ <div>
71
+ <p class="font-medium">Your Account</p>
72
+ <p class="text-xs text-gray-400">Connected</p>
73
+ </div>
74
+ </div>
75
+ </div>
76
+ </div>
77
+
78
+ <!-- Main Content -->
79
+ <div class="flex-1 flex flex-col overflow-hidden">
80
+ <!-- Mobile Header -->
81
+ <div class="md:hidden bg-gray-900 text-white p-4 flex items-center justify-between">
82
+ <button id="menuToggle" class="text-xl">
83
+ <i class="fas fa-bars"></i>
84
+ </button>
85
+ <h1 class="text-xl font-bold">Shorts Automator</h1>
86
+ <div class="w-6"></div> <!-- Spacer for alignment -->
87
+ </div>
88
+
89
+ <!-- Main Content Area -->
90
+ <main class="flex-1 overflow-y-auto p-6">
91
+ <div class="max-w-7xl mx-auto">
92
+ <!-- Header -->
93
+ <div class="flex flex-col md:flex-row justify-between items-start md:items-center mb-8">
94
+ <div>
95
+ <h2 class="text-2xl font-bold text-gray-800">Dashboard</h2>
96
+ <p class="text-gray-600">Automate your YouTube Shorts posting</p>
97
+ </div>
98
+ <button class="gradient-bg text-white px-6 py-2 rounded-lg font-medium mt-4 md:mt-0 flex items-center space-x-2 hover:opacity-90 transition">
99
+ <i class="fas fa-plus"></i>
100
+ <span>New Short</span>
101
+ </button>
102
+ </div>
103
+
104
+ <!-- Stats Cards -->
105
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6 mb-8">
106
+ <div class="bg-white rounded-xl shadow p-6">
107
+ <div class="flex items-center justify-between">
108
+ <div>
109
+ <p class="text-gray-500">Total Shorts</p>
110
+ <h3 class="text-3xl font-bold mt-1">24</h3>
111
+ </div>
112
+ <div class="p-3 rounded-full bg-blue-100 text-blue-600">
113
+ <i class="fas fa-film text-xl"></i>
114
+ </div>
115
+ </div>
116
+ <p class="text-green-500 text-sm mt-2">+5 this week</p>
117
+ </div>
118
+ <div class="bg-white rounded-xl shadow p-6">
119
+ <div class="flex items-center justify-between">
120
+ <div>
121
+ <p class="text-gray-500">Scheduled</p>
122
+ <h3 class="text-3xl font-bold mt-1">8</h3>
123
+ </div>
124
+ <div class="p-3 rounded-full bg-purple-100 text-purple-600">
125
+ <i class="fas fa-calendar-alt text-xl"></i>
126
+ </div>
127
+ </div>
128
+ <p class="text-blue-500 text-sm mt-2">Next: in 2 hours</p>
129
+ </div>
130
+ <div class="bg-white rounded-xl shadow p-6">
131
+ <div class="flex items-center justify-between">
132
+ <div>
133
+ <p class="text-gray-500">Average Views</p>
134
+ <h3 class="text-3xl font-bold mt-1">3.2K</h3>
135
+ </div>
136
+ <div class="p-3 rounded-full bg-green-100 text-green-600">
137
+ <i class="fas fa-eye text-xl"></i>
138
+ </div>
139
+ </div>
140
+ <p class="text-green-500 text-sm mt-2">↑ 12% from last week</p>
141
+ </div>
142
+ </div>
143
+
144
+ <!-- Upload Section -->
145
+ <div class="bg-white rounded-xl shadow p-6 mb-8">
146
+ <h3 class="text-xl font-bold text-gray-800 mb-4">Upload New Short</h3>
147
+
148
+ <div class="grid grid-cols-1 lg:grid-cols-3 gap-6">
149
+ <!-- Video Upload -->
150
+ <div class="lg:col-span-2">
151
+ <div class="border-2 border-dashed border-gray-300 rounded-xl p-6 text-center video-preview flex flex-col items-center justify-center">
152
+ <i class="fas fa-cloud-upload-alt text-4xl text-gray-400 mb-4"></i>
153
+ <p class="text-gray-500 mb-2">Drag & drop your Short video here</p>
154
+ <p class="text-sm text-gray-400 mb-4">or</p>
155
+ <button class="gradient-bg text-white px-6 py-2 rounded-lg font-medium flex items-center space-x-2 hover:opacity-90 transition">
156
+ <i class="fas fa-folder-open"></i>
157
+ <span>Browse Files</span>
158
+ </button>
159
+ <p class="text-xs text-gray-400 mt-3">MP4, MOV • 9:16 aspect ratio • Max 60s</p>
160
+ </div>
161
+ </div>
162
+
163
+ <!-- Details Form -->
164
+ <div>
165
+ <div class="space-y-4">
166
+ <div>
167
+ <label class="block text-gray-700 mb-1">Title</label>
168
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400 focus:border-transparent" placeholder="Catchy title for your Short">
169
+ </div>
170
+ <div>
171
+ <label class="block text-gray-700 mb-1">Description</label>
172
+ <textarea class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400 focus:border-transparent" rows="3" placeholder="Tell viewers about your Short"></textarea>
173
+ </div>
174
+ <div>
175
+ <label class="block text-gray-700 mb-1">Tags</label>
176
+ <input type="text" class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400 focus:border-transparent" placeholder="#shorts #viral #trending">
177
+ <p class="text-xs text-gray-500 mt-1">Separate tags with spaces</p>
178
+ </div>
179
+ <div>
180
+ <label class="block text-gray-700 mb-1">Schedule</label>
181
+ <div class="flex items-center space-x-2">
182
+ <select class="flex-1 px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400 focus:border-transparent">
183
+ <option>Publish immediately</option>
184
+ <option>Schedule for later</option>
185
+ <option>Add to queue</option>
186
+ </select>
187
+ <input type="datetime-local" class="px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-yellow-400 focus:border-transparent bg-gray-100 schedule-time-input">
188
+ </div>
189
+ </div>
190
+ <div class="pt-2">
191
+ <button class="gradient-bg text-white w-full py-3 rounded-lg font-medium flex items-center justify-center space-x-2 hover:opacity-90 transition">
192
+ <i class="fas fa-paper-plane"></i>
193
+ <span>Publish Short</span>
194
+ </button>
195
+ </div>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ </div>
200
+
201
+ <!-- Scheduled Shorts -->
202
+ <div class="bg-white rounded-xl shadow p-6">
203
+ <div class="flex justify-between items-center mb-6">
204
+ <h3 class="text-xl font-bold text-gray-800">Scheduled Shorts</h3>
205
+ <div class="flex items-center space-x-2">
206
+ <button class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50">
207
+ <i class="fas fa-filter"></i>
208
+ </button>
209
+ <button class="px-4 py-2 border border-gray-300 rounded-lg hover:bg-gray-50">
210
+ <i class="fas fa-sort"></i>
211
+ </button>
212
+ </div>
213
+ </div>
214
+
215
+ <div class="overflow-x-auto">
216
+ <table class="min-w-full divide-y divide-gray-200">
217
+ <thead class="bg-gray-50">
218
+ <tr>
219
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Thumbnail</th>
220
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Title</th>
221
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Schedule Time</th>
222
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th>
223
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th>
224
+ </tr>
225
+ </thead>
226
+ <tbody class="bg-white divide-y divide-gray-200">
227
+ <tr>
228
+ <td class="px-6 py-4 whitespace-nowrap">
229
+ <div class="w-16 h-24 bg-gray-200 rounded overflow-hidden">
230
+ <img src="https://via.placeholder.com/1080x1920" class="w-full h-full object-cover">
231
+ </div>
232
+ </td>
233
+ <td class="px-6 py-4 whitespace-nowrap">
234
+ <div class="text-sm font-medium text-gray-900">Morning Routine 2023</div>
235
+ <div class="text-sm text-gray-500">#routine #morning</div>
236
+ </td>
237
+ <td class="px-6 py-4 whitespace-nowrap">
238
+ <div class="text-sm text-gray-900">Today, 8:00 AM</div>
239
+ <div class="text-xs text-gray-500">in 2 hours</div>
240
+ </td>
241
+ <td class="px-6 py-4 whitespace-nowrap">
242
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-yellow-100 text-yellow-800">Scheduled</span>
243
+ </td>
244
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
245
+ <button class="text-blue-600 hover:text-blue-900 mr-3"><i class="fas fa-edit"></i></button>
246
+ <button class="text-red-600 hover:text-red-900"><i class="fas fa-trash"></i></button>
247
+ </td>
248
+ </tr>
249
+ <tr>
250
+ <td class="px-6 py-4 whitespace-nowrap">
251
+ <div class="w-16 h-24 bg-gray-200 rounded overflow-hidden">
252
+ <img src="https://via.placeholder.com/1080x1920" class="w-full h-full object-cover">
253
+ </div>
254
+ </td>
255
+ <td class="px-6 py-4 whitespace-nowrap">
256
+ <div class="text-sm font-medium text-gray-900">5 Minute Workout</div>
257
+ <div class="text-sm text-gray-500">#fitness #workout</div>
258
+ </td>
259
+ <td class="px-6 py-4 whitespace-nowrap">
260
+ <div class="text-sm text-gray-900">Tomorrow, 7:00 AM</div>
261
+ <div class="text-xs text-gray-500">in 25 hours</div>
262
+ </td>
263
+ <td class="px-6 py-4 whitespace-nowrap">
264
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-blue-100 text-blue-800">Queued</span>
265
+ </td>
266
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
267
+ <button class="text-blue-600 hover:text-blue-900 mr-3"><i class="fas fa-edit"></i></button>
268
+ <button class="text-red-600 hover:text-red-900"><i class="fas fa-trash"></i></button>
269
+ </td>
270
+ </tr>
271
+ <tr>
272
+ <td class="px-6 py-4 whitespace-nowrap">
273
+ <div class="w-16 h-24 bg-gray-200 rounded overflow-hidden">
274
+ <img src="https://via.placeholder.com/1080x1920" class="w-full h-full object-cover">
275
+ </div>
276
+ </td>
277
+ <td class="px-6 py-4 whitespace-nowrap">
278
+ <div class="text-sm font-medium text-gray-900">Quick Recipe Idea</div>
279
+ <div class="text-sm text-gray-500">#cooking #food</div>
280
+ </td>
281
+ <td class="px-6 py-4 whitespace-nowrap">
282
+ <div class="text-sm text-gray-900">Friday, 12:00 PM</div>
283
+ <div class="text-xs text-gray-500">in 3 days</div>
284
+ </td>
285
+ <td class="px-6 py-4 whitespace-nowrap">
286
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-blue-100 text-blue-800">Queued</span>
287
+ </td>
288
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
289
+ <button class="text-blue-600 hover:text-blue-900 mr-3"><i class="fas fa-edit"></i></button>
290
+ <button class="text-red-600 hover:text-red-900"><i class="fas fa-trash"></i></button>
291
+ </td>
292
+ </tr>
293
+ </tbody>
294
+ </table>
295
+ </div>
296
+ </div>
297
+ </div>
298
+ </main>
299
+ </div>
300
+ </div>
301
+
302
+ <script>
303
+ // Mobile menu toggle
304
+ document.getElementById('menuToggle').addEventListener('click', function() {
305
+ document.querySelector('.sidebar').classList.toggle('active');
306
+ });
307
+
308
+ // Connect to YouTube API
309
+ function connectYouTube() {
310
+ // In a real implementation, this would connect to YouTube API
311
+ alert('Connecting to your YouTube account...');
312
+ // You would implement OAuth flow here
313
+ }
314
+
315
+ // File upload handling
316
+ const fileUpload = document.querySelector('.video-preview');
317
+ fileUpload.addEventListener('dragover', (e) => {
318
+ e.preventDefault();
319
+ fileUpload.classList.add('border-yellow-400', 'bg-yellow-50');
320
+ });
321
+
322
+ fileUpload.addEventListener('dragleave', () => {
323
+ fileUpload.classList.remove('border-yellow-400', 'bg-yellow-50');
324
+ });
325
+
326
+ fileUpload.addEventListener('drop', (e) => {
327
+ e.preventDefault();
328
+ fileUpload.classList.remove('border-yellow-400', 'bg-yellow-50');
329
+
330
+ // Handle the dropped files
331
+ const files = e.dataTransfer.files;
332
+ if (files.length) {
333
+ const file = files[0];
334
+ if (file.type.includes('video')) {
335
+ // Create video preview
336
+ const videoURL = URL.createObjectURL(file);
337
+ fileUpload.innerHTML = `
338
+ <video src="${videoURL}" controls class="w-full h-full object-cover rounded-lg"></video>
339
+ <p class="text-sm text-white bg-black bg-opacity-50 px-2 py-1 rounded absolute bottom-2 left-2">${file.name}</p>
340
+ `;
341
+ } else {
342
+ alert('Please upload a video file');
343
+ }
344
+ }
345
+ });
346
+
347
+ // Form submission
348
+ document.querySelector('button[type="submit"]')?.addEventListener('click', function(e) {
349
+ e.preventDefault();
350
+ // In a real implementation, this would submit to YouTube API
351
+ alert('Your Short has been scheduled!');
352
+ });
353
+ </script>
354
+ <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=Dappi/devilking" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
355
+ </html>