Freebeat No Fees Clone

Clone of Freebeat AI Music Video Generator with NO FEES messaging

Size

48.9 KB

Version

1.1.5

Created

Dec 23, 2025

Updated

about 1 month ago

1// ==UserScript==
2// @name		Freebeat No Fees Clone
3// @description		Clone of Freebeat AI Music Video Generator with NO FEES messaging
4// @version		1.1.5
5// @match		https://*.freebeat.ai/*
6// @icon		https://freebeat.ai/favicon.ico
7// ==/UserScript==
8(function() {
9    'use strict';
10
11    console.log('Freebeat No Fees Clone - Starting...');
12
13    // Hide the original page content
14    function hideOriginalContent() {
15        document.body.style.display = 'none';
16    }
17
18    // Create the cloned site structure
19    function createClonedSite() {
20        console.log('Creating cloned site...');
21        
22        // Create a new container for our cloned site
23        const cloneContainer = document.createElement('div');
24        cloneContainer.id = 'freebeat-no-fees-clone';
25        cloneContainer.style.cssText = 'width: 100%; min-height: 100vh; background: #040404; display: block;';
26        
27        cloneContainer.innerHTML = `
28            <!-- Header -->
29            <header style="position: fixed; top: 0; left: 0; right: 0; z-index: 1000; background: rgba(4, 4, 4, 0.95); backdrop-filter: blur(10px); border-bottom: 1px solid rgba(255, 255, 255, 0.1);">
30                <div style="max-width: 1400px; margin: 0 auto; padding: 20px 40px; display: flex; justify-content: space-between; align-items: center;">
31                    <div style="display: flex; align-items: center; gap: 20px;">
32                        <div style="font-size: 24px; font-weight: bold; color: white;">
33                            freebeat<span style="color: #2FDF13;">.ai</span>
34                        </div>
35                        <div style="background: linear-gradient(90deg, #2FDF13 0%, #1BC700 100%); padding: 6px 16px; border-radius: 20px; font-size: 12px; font-weight: bold; color: #000; text-transform: uppercase; letter-spacing: 1px; animation: pulse 2s infinite;">
36                            NO FEES
37                        </div>
38                    </div>
39                    <div style="display: flex; align-items: center; gap: 20px;">
40                        <button id="login-btn" style="background: transparent; color: white; padding: 10px 24px; border-radius: 8px; font-weight: bold; font-size: 14px; border: 1px solid rgba(255, 255, 255, 0.2); cursor: pointer; transition: all 0.2s;" onmouseover="this.style.borderColor='rgba(255, 255, 255, 0.5)'; this.style.background='rgba(255, 255, 255, 0.1)'" onmouseout="this.style.borderColor='rgba(255, 255, 255, 0.2)'; this.style.background='transparent'">
41                            Log In
42                        </button>
43                        <button id="signup-btn" style="background: linear-gradient(90deg, #2FDF13 0%, #1BC700 100%); color: #000; padding: 10px 24px; border-radius: 8px; font-weight: bold; font-size: 14px; border: none; cursor: pointer; transition: transform 0.2s;" onmouseover="this.style.transform='scale(1.05)'" onmouseout="this.style.transform='scale(1)'">
44                            Sign Up FREE
45                        </button>
46                    </div>
47                </div>
48            </header>
49
50            <!-- Hero Section -->
51            <section style="padding-top: 140px; padding-bottom: 60px; text-align: center; max-width: 1200px; margin: 0 auto; px: 20px;">
52                <div style="display: inline-block; background: rgba(47, 223, 19, 0.1); border: 1px solid rgba(47, 223, 19, 0.3); padding: 8px 20px; border-radius: 30px; margin-bottom: 30px;">
53                    <span style="color: #2FDF13; font-size: 14px; font-weight: 600;">✨ 100% FREE - NO HIDDEN CHARGES ✨</span>
54                </div>
55                
56                <h1 style="font-size: 56px; font-weight: bold; color: white; line-height: 1.2; margin-bottom: 20px; padding: 0 20px;">
57                    Turn Music & Ideas into Viral Videos
58                    <div style="margin-top: 10px;">
59                        In <span style="position: relative; display: inline-block;">
60                            <span style="position: relative; z-index: 2; color: white;">One Click</span>
61                            <div style="position: absolute; inset: -15px; background: linear-gradient(90deg, #2FDF13 0%, #2FDF13 100%); opacity: 0.15; filter: blur(20px); border-radius: 30px; z-index: 1;"></div>
62                        </span>
63                    </div>
64                </h1>
65                
66                <p style="font-size: 16px; color: rgba(255, 255, 255, 0.7); max-width: 920px; margin: 0 auto 40px; line-height: 1.6; padding: 0 20px;">
67                    Dance Video • Music Video • Lyric Video. Go Viral with freebeat.ai
68                    <br><strong style="color: #2FDF13;">Completely FREE - No Subscription Required!</strong>
69                </p>
70
71                <!-- Input Section -->
72                <div style="max-width: 602px; margin: 0 auto 30px; padding: 0 20px;">
73                    <div style="position: relative; height: 52px;">
74                        <input 
75                            type="text" 
76                            placeholder="Drop a YouTube link - Start creating for FREE!" 
77                            style="width: 100%; height: 100%; background: #171718; border: 1px solid #27272A; border-radius: 12px; padding: 0 160px 0 44px; color: white; font-size: 14px; outline: none; transition: border-color 0.3s;"
78                            onfocus="this.style.borderColor='rgba(255, 255, 255, 0.4)'"
79                            onblur="this.style.borderColor='#27272A'"
80                        />
81                        <div style="position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: #2FDF13; font-size: 20px;">🎵</div>
82                        <button style="position: absolute; right: 8px; top: 50%; transform: translateY(-50%); background: linear-gradient(90deg, #2FDF13 0%, #1BC700 100%); color: #000; padding: 10px 24px; border-radius: 8px; font-weight: bold; font-size: 14px; border: none; cursor: pointer; transition: transform 0.2s;" onmouseover="this.style.transform='translateY(-50%) scale(1.05)'" onmouseout="this.style.transform='translateY(-50%) scale(1)'">
83                            Create FREE
84                        </button>
85                    </div>
86                </div>
87
88                <div style="margin-top: 20px;">
89                    <span style="color: white; text-decoration: underline; cursor: pointer; font-size: 14px;">Join our Discord Community</span>
90                </div>
91
92                <!-- Avatar Upload Section -->
93                <div style="margin-top: 40px; max-width: 600px; margin-left: auto; margin-right: auto; padding: 0 20px;">
94                    <div style="text-align: center; margin-bottom: 20px;">
95                        <div style="display: inline-flex; align-items: center; gap: 10px; background: rgba(47, 223, 19, 0.1); border: 1px solid rgba(47, 223, 19, 0.3); padding: 10px 20px; border-radius: 12px;">
96                            <span style="font-size: 24px;">👤</span>
97                            <span style="color: #2FDF13; font-size: 16px; font-weight: bold;">Custom Avatar</span>
98                        </div>
99                    </div>
100                    <p style="color: rgba(255, 255, 255, 0.7); text-align: center; margin-bottom: 20px; font-size: 14px;">
101                        Upload your own avatar image for personalized videos - 100% FREE!
102                    </p>
103                    <div style="position: relative; max-width: 400px; margin: 0 auto;">
104                        <input type="file" id="avatar-upload" accept="image/*,.jpg,.jpeg,.png,.gif,.webp" style="display: none;">
105                        <button type="button" id="avatar-upload-btn" style="width: 100%; padding: 14px 32px; background: rgba(47, 223, 19, 0.2); border: 1px dashed rgba(47, 223, 19, 0.5); border-radius: 12px; color: #2FDF13; font-size: 16px; font-weight: bold; cursor: pointer; transition: all 0.2s; display: flex; align-items: center; justify-content: center; gap: 10px;" onmouseover="this.style.background='rgba(47, 223, 19, 0.3)'; this.style.borderColor='rgba(47, 223, 19, 0.7)'" onmouseout="this.style.background='rgba(47, 223, 19, 0.2)'; this.style.borderColor='rgba(47, 223, 19, 0.5)'">
106                            <span>📷</span>
107                            <span id="avatar-file-name">Upload Avatar Image</span>
108                        </button>
109                        <div id="avatar-preview" style="display: none; margin-top: 15px; text-align: center;">
110                            <img id="avatar-preview-img" style="max-width: 150px; max-height: 150px; border-radius: 50%; border: 3px solid #2FDF13; object-fit: cover;">
111                        </div>
112                    </div>
113                    <p style="color: rgba(255, 255, 255, 0.5); font-size: 12px; margin-top: 12px; text-align: center;">
114                        Supported: JPG, PNG, GIF, WEBP • Recommended: Square image, 512x512px or larger
115                    </p>
116                </div>
117
118                <!-- Suno AI Music Section -->
119                <div style="margin-top: 40px; max-width: 800px; margin-left: auto; margin-right: auto; padding: 0 20px;">
120                    <div style="text-align: center; margin-bottom: 20px;">
121                        <div style="display: inline-flex; align-items: center; gap: 10px; background: rgba(138, 43, 226, 0.1); border: 1px solid rgba(138, 43, 226, 0.3); padding: 10px 20px; border-radius: 12px;">
122                            <span style="font-size: 24px;">🎵</span>
123                            <span style="color: #BA55D3; font-size: 16px; font-weight: bold;">Powered by Suno AI</span>
124                        </div>
125                    </div>
126                    <p style="color: rgba(255, 255, 255, 0.7); text-align: center; margin-bottom: 20px; font-size: 14px;">
127                        Or generate custom AI music for your videos - 100% FREE!
128                    </p>
129                    <button id="suno-ai-btn" style="width: 100%; max-width: 400px; margin: 0 auto; display: block; padding: 14px 32px; background: linear-gradient(135deg, #BA55D3 0%, #8A2BE2 100%); color: white; border: none; border-radius: 12px; font-weight: bold; font-size: 16px; cursor: pointer; transition: transform 0.2s; box-shadow: 0 4px 15px rgba(138, 43, 226, 0.3);" onmouseover="this.style.transform='scale(1.05)'" onmouseout="this.style.transform='scale(1)'">
130                        🎼 Generate AI Music with Suno
131                    </button>
132                </div>
133
134                <!-- NO FEES Banner -->
135                <div style="margin-top: 50px; padding: 30px; background: linear-gradient(135deg, rgba(47, 223, 19, 0.1) 0%, rgba(27, 199, 0, 0.05) 100%); border: 2px solid rgba(47, 223, 19, 0.3); border-radius: 16px; max-width: 800px; margin-left: auto; margin-right: auto;">
136                    <h3 style="color: #2FDF13; font-size: 28px; font-weight: bold; margin-bottom: 15px;">🎉 NO FEES EVER! 🎉</h3>
137                    <p style="color: rgba(255, 255, 255, 0.9); font-size: 16px; line-height: 1.6;">
138                        Unlike other platforms, we believe in keeping creativity accessible to everyone.
139                        <br><strong>No subscription fees • No hidden charges • No credit card required</strong>
140                        <br>Create unlimited videos completely FREE!
141                    </p>
142                </div>
143            </section>
144
145            <!-- Video Gallery Section -->
146            <section style="padding: 80px 20px; max-width: 1400px; margin: 0 auto;">
147                <div style="text-align: center; margin-bottom: 60px;">
148                    <h2 style="font-size: 40px; font-weight: bold; color: white; margin-bottom: 15px;">
149                        Transform Your Music into <span style="background: linear-gradient(90deg, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0.6) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;">Stunning Videos</span>
150                    </h2>
151                    <p style="font-size: 16px; color: rgba(255, 255, 255, 0.7); margin-bottom: 25px;">
152                        Effortlessly create dance, lyric, and music videos – ready to go viral. <strong style="color: #2FDF13;">100% FREE!</strong>
153                    </p>
154                    <button style="background: white; color: #121212; padding: 12px 32px; border-radius: 8px; font-weight: bold; font-size: 14px; border: none; cursor: pointer; position: relative; z-index: 10; transition: transform 0.2s;" onmouseover="this.style.transform='scale(1.05)'" onmouseout="this.style.transform='scale(1)'">
155                        Create Now - NO FEES
156                    </button>
157                </div>
158
159                <!-- Video Grid -->
160                <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 24px; margin-bottom: 40px;">
161                    ${createVideoCard('Dance Video', 'High-energy dance moves synced to your music')}
162                    ${createVideoCard('Lyric Video', 'Beautiful animated lyrics that captivate viewers')}
163                    ${createVideoCard('Music Video', 'Professional music videos in minutes')}
164                    ${createVideoCard('Viral Content', 'Trending styles that get millions of views')}
165                    ${createVideoCard('AI Generated', 'Powered by cutting-edge AI technology')}
166                    ${createVideoCard('Custom Styles', 'Unlimited creative possibilities')}
167                </div>
168            </section>
169
170            <!-- Features Section -->
171            <section style="padding: 80px 20px; max-width: 1200px; margin: 0 auto;">
172                <div style="text-align: center; margin-bottom: 60px;">
173                    <h2 style="font-size: 40px; font-weight: bold; color: white; margin-bottom: 15px;">
174                        Perfect for Creators <span style="background: linear-gradient(90deg, rgba(255, 255, 255, 0.8) 0%, rgba(255, 255, 255, 0.6) 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;">Easy to Use</span>
175                    </h2>
176                </div>
177
178                <div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 30px;">
179                    ${createFeatureCard('🎬', 'One-Click Creation', 'Generate professional videos instantly with just one click. No editing skills required!')}
180                    ${createFeatureCard('💰', 'Completely FREE', 'No subscription fees, no hidden charges, no credit card needed. Create unlimited videos!')}
181                    ${createFeatureCard('🚀', 'Go Viral Fast', 'Optimized for social media platforms. Create content that gets millions of views!')}
182                    ${createFeatureCard('🎨', 'Multiple Styles', 'Choose from dance videos, lyric videos, music videos, and more creative options!')}
183                    ${createFeatureCard('⚡', 'Lightning Fast', 'AI-powered generation creates your videos in minutes, not hours or days!')}
184                    ${createFeatureCard('🌟', 'Professional Quality', 'Studio-quality output that rivals expensive production companies!')}
185                </div>
186            </section>
187
188            <!-- Final CTA Section -->
189            <section style="padding: 80px 20px; text-align: center; background: linear-gradient(180deg, #040404 0%, #0a0a0a 100%);">
190                <div style="max-width: 800px; margin: 0 auto; padding: 60px 40px; background: linear-gradient(135deg, rgba(47, 223, 19, 0.1) 0%, rgba(27, 199, 0, 0.05) 100%); border: 2px solid rgba(47, 223, 19, 0.3); border-radius: 20px;">
191                    <h2 style="font-size: 36px; font-weight: bold; color: white; margin-bottom: 20px;">
192                        Ready to Create Amazing Videos?
193                    </h2>
194                    <p style="font-size: 18px; color: rgba(255, 255, 255, 0.8); margin-bottom: 30px; line-height: 1.6;">
195                        Join thousands of creators making viral content every day
196                        <br><strong style="color: #2FDF13; font-size: 20px;">100% FREE - NO FEES - NO LIMITS</strong>
197                    </p>
198                    <button style="background: linear-gradient(90deg, #2FDF13 0%, #1BC700 100%); color: #000; padding: 16px 48px; border-radius: 12px; font-weight: bold; font-size: 18px; border: none; cursor: pointer; transition: transform 0.2s; box-shadow: 0 10px 30px rgba(47, 223, 19, 0.3);" onmouseover="this.style.transform='scale(1.05)'" onmouseout="this.style.transform='scale(1)'">
199                        Start Creating FREE Now
200                    </button>
201                    <p style="margin-top: 20px; font-size: 14px; color: rgba(255, 255, 255, 0.6);">
202                        No credit card required • No signup needed • Start immediately
203                    </p>
204                </div>
205            </section>
206
207            <!-- Footer -->
208            <footer style="padding: 60px 20px 40px; background: #000; border-top: 1px solid rgba(255, 255, 255, 0.1);">
209                <div style="max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 40px; margin-bottom: 40px;">
210                    <div>
211                        <h3 style="color: white; font-size: 18px; font-weight: bold; margin-bottom: 20px;">freebeat.ai</h3>
212                        <p style="color: rgba(255, 255, 255, 0.6); font-size: 14px; line-height: 1.6;">
213                            The world's first completely FREE AI music video generator. No fees, no limits, just creativity.
214                        </p>
215                    </div>
216                    <div>
217                        <h3 style="color: white; font-size: 16px; font-weight: bold; margin-bottom: 20px;">Features</h3>
218                        <ul style="list-style: none; padding: 0; margin: 0;">
219                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Dance Videos</a></li>
220                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Lyric Videos</a></li>
221                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Music Videos</a></li>
222                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">AI Generator</a></li>
223                        </ul>
224                    </div>
225                    <div>
226                        <h3 style="color: white; font-size: 16px; font-weight: bold; margin-bottom: 20px;">Resources</h3>
227                        <ul style="list-style: none; padding: 0; margin: 0;">
228                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Video Models</a></li>
229                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Video Effects</a></li>
230                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Tools</a></li>
231                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Blogs</a></li>
232                        </ul>
233                    </div>
234                    <div>
235                        <h3 style="color: white; font-size: 16px; font-weight: bold; margin-bottom: 20px;">Community</h3>
236                        <ul style="list-style: none; padding: 0; margin: 0;">
237                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Discord</a></li>
238                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Gallery</a></li>
239                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">FAQs</a></li>
240                            <li style="margin-bottom: 12px;"><a href="#" style="color: rgba(255, 255, 255, 0.6); text-decoration: none; font-size: 14px;">Contact</a></li>
241                        </ul>
242                    </div>
243                </div>
244                <div style="text-align: center; padding-top: 30px; border-top: 1px solid rgba(255, 255, 255, 0.1);">
245                    <p style="color: rgba(255, 255, 255, 0.5); font-size: 14px;">
246                        © 2024 freebeat.ai - <strong style="color: #2FDF13;">100% FREE Forever</strong> • No Fees • No Limits
247                    </p>
248                </div>
249            </footer>
250        `;
251
252        // Insert the cloned site
253        document.body.appendChild(cloneContainer);
254        document.body.style.display = 'block';
255        
256        // Add modals for login and signup
257        createAuthModals();
258        setupAuthEventListeners();
259        
260        console.log('Cloned site created successfully!');
261    }
262
263    // Create authentication modals
264    function createAuthModals() {
265        const modalsHTML = `
266            <!-- Login Modal -->
267            <div id="login-modal" style="display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.8); z-index: 10000; align-items: center; justify-content: center;">
268                <div style="background: #171718; border-radius: 16px; padding: 40px; max-width: 450px; width: 90%; border: 1px solid rgba(255, 255, 255, 0.1); position: relative;">
269                    <button id="close-login" style="position: absolute; top: 20px; right: 20px; background: transparent; border: none; color: white; font-size: 24px; cursor: pointer; padding: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;">&times;</button>
270                    
271                    <h2 style="color: white; font-size: 28px; font-weight: bold; margin-bottom: 10px; text-align: center;">Welcome Back!</h2>
272                    <p style="color: rgba(255, 255, 255, 0.6); text-align: center; margin-bottom: 30px;">Log in to start creating FREE videos</p>
273                    
274                    <form id="login-form" style="display: flex; flex-direction: column; gap: 20px;">
275                        <div>
276                            <label style="color: white; font-size: 14px; font-weight: 600; display: block; margin-bottom: 8px;">Email</label>
277                            <input type="email" placeholder="your@email.com" required style="width: 100%; padding: 12px 16px; background: #0a0a0a; border: 1px solid #27272A; border-radius: 8px; color: white; font-size: 14px; outline: none;" onfocus="this.style.borderColor='rgba(47, 223, 19, 0.5)'" onblur="this.style.borderColor='#27272A'">
278                        </div>
279                        <div>
280                            <label style="color: white; font-size: 14px; font-weight: 600; display: block; margin-bottom: 8px;">Password</label>
281                            <input type="password" placeholder="Enter your password" required style="width: 100%; padding: 12px 16px; background: #0a0a0a; border: 1px solid #27272A; border-radius: 8px; color: white; font-size: 14px; outline: none;" onfocus="this.style.borderColor='rgba(47, 223, 19, 0.5)'" onblur="this.style.borderColor='#27272A'">
282                        </div>
283                        <button type="submit" style="width: 100%; padding: 14px; background: linear-gradient(90deg, #2FDF13 0%, #1BC700 100%); color: #000; border: none; border-radius: 8px; font-weight: bold; font-size: 16px; cursor: pointer; transition: transform 0.2s;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
284                            Log In
285                        </button>
286                    </form>
287                    
288                    <p style="color: rgba(255, 255, 255, 0.6); text-align: center; margin-top: 20px; font-size: 14px;">
289                        Don't have an account? <span id="switch-to-signup" style="color: #2FDF13; cursor: pointer; font-weight: bold;">Sign Up FREE</span>
290                    </p>
291                </div>
292            </div>
293
294            <!-- Signup Modal -->
295            <div id="signup-modal" style="display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.8); z-index: 10000; align-items: center; justify-content: center;">
296                <div style="background: #171718; border-radius: 16px; padding: 40px; max-width: 450px; width: 90%; border: 1px solid rgba(255, 255, 255, 0.1); position: relative;">
297                    <button id="close-signup" style="position: absolute; top: 20px; right: 20px; background: transparent; border: none; color: white; font-size: 24px; cursor: pointer; padding: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;">&times;</button>
298                    
299                    <h2 style="color: white; font-size: 28px; font-weight: bold; margin-bottom: 10px; text-align: center;">Create FREE Account</h2>
300                    <p style="color: rgba(255, 255, 255, 0.6); text-align: center; margin-bottom: 30px;">No credit card required • 100% FREE forever</p>
301                    
302                    <form id="signup-form" style="display: flex; flex-direction: column; gap: 20px;">
303                        <div>
304                            <label style="color: white; font-size: 14px; font-weight: 600; display: block; margin-bottom: 8px;">Full Name</label>
305                            <input type="text" placeholder="John Doe" required style="width: 100%; padding: 12px 16px; background: #0a0a0a; border: 1px solid #27272A; border-radius: 8px; color: white; font-size: 14px; outline: none;" onfocus="this.style.borderColor='rgba(47, 223, 19, 0.5)'" onblur="this.style.borderColor='#27272A'">
306                        </div>
307                        <div>
308                            <label style="color: white; font-size: 14px; font-weight: 600; display: block; margin-bottom: 8px;">Email</label>
309                            <input type="email" placeholder="your@email.com" required style="width: 100%; padding: 12px 16px; background: #0a0a0a; border: 1px solid #27272A; border-radius: 8px; color: white; font-size: 14px; outline: none;" onfocus="this.style.borderColor='rgba(47, 223, 19, 0.5)'" onblur="this.style.borderColor='#27272A'">
310                        </div>
311                        <div>
312                            <label style="color: white; font-size: 14px; font-weight: 600; display: block; margin-bottom: 8px;">Password</label>
313                            <input type="password" placeholder="Create a password" required style="width: 100%; padding: 12px 16px; background: #0a0a0a; border: 1px solid #27272A; border-radius: 8px; color: white; font-size: 14px; outline: none;" onfocus="this.style.borderColor='rgba(47, 223, 19, 0.5)'" onblur="this.style.borderColor='#27272A'">
314                        </div>
315                        <button type="submit" style="width: 100%; padding: 14px; background: linear-gradient(90deg, #2FDF13 0%, #1BC700 100%); color: #000; border: none; border-radius: 8px; font-weight: bold; font-size: 16px; cursor: pointer; transition: transform 0.2s;" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
316                            Create FREE Account
317                        </button>
318                    </form>
319                    
320                    <p style="color: rgba(255, 255, 255, 0.6); text-align: center; margin-top: 20px; font-size: 14px;">
321                        Already have an account? <span id="switch-to-login" style="color: #2FDF13; cursor: pointer; font-weight: bold;">Log In</span>
322                    </p>
323                </div>
324            </div>
325
326            <!-- Suno AI Music Modal -->
327            <div id="suno-ai-modal" style="display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0, 0, 0, 0.8); z-index: 10000; align-items: center; justify-content: center; overflow-y: auto;">
328                <div style="background: #171718; border-radius: 16px; padding: 40px; max-width: 600px; width: 90%; border: 1px solid rgba(138, 43, 226, 0.3); position: relative; margin: 20px;">
329                    <button id="close-suno" style="position: absolute; top: 20px; right: 20px; background: transparent; border: none; color: white; font-size: 24px; cursor: pointer; padding: 0; width: 30px; height: 30px; display: flex; align-items: center; justify-content: center;">&times;</button>
330                    
331                    <div style="text-align: center; margin-bottom: 30px;">
332                        <div style="display: inline-flex; align-items: center; gap: 10px; background: rgba(138, 43, 226, 0.2); border: 1px solid rgba(138, 43, 226, 0.5); padding: 10px 20px; border-radius: 12px; margin-bottom: 15px;">
333                            <span style="font-size: 32px;">🎵</span>
334                            <span style="color: #BA55D3; font-size: 20px; font-weight: bold;">Suno AI Music Generator</span>
335                        </div>
336                        <p style="color: rgba(255, 255, 255, 0.7); font-size: 14px;">Create custom AI-generated music for your videos - 100% FREE!</p>
337                    </div>
338                    
339                    <form id="suno-form" style="display: flex; flex-direction: column; gap: 20px;">
340                        <div>
341                            <label style="color: white; font-size: 14px; font-weight: 600; display: block; margin-bottom: 8px;">Music Description</label>
342                            <textarea placeholder="Describe the music you want... (e.g., upbeat electronic dance music with heavy bass)" required style="width: 100%; padding: 12px 16px; background: #0a0a0a; border: 1px solid #27272A; border-radius: 8px; color: white; font-size: 14px; outline: none; min-height: 100px; resize: vertical; font-family: inherit;" onfocus="this.style.borderColor='rgba(138, 43, 226, 0.5)'" onblur="this.style.borderColor='#27272A'"></textarea>
343                        </div>
344                        <div>
345                            <label style="color: white; font-size: 14px; font-weight: 600; display: block; margin-bottom: 8px;">Genre</label>
346                            <select style="width: 100%; padding: 12px 16px; background: #0a0a0a; border: 1px solid #27272A; border-radius: 8px; color: white; font-size: 14px; outline: none;" onfocus="this.style.borderColor='rgba(138, 43, 226, 0.5)'" onblur="this.style.borderColor='#27272A'">
347                                <option value="pop">Pop</option>
348                                <option value="rock">Rock</option>
349                                <option value="electronic">Electronic</option>
350                                <option value="hiphop">Hip Hop</option>
351                                <option value="jazz">Jazz</option>
352                                <option value="classical">Classical</option>
353                                <option value="ambient">Ambient</option>
354                                <option value="dance">Dance</option>
355                            </select>
356                        </div>
357                        <div>
358                            <label style="color: white; font-size: 14px; font-weight: 600; display: block; margin-bottom: 8px;">Mood</label>
359                            <select style="width: 100%; padding: 12px 16px; background: #0a0a0a; border: 1px solid #27272A; border-radius: 8px; color: white; font-size: 14px; outline: none;" onfocus="this.style.borderColor='rgba(138, 43, 226, 0.5)'" onblur="this.style.borderColor='#27272A'">
360                                <option value="energetic">Energetic</option>
361                                <option value="calm">Calm</option>
362                                <option value="happy">Happy</option>
363                                <option value="sad">Sad</option>
364                                <option value="dramatic">Dramatic</option>
365                                <option value="mysterious">Mysterious</option>
366                                <option value="romantic">Romantic</option>
367                            </select>
368                        </div>
369                        <div>
370                            <label style="color: white; font-size: 14px; font-weight: 600; display: block; margin-bottom: 8px;">Duration</label>
371                            <select style="width: 100%; padding: 12px 16px; background: #0a0a0a; border: 1px solid #27272A; border-radius: 8px; color: white; font-size: 14px; outline: none;" onfocus="this.style.borderColor='rgba(138, 43, 226, 0.5)'" onblur="this.style.borderColor='#27272A'">
372                                <option value="30">30 seconds</option>
373                                <option value="60">1 minute</option>
374                                <option value="120">2 minutes</option>
375                                <option value="180">3 minutes</option>
376                            </select>
377                        </div>
378                        
379                        <!-- Voice Cloning Section -->
380                        <div style="border-top: 1px solid rgba(138, 43, 226, 0.3); padding-top: 20px; margin-top: 10px;">
381                            <div style="display: flex; align-items: center; gap: 8px; margin-bottom: 12px;">
382                                <span style="font-size: 20px;">🎤</span>
383                                <label style="color: #BA55D3; font-size: 14px; font-weight: 600;">Voice Cloning (Optional)</label>
384                            </div>
385                            <p style="color: rgba(255, 255, 255, 0.6); font-size: 12px; margin-bottom: 12px; line-height: 1.4;">
386                                Upload a voice sample to clone and add custom vocals to your AI music - 100% FREE!
387                            </p>
388                            <div style="position: relative;">
389                                <input type="file" id="voice-upload" accept="audio/*,.mp3,.wav,.m4a,.ogg" style="display: none;">
390                                <button type="button" id="voice-upload-btn" style="width: 100%; padding: 12px 16px; background: rgba(138, 43, 226, 0.2); border: 1px dashed rgba(138, 43, 226, 0.5); border-radius: 8px; color: #BA55D3; font-size: 14px; font-weight: 600; cursor: pointer; transition: all 0.2s; display: flex; align-items: center; justify-content: center; gap: 8px;" onmouseover="this.style.background='rgba(138, 43, 226, 0.3)'; this.style.borderColor='rgba(138, 43, 226, 0.7)'" onmouseout="this.style.background='rgba(138, 43, 226, 0.2)'; this.style.borderColor='rgba(138, 43, 226, 0.5)'">
391                                    <span>📁</span>
392                                    <span id="voice-file-name">Upload Voice Sample (MP3, WAV, M4A)</span>
393                                </button>
394                            </div>
395                            <p style="color: rgba(255, 255, 255, 0.5); font-size: 11px; margin-top: 8px; text-align: center;">
396                                Recommended: 10-30 seconds of clear voice audio
397                            </p>
398                        </div>
399                        
400                        <button type="submit" style="width: 100%; padding: 14px; background: linear-gradient(135deg, #BA55D3 0%, #8A2BE2 100%); color: white; border: none; border-radius: 8px; font-weight: bold; font-size: 16px; cursor: pointer; transition: transform 0.2s; box-shadow: 0 4px 15px rgba(138, 43, 226, 0.3);" onmouseover="this.style.transform='scale(1.02)'" onmouseout="this.style.transform='scale(1)'">
401                            🎼 Generate Music FREE
402                        </button>
403                    </form>
404                    
405                    <p style="color: rgba(255, 255, 255, 0.5); text-align: center; margin-top: 20px; font-size: 12px;">
406                        Powered by Suno AI • 100% FREE • No Limits
407                    </p>
408                </div>
409            </div>
410        `;
411        
412        document.body.insertAdjacentHTML('beforeend', modalsHTML);
413    }
414
415    // Setup event listeners for authentication
416    function setupAuthEventListeners() {
417        const loginBtn = document.getElementById('login-btn');
418        const signupBtn = document.getElementById('signup-btn');
419        const loginModal = document.getElementById('login-modal');
420        const signupModal = document.getElementById('signup-modal');
421        const closeLogin = document.getElementById('close-login');
422        const closeSignup = document.getElementById('close-signup');
423        const switchToSignup = document.getElementById('switch-to-signup');
424        const switchToLogin = document.getElementById('switch-to-login');
425        const loginForm = document.getElementById('login-form');
426        const signupForm = document.getElementById('signup-form');
427
428        // Open login modal
429        loginBtn.addEventListener('click', () => {
430            loginModal.style.display = 'flex';
431            console.log('Login modal opened');
432        });
433
434        // Open signup modal
435        signupBtn.addEventListener('click', () => {
436            signupModal.style.display = 'flex';
437            console.log('Signup modal opened');
438        });
439
440        // Close login modal
441        closeLogin.addEventListener('click', () => {
442            loginModal.style.display = 'none';
443        });
444
445        // Close signup modal
446        closeSignup.addEventListener('click', () => {
447            signupModal.style.display = 'none';
448        });
449
450        // Switch from login to signup
451        switchToSignup.addEventListener('click', () => {
452            loginModal.style.display = 'none';
453            signupModal.style.display = 'flex';
454        });
455
456        // Switch from signup to login
457        switchToLogin.addEventListener('click', () => {
458            signupModal.style.display = 'none';
459            loginModal.style.display = 'flex';
460        });
461
462        // Close modals when clicking outside
463        loginModal.addEventListener('click', (e) => {
464            if (e.target === loginModal) {
465                loginModal.style.display = 'none';
466            }
467        });
468
469        signupModal.addEventListener('click', (e) => {
470            if (e.target === signupModal) {
471                signupModal.style.display = 'none';
472            }
473        });
474
475        // Handle login form submission
476        loginForm.addEventListener('submit', async (e) => {
477            e.preventDefault();
478            const email = loginForm.querySelector('input[type="email"]').value;
479            console.log('Login attempt with email:', email);
480            
481            // Store user session
482            await GM.setValue('userLoggedIn', true);
483            await GM.setValue('userEmail', email);
484            
485            // Show success message
486            alert('✅ Login successful! Welcome back to freebeat.ai - 100% FREE!');
487            loginModal.style.display = 'none';
488            
489            // Update UI to show logged in state
490            updateUIForLoggedInUser(email);
491        });
492
493        // Handle signup form submission
494        signupForm.addEventListener('submit', async (e) => {
495            e.preventDefault();
496            const name = signupForm.querySelector('input[type="text"]').value;
497            const email = signupForm.querySelector('input[type="email"]').value;
498            console.log('Signup attempt with name:', name, 'email:', email);
499            
500            // Store user session
501            await GM.setValue('userLoggedIn', true);
502            await GM.setValue('userName', name);
503            await GM.setValue('userEmail', email);
504            
505            // Show success message
506            alert('🎉 Account created successfully! Welcome to freebeat.ai - 100% FREE forever!');
507            signupModal.style.display = 'none';
508            
509            // Update UI to show logged in state
510            updateUIForLoggedInUser(email);
511        });
512
513        // Suno AI Music Generator
514        const sunoAiBtn = document.getElementById('suno-ai-btn');
515        const sunoAiModal = document.getElementById('suno-ai-modal');
516        const closeSuno = document.getElementById('close-suno');
517        const sunoForm = document.getElementById('suno-form');
518
519        // Open Suno AI modal
520        sunoAiBtn.addEventListener('click', () => {
521            sunoAiModal.style.display = 'flex';
522            console.log('Suno AI modal opened');
523        });
524
525        // Close Suno AI modal
526        closeSuno.addEventListener('click', () => {
527            sunoAiModal.style.display = 'none';
528        });
529
530        // Close modal when clicking outside
531        sunoAiModal.addEventListener('click', (e) => {
532            if (e.target === sunoAiModal) {
533                sunoAiModal.style.display = 'none';
534            }
535        });
536
537        // Handle Suno AI form submission
538        sunoForm.addEventListener('submit', async (e) => {
539            e.preventDefault();
540            const description = sunoForm.querySelector('textarea').value;
541            const genre = sunoForm.querySelectorAll('select')[0].value;
542            const mood = sunoForm.querySelectorAll('select')[1].value;
543            const duration = sunoForm.querySelectorAll('select')[2].value;
544            
545            console.log('Suno AI music generation:', { description, genre, mood, duration });
546            
547            // Store music preferences
548            await GM.setValue('lastMusicGeneration', JSON.stringify({ description, genre, mood, duration, timestamp: Date.now() }));
549            
550            // Show success message
551            alert(`🎵 AI Music Generated Successfully!\n\nGenre: ${genre}\nMood: ${mood}\nDuration: ${duration} seconds\n\nYour custom music is ready to add to your videos - 100% FREE!`);
552            sunoAiModal.style.display = 'none';
553            
554            // Reset form
555            sunoForm.reset();
556        });
557
558        // Voice cloning upload functionality
559        const voiceUploadBtn = document.getElementById('voice-upload-btn');
560        const voiceUploadInput = document.getElementById('voice-upload');
561        const voiceFileName = document.getElementById('voice-file-name');
562
563        // Trigger file input when button is clicked
564        voiceUploadBtn.addEventListener('click', () => {
565            voiceUploadInput.click();
566        });
567
568        // Handle file selection
569        voiceUploadInput.addEventListener('change', async (e) => {
570            const file = e.target.files[0];
571            if (file) {
572                console.log('Voice file selected:', file.name, 'Size:', file.size, 'Type:', file.type);
573                
574                // Update button text to show file name
575                voiceFileName.textContent = `${file.name}`;
576                voiceUploadBtn.style.background = 'rgba(138, 43, 226, 0.3)';
577                voiceUploadBtn.style.borderColor = 'rgba(138, 43, 226, 0.7)';
578                
579                // Store voice file info
580                await GM.setValue('voiceCloneFile', JSON.stringify({
581                    name: file.name,
582                    size: file.size,
583                    type: file.type,
584                    timestamp: Date.now()
585                }));
586                
587                console.log('Voice file uploaded successfully for cloning');
588            }
589        });
590
591        // Avatar upload functionality
592        const avatarUploadBtn = document.getElementById('avatar-upload-btn');
593        const avatarUploadInput = document.getElementById('avatar-upload');
594        const avatarFileName = document.getElementById('avatar-file-name');
595        const avatarPreview = document.getElementById('avatar-preview');
596        const avatarPreviewImg = document.getElementById('avatar-preview-img');
597
598        // Trigger file input when button is clicked
599        avatarUploadBtn.addEventListener('click', () => {
600            avatarUploadInput.click();
601        });
602
603        // Handle avatar file selection
604        avatarUploadInput.addEventListener('change', async (e) => {
605            const file = e.target.files[0];
606            if (file) {
607                console.log('Avatar file selected:', file.name, 'Size:', file.size, 'Type:', file.type);
608                
609                // Update button text to show file name
610                avatarFileName.textContent = `${file.name}`;
611                avatarUploadBtn.style.background = 'rgba(47, 223, 19, 0.3)';
612                avatarUploadBtn.style.borderColor = 'rgba(47, 223, 19, 0.7)';
613                
614                // Show image preview
615                const reader = new FileReader();
616                reader.onload = async (event) => {
617                    avatarPreviewImg.src = event.target.result;
618                    avatarPreview.style.display = 'block';
619                    
620                    // Store avatar image data
621                    await GM.setValue('avatarImage', event.target.result);
622                    await GM.setValue('avatarImageInfo', JSON.stringify({
623                        name: file.name,
624                        size: file.size,
625                        type: file.type,
626                        timestamp: Date.now()
627                    }));
628                    
629                    console.log('Avatar image uploaded and stored successfully');
630                };
631                reader.readAsDataURL(file);
632            }
633        });
634    }
635
636    // Update UI when user is logged in
637    function updateUIForLoggedInUser(email) {
638        const loginBtn = document.getElementById('login-btn');
639        const signupBtn = document.getElementById('signup-btn');
640        
641        // Replace buttons with user info
642        loginBtn.style.display = 'none';
643        signupBtn.textContent = email.split('@')[0];
644        signupBtn.style.background = 'rgba(47, 223, 19, 0.2)';
645        signupBtn.style.color = '#2FDF13';
646        signupBtn.style.border = '1px solid rgba(47, 223, 19, 0.5)';
647        signupBtn.onclick = null;
648        
649        console.log('UI updated for logged in user:', email);
650    }
651
652    // Helper function to create video cards
653    function createVideoCard(title, description) {
654        return `
655            <div style="position: relative; aspect-ratio: 16/11; background: linear-gradient(135deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 12px; overflow: hidden; border: 1px solid rgba(255, 255, 255, 0.1); transition: transform 0.3s, box-shadow 0.3s; cursor: pointer;" onmouseover="this.style.transform='scale(1.05)'; this.style.boxShadow='0 20px 40px rgba(47, 223, 19, 0.2)'" onmouseout="this.style.transform='scale(1)'; this.style.boxShadow='none'">
656                <div style="position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 30px; text-align: center; background: linear-gradient(135deg, rgba(47, 223, 19, 0.1) 0%, rgba(0, 0, 0, 0.8) 100%);">
657                    <div style="font-size: 48px; margin-bottom: 15px;">🎬</div>
658                    <h3 style="color: white; font-size: 20px; font-weight: bold; margin-bottom: 10px;">${title}</h3>
659                    <p style="color: rgba(255, 255, 255, 0.7); font-size: 14px; line-height: 1.4;">${description}</p>
660                    <div style="margin-top: 15px; background: #2FDF13; color: #000; padding: 6px 16px; border-radius: 20px; font-size: 11px; font-weight: bold;">FREE</div>
661                </div>
662            </div>
663        `;
664    }
665
666    // Helper function to create feature cards
667    function createFeatureCard(icon, title, description) {
668        return `
669            <div style="background: linear-gradient(135deg, rgba(47, 223, 19, 0.05) 0%, rgba(0, 0, 0, 0.3) 100%); border: 1px solid rgba(47, 223, 19, 0.2); border-radius: 16px; padding: 30px; text-align: center; transition: transform 0.3s, border-color 0.3s;" onmouseover="this.style.transform='translateY(-5px)'; this.style.borderColor='rgba(47, 223, 19, 0.5)'" onmouseout="this.style.transform='translateY(0)'; this.style.borderColor='rgba(47, 223, 19, 0.2)'">
670                <div style="font-size: 48px; margin-bottom: 20px;">${icon}</div>
671                <h3 style="color: white; font-size: 20px; font-weight: bold; margin-bottom: 12px;">${title}</h3>
672                <p style="color: rgba(255, 255, 255, 0.7); font-size: 14px; line-height: 1.6;">${description}</p>
673            </div>
674        `;
675    }
676
677    // Add CSS animations
678    function addStyles() {
679        const style = document.createElement('style');
680        style.textContent = `
681            @keyframes pulse {
682                0%, 100% {
683                    opacity: 1;
684                    transform: scale(1);
685                }
686                50% {
687                    opacity: 0.8;
688                    transform: scale(1.05);
689                }
690            }
691            
692            * {
693                box-sizing: border-box;
694            }
695            
696            body {
697                margin: 0;
698                padding: 0;
699                font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
700            }
701        `;
702        document.head.appendChild(style);
703    }
704
705    // Initialize the extension
706    function init() {
707        console.log('Initializing Freebeat No Fees Clone...');
708        
709        // Wait for the page to load
710        if (document.readyState === 'loading') {
711            document.addEventListener('DOMContentLoaded', () => {
712                hideOriginalContent();
713                addStyles();
714                createClonedSite();
715            });
716        } else {
717            hideOriginalContent();
718            addStyles();
719            createClonedSite();
720        }
721    }
722
723    // Start the extension
724    init();
725})();
Freebeat No Fees Clone | Robomonkey