Outil d'automatisation pour télécharger des tracks Hypeddit sans passer par les challenges manuellement.
- Frontend: Next.js 14 + Tailwind CSS (port 3456)
- Backend: FastAPI + Playwright (port 8001)
- Stockage:
/var/hypeddit-downloads
# Sur ton Proxmox, copie le dossier complet dans le conteneur
pct push <CTID> /path/to/hypeddit-automator /opt/hypeddit-automator -r# Connexion au conteneur
pct enter <CTID>
# Exécution du script d'installation
cd /opt/hypeddit-automator
chmod +x install.sh
./install.sh# Démarrer les services
systemctl start hypeddit-backend
systemctl start hypeddit-frontend
# Vérifier les statuts
systemctl status hypeddit-backend
systemctl status hypeddit-frontend
# Activer au démarrage
systemctl enable hypeddit-backend
systemctl enable hypeddit-frontendPour les challenges nécessitant une authentification (Spotify, SoundCloud):
curl -X POST http://192.168.1.84:8001/api/tokens \
-H "Content-Type: application/json" \
-d '{
"spotify_token": "YOUR_SPOTIFY_TOKEN",
"soundcloud_token": "YOUR_SOUNDCLOUD_TOKEN"
}'curl -X POST http://192.168.1.84:8001/api/cookies \
-H "Content-Type: application/json" \
-d '{
"cookies": [
{"name": "session", "value": "...", "domain": ".hypeddit.com"}
]
}'- Accède à l'interface:
http://192.168.1.84:3456 - Colle un lien Hypeddit (ex:
https://hypeddit.com/wedamnz/wedamnzmashuppackvol6mix) - Clique sur "Télécharger"
- Suis les logs en temps réel
- Le fichier sera téléchargé dans
/var/hypeddit-downloads
Le système détecte automatiquement les types de challenges:
- generic_click: Clic simple sur un bouton
- spotify: Challenge Spotify (follow/like)
- youtube: Challenge YouTube (subscribe)
- soundcloud: Challenge SoundCloud (comment/like)
- instagram: Challenge Instagram (follow)
- direct_download: Téléchargement direct
# Logs backend
journalctl -u hypeddit-backend -f
# Logs frontend
journalctl -u hypeddit-frontend -f
# Vérifier les fichiers téléchargés
ls -lh /var/hypeddit-downloadscd /opt/hypeddit-automator/backend
source venv/bin/activate
python main.pycd /opt/hypeddit-automator/frontend
npm run devPour ajouter un nouveau type de challenge, édite backend/main.py:
- Ajoute le sélecteur CSS dans
detect_challenge():
challenges = {
"nouveau_challenge": ["classe-css-1", "classe-css-2"],
}- Crée le handler:
async def handle_nouveau_challenge(page, element):
# Ton code ici
return True/False- Ajoute-le dans
handle_challenge():
handlers = {
"nouveau_challenge": handle_nouveau_challenge,
}Lance un téléchargement
{
"url": "https://hypeddit.com/..."
}Récupère le statut et les logs d'un téléchargement
Sauvegarde les tokens d'authentification
Sauvegarde les cookies de session
Le frontend ne se connecte pas au backend:
- Vérifie que les deux services sont démarrés:
systemctl status hypeddit-* - Vérifie les ports:
ss -tulpn | grep -E '3456|8001'
Playwright ne fonctionne pas:
- Réinstalle les dépendances:
cd backend && source venv/bin/activate && playwright install-deps chromium
Téléchargement échoue:
- Vérifie les logs:
journalctl -u hypeddit-backend -f - Teste l'URL manuellement dans un navigateur
- Vérifie que le dossier
/var/hypeddit-downloadsest accessible en écriture
Design épuré avec:
- Gradient dark moderne
- Input pour le lien Hypeddit
- Affichage en temps réel des logs
- Statut coloré (vert=succès, rouge=erreur, bleu=en cours)
- Teste avec ton lien:
https://hypeddit.com/wedamnz/wedamnzmashuppackvol6mix - Identifie les challenges présents
- On implémente les handlers ensemble
- Teste et itère
Note: Le système est conçu pour être étendu facilement. Chaque nouveau challenge nécessite juste:
- Les classes CSS/sélecteurs
- La logique de bypass
- Un handler dans le backend