Skip to content

Commit 33cfe5b

Browse files
committed
initial release
0 parents  commit 33cfe5b

5 files changed

Lines changed: 477 additions & 0 deletions

File tree

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Update Root README
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- '**/README.md'
9+
- 'scripts/update_readme.py'
10+
11+
jobs:
12+
update-readme:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout repository
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
21+
- name: Set up Python
22+
uses: actions/setup-python@v5
23+
with:
24+
python-version: '3.x'
25+
26+
- name: Run update script
27+
run: python scripts/update_readme.py
28+
29+
- name: Commit and push if changed
30+
run: |
31+
git config --global user.name "github-actions[bot]"
32+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
33+
git add README.md
34+
if git diff --staged --quiet; then
35+
echo "No changes to README.md"
36+
else
37+
git commit -m "docs: auto-update root README with latest projects"
38+
git push
39+
fi

.gitignore

Whitespace-only changes.

README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<div align="center">
2+
<h1>Blaron</h1>
3+
<p><strong>The Elite Digital Automation & Custom Software Agency</strong><br>
4+
<em>Maximum Leverage. Minimum Manual Effort.</em></p>
5+
<p>We engineer powerful digital infrastructure, custom software, and automation systems targeting high-performance global operations.</p>
6+
7+
<p>
8+
<a href="https://blaron.com">Website</a> •
9+
<a href="https://github.com/BlaronOfficial">GitHub</a> •
10+
<a href="https://x.com/BlaronOfficial">X</a> •
11+
<a href="https://www.linkedin.com/company/blaron/">LinkedIn</a> •
12+
<a href="https://www.facebook.com/BlaronOfficial">Facebook</a> •
13+
<a href="https://www.instagram.com/Blaron.Official">Instagram</a> •
14+
<a href="mailto:blaronofficial@gmail.com">Email</a>
15+
</p>
16+
</div>
17+
18+
---
19+
20+
This repository serves as a centralized portfolio for our various custom software builds, automation tools, and applications.
21+
22+
## 🚀 Projects Directory
23+
24+
<!-- PROJECTS-LIST:START -->
25+
1. [Beatport Automation Tool](./beatport-automation):
26+
Automated Beatport account creation, bulk purchasing, and PDF receipt generation — with Cloudflare Turnstile bypass, proxy support, and a rich terminal UI.
27+
28+
<!-- PROJECTS-LIST:END -->

beatport-automation/README.md

Lines changed: 293 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,293 @@
1+
# Beatport Automation Tool
2+
3+
Automated Beatport account creation, bulk purchasing, and PDF receipt generation — with Cloudflare Turnstile bypass, proxy support, and a rich terminal UI.
4+
5+
---
6+
7+
## Features
8+
9+
- **Automated Account Creation** — Generates fake identities, fills signup forms, and handles the full registration flow
10+
- **Cloudflare Turnstile Bypass** — Intercepts and solves Turnstile captchas via 2Captcha API
11+
- **Billing Registration** — Automatically sets up billing with card details after account creation
12+
- **Bulk Purchasing** — Purchase any product across multiple accounts in a single session
13+
- **Smart Purchase Verification** — Detects successful purchases even when the checkout API returns errors
14+
- **IP Address Tracking** — Captures the proxy IP for each purchase and stores it in CSV
15+
- **PDF Receipt Export** — Generates branded PDF receipts with song names, IP addresses, and company branding
16+
- **Multi-Card Rotation** — Randomly picks from a pool of configured cards for each account
17+
- **Proxy Support** — Routes all browser traffic through a configurable proxy
18+
- **Rich Terminal UI** — Progress bars, styled tables, color-coded output, and session summaries
19+
- **Credential Logging** — All created accounts and purchases saved to CSV
20+
- **File Logging** — Persistent log file with timestamped entries for debugging
21+
22+
---
23+
24+
## Prerequisites
25+
26+
- **Python 3.10+**
27+
- **2Captcha API Key** — Required for solving Cloudflare Turnstile captchas ([2captcha.com](https://2captcha.com))
28+
- **Proxy** (recommended) — Residential proxy to avoid IP-based rate limiting
29+
30+
---
31+
32+
## Installation
33+
34+
### 1. Get the project
35+
36+
**If you have repo access:**
37+
```bash
38+
git clone <repository-url>
39+
cd beatport-acc-creator
40+
```
41+
42+
**If you received a ZIP:**
43+
```
44+
Extract the ZIP to a folder and open a terminal there.
45+
```
46+
47+
### 2. Install dependencies
48+
49+
```bash
50+
pip install -r requirements.txt
51+
```
52+
53+
### 3. Install Playwright browsers
54+
55+
```bash
56+
playwright install chromium
57+
```
58+
59+
### 4. Create the `.env` file
60+
61+
Copy the example and fill in your credentials:
62+
63+
```bash
64+
cp .env.example .env
65+
```
66+
67+
Then edit `.env` with your actual values:
68+
69+
```env
70+
TWOCAPTCHA_API_KEY=your_2captcha_api_key
71+
BEATPORT_SITEKEY=0x4AAAAAAARdaJSylLhXz0zB
72+
73+
# Proxy
74+
PROXY_USERNAME=your_proxy_username
75+
PROXY_PASSWORD=your_proxy_password
76+
PROXY_HOST=gate.decodo.com
77+
PROXY_PORT=10001
78+
79+
# Cards (format: number,expiry,cvv separated by semicolons)
80+
CARDS=4111111111111111,12/31,123;5500000000000004,12/31,456
81+
```
82+
83+
| Variable | Description |
84+
|---|---|
85+
| `TWOCAPTCHA_API_KEY` | Your 2Captcha API key for solving Turnstile captchas |
86+
| `BEATPORT_SITEKEY` | Beatport's Cloudflare Turnstile site key (pre-filled) |
87+
| `PROXY_USERNAME` | Proxy authentication username |
88+
| `PROXY_PASSWORD` | Proxy authentication password |
89+
| `PROXY_HOST` | Proxy server hostname |
90+
| `PROXY_PORT` | Proxy server port |
91+
| `CARDS` | Payment cards in `number,M/YY,cvv` format, separated by `;` |
92+
93+
### 5. Run
94+
95+
```bash
96+
python main.py
97+
```
98+
99+
---
100+
101+
## Usage
102+
103+
When you launch the tool, you'll see:
104+
105+
```
106+
╭─────────────────────────────────────────────────────╮
107+
│ Beatport Automation Tool │
108+
│ Account creation, automated purchases, and receipts│
109+
╰─────────────────────────────────────────────────────╯
110+
111+
Select an option:
112+
1. Create accounts
113+
2. Perform purchases
114+
3. Export PDF receipt
115+
116+
Option: > _
117+
```
118+
119+
### Option 1: Create Accounts
120+
121+
Enter the number of accounts to create. The bot processes each account automatically:
122+
123+
1. Generates a fake identity (name, email, username, password, US address)
124+
2. Checks email/username availability via Beatport API
125+
3. Creates the account with Turnstile captcha bypass
126+
4. Sets up billing with a randomly selected card
127+
5. Saves credentials to `created_accounts.csv`
128+
129+
### Option 2: Perform Purchases
130+
131+
1. Enter the Beatport product URL (e.g., `https://www.beatport.com/fr/release/caliente/5812893`)
132+
2. Enter the number of purchases to perform
133+
3. The bot filters eligible accounts (those that haven't already purchased the product)
134+
4. For each account: logs in, captures the proxy IP, verifies the library, and completes the purchase
135+
5. Updates CSV with the purchase record and IP address
136+
137+
**Smart error handling:** If the checkout API returns an error (e.g., HTTP 400), the bot checks the library to verify if the purchase actually went through before retrying.
138+
139+
### Option 3: Export PDF Receipt
140+
141+
Generates a branded PDF receipt (`purchase_receipt.pdf`) listing all purchases across all accounts:
142+
143+
- **Header:** Company logo + document title + generation date
144+
- **Body:** Table with song names (extracted from URLs) and IP addresses
145+
- **Footer:** Beatpush, Inc. company address
146+
147+
---
148+
149+
## Output Files
150+
151+
| File | Description |
152+
|---|---|
153+
| `created_accounts.csv` | All account credentials and purchase records |
154+
| `beatport_bot.log` | Timestamped log file for debugging |
155+
| `purchase_receipt.pdf` | Generated PDF receipt (via option 3) |
156+
157+
### CSV Format
158+
159+
```csv
160+
email,password,username,first_name,last_name,card_number,card_type,created_at,purchased_songs,purchase_ips
161+
li5yl.john@inbox.testmail.app,aB3!xYz9,john4821,John,Smith,4165...5229,001,2026-03-06T14:30:00,https://www.beatport.com/fr/release/caliente/5812893,203.0.113.42
162+
```
163+
164+
- `purchased_songs`: Pipe-separated (`|`) list of product URLs
165+
- `purchase_ips`: Pipe-separated (`|`) list of proxy IPs (parallel to purchased_songs)
166+
167+
---
168+
169+
## Card Configuration
170+
171+
Cards are configured in the `.env` file using a compact format:
172+
173+
```
174+
CARDS=number,expiry,cvv;number,expiry,cvv
175+
```
176+
177+
- **Expiry format:** `M/YY` (e.g., `3/31` = March 2031)
178+
- **Separator:** `;` between cards
179+
- The bot randomly selects a card for each account
180+
181+
**Example with multiple cards:**
182+
```
183+
CARDS=4165981722225229,3/31,673;5354563333133382,3/31,818;5200828444428210,3/31,897
184+
```
185+
186+
---
187+
188+
## Project Structure
189+
190+
```
191+
beatport-acc-creator/
192+
├── main.py # Entry point — menu, account/purchase loops, CSV management
193+
├── automator.py # Core automation — Playwright browser control
194+
├── pdf_generator.py # PDF receipt generation
195+
├── configs.py # Config class — loads .env variables
196+
├── logger.py # Rich console output + file logging
197+
├── requirements.txt # Python dependencies
198+
├── assets/
199+
│ └── logo.png # Company logo for PDF header
200+
├── .env # Your credentials (not in repo)
201+
├── .env.example # Template for .env
202+
├── LICENSE # License & Terms of Service
203+
204+
├── created_accounts.csv # Output — account credentials & purchases (not in repo)
205+
├── purchase_receipt.pdf # Output — generated PDF receipt (not in repo)
206+
└── beatport_bot.log # Output — timestamped log file (not in repo)
207+
```
208+
209+
---
210+
211+
## Troubleshooting
212+
213+
### "TWOCAPTCHA_API_KEY" / KeyError on startup
214+
215+
Your `.env` file is missing or incomplete:
216+
1. Copy `.env.example` to `.env`
217+
2. Fill in all required values
218+
3. Make sure there are no extra spaces around the `=` sign
219+
220+
### Playwright browser not found
221+
222+
Run the browser installer:
223+
```bash
224+
playwright install chromium
225+
```
226+
227+
### Captcha solving fails / times out
228+
229+
- Verify your 2Captcha API key is correct and has balance
230+
- Check that `BEATPORT_SITEKEY` matches the current Beatport Turnstile key
231+
- 2Captcha Turnstile solving typically takes 10-20 seconds
232+
233+
### Proxy connection errors
234+
235+
- Verify your proxy credentials and host/port in `.env`
236+
- Ensure the proxy supports HTTP/HTTPS traffic
237+
- Check that the proxy service is active and not rate-limiting
238+
239+
### State/Province selection fails repeatedly
240+
241+
The bot generates US addresses using Faker. Occasionally, a generated state abbreviation doesn't match Beatport's dropdown options. The bot retries automatically (up to 5 times) with new address data.
242+
243+
### Checkout returns error but purchase succeeded
244+
245+
This is handled automatically. When checkout returns an error (e.g., HTTP 400 "Cart does not contain any items"), the bot checks the library to verify if the purchase went through before retrying.
246+
247+
### Account creation succeeds but billing fails
248+
249+
The account is still created and saved to CSV. You can manually set up billing later. Common causes:
250+
- Card was declined or expired
251+
- Proxy IP was flagged by the payment processor
252+
253+
---
254+
255+
## FAQ
256+
257+
**How long does each account take?**
258+
Typically 30-60 seconds per account, depending on captcha solving speed and network latency.
259+
260+
**Can I run it headless (no browser window)?**
261+
The browser currently launches in visible mode (`headless=False`) for debugging. To run headless, modify `automator.py` line 64: change `headless=False` to `headless=True`. (May not work properly in headless!)
262+
263+
**What if Beatport changes their signup flow?**
264+
The bot interacts with specific form elements by role/label. If Beatport significantly changes their UI, the selectors in `automator.py` may need updating.
265+
266+
**Can I use different email domains?**
267+
Currently uses `inbox.testmail.app`. To change it, modify the `email_address` format in `automator.py` in the `_sync_generate_fake_data` method.
268+
269+
**Is each account created with a unique IP?**
270+
If your proxy rotates IPs per session (e.g., residential rotating proxies), yes. Each account gets a fresh browser context routed through the proxy.
271+
272+
---
273+
274+
## Support & Pricing
275+
276+
| | |
277+
|---|---|
278+
| **Price** | Contact for pricing |
279+
| **Purchase & Support** | [Contact on Telegram](https://t.me/AkibHridoy) |
280+
281+
### Developer
282+
283+
**Abir Hasan**
284+
- GitHub: [github.com/AbirHasan2005](https://github.com/AbirHasan2005)
285+
- Telegram: [t.me/AbirHasan2005](https://t.me/AbirHasan2005)
286+
287+
---
288+
289+
## License & Legal
290+
291+
This software is proprietary and commercially licensed. By using this tool, you agree to the terms outlined in the [LICENSE](LICENSE) file, which includes the License Agreement, Terms of Service, Confidentiality & Anti-Redistribution Policy, and Privacy Policy.
292+
293+
**Unauthorized redistribution of this software is strictly prohibited and will result in legal action.**

0 commit comments

Comments
 (0)