11 KiB
🎬 Guide du Proxy Vidéo Sekai.one
Solution complète pour contourner la protection Referer et accéder aux vidéos de sekai.one
🎯 Problème Résolu
Le serveur vidéo mugiwara.xyz bloque l'accès direct avec un 403 Forbidden car il vérifie que le Referer provient de https://sekai.one/.
Notre solution : Un serveur proxy qui ajoute automatiquement le bon Referer et permet d'accéder aux vidéos depuis n'importe où.
⚡ Démarrage Rapide
1. Installation
# Installer les dépendances (inclut Flask)
pip install -r requirements.txt
2. Démarrer le serveur proxy
python video_proxy_server.py
Le serveur démarre sur http://localhost:8080
3. Utiliser le proxy
Format de l'URL :
http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4
Exemple dans le navigateur :
- Copiez l'URL ci-dessus
- Collez dans votre navigateur
- La vidéo se lit directement ! 🎉
📖 Utilisation Détaillée
A. Dans un navigateur web
http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4
→ La vidéo se lit directement dans le navigateur
B. Avec VLC Media Player
- Ouvrir VLC
- Média → Ouvrir un flux réseau
- Coller l'URL proxy :
http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4
- Lire ! 🎬
C. Dans une page HTML
<!DOCTYPE html>
<html>
<head>
<title>One Piece Episode 527</title>
</head>
<body>
<h1>One Piece - Episode 527</h1>
<video controls width="1280" height="720">
<source
src="http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4"
type="video/mp4">
Votre navigateur ne supporte pas la vidéo HTML5.
</video>
</body>
</html>
D. Télécharger avec wget
wget "http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4" -O episode_527.mp4
E. Télécharger avec curl
curl "http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4" -o episode_527.mp4
F. En Python
import requests
proxy_url = "http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4"
# Streaming
response = requests.get(proxy_url, stream=True)
with open("episode_527.mp4", "wb") as f:
for chunk in response.iter_content(chunk_size=8192):
f.write(chunk)
🌐 Déploiement sur un VPS (vid.creepso.com)
Configuration Nginx (reverse proxy)
- Installer nginx sur votre VPS
sudo apt update
sudo apt install nginx
- Créer un fichier de configuration
sudo nano /etc/nginx/sites-available/video-proxy
Contenu :
server {
listen 80;
server_name vid.creepso.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Important pour le streaming vidéo
proxy_buffering off;
proxy_cache off;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
}
- Activer le site
sudo ln -s /etc/nginx/sites-available/video-proxy /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
- Démarrer le serveur Python avec gunicorn
# Installer gunicorn
pip install gunicorn
# Démarrer le serveur
gunicorn -w 4 -b 127.0.0.1:8080 video_proxy_server:app
- Créer un service systemd pour auto-start
sudo nano /etc/systemd/system/video-proxy.service
Contenu :
[Unit]
Description=Sekai Video Proxy Server
After=network.target
[Service]
User=votre-user
WorkingDirectory=/chemin/vers/projet
Environment="PATH=/chemin/vers/venv/bin"
ExecStart=/chemin/vers/venv/bin/gunicorn -w 4 -b 127.0.0.1:8080 video_proxy_server:app
Restart=always
[Install]
WantedBy=multi-user.target
Activer :
sudo systemctl daemon-reload
sudo systemctl enable video-proxy
sudo systemctl start video-proxy
sudo systemctl status video-proxy
- Ajouter SSL avec Certbot (HTTPS)
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d vid.creepso.com
Utilisation après déploiement
Une fois déployé sur votre VPS, vous pouvez accéder aux vidéos via :
https://vid.creepso.com/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4
Cette URL est accessible depuis n'importe où dans le monde ! 🌍
🛠️ API du Serveur Proxy
Endpoints disponibles
1. /proxy?url=[VIDEO_URL]
Fonction : Proxy vidéo avec streaming
Exemple :
GET http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4
Fonctionnalités :
- ✅ Streaming progressif
- ✅ Support du seeking (Range requests)
- ✅ CORS activé
- ✅ Aucune limite de taille
2. /info?url=[VIDEO_URL]
Fonction : Obtenir les métadonnées de la vidéo
Exemple :
curl "http://localhost:8080/info?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4"
Réponse :
{
"url": "https://17.mugiwara.xyz/op/saga-7/hd/527.mp4",
"status_code": 200,
"accessible": true,
"content_type": "video/mp4",
"content_length": "272760832",
"content_length_mb": 260.14,
"server": "nginx/1.25.3",
"accept_ranges": "bytes",
"proxy_url": "http://localhost:8080/proxy?url=..."
}
3. /download?url=[VIDEO_URL]
Fonction : Téléchargement forcé (avec Content-Disposition)
Exemple :
GET http://localhost:8080/download?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4
Le navigateur va automatiquement télécharger le fichier.
4. /health
Fonction : Vérifier que le serveur fonctionne
Exemple :
curl http://localhost:8080/health
Réponse :
{
"status": "ok",
"service": "sekai-video-proxy",
"version": "1.0.0"
}
🔧 Options du Serveur
# Port personnalisé
python video_proxy_server.py --port 5000
# Accès réseau (pas seulement localhost)
python video_proxy_server.py --host 0.0.0.0
# Mode debug
python video_proxy_server.py --debug
# Combinaison
python video_proxy_server.py --host 0.0.0.0 --port 5000
🎭 Comment ça marche ?
Le problème
Quand vous accédez directement à https://17.mugiwara.xyz/op/saga-7/hd/527.mp4 :
GET /op/saga-7/hd/527.mp4 HTTP/1.1
Host: 17.mugiwara.xyz
User-Agent: Mozilla/5.0...
Réponse : 403 Forbidden ❌
Le serveur vérifie que la requête vient de sekai.one.
La solution
Le proxy ajoute le header Referer correct :
GET /op/saga-7/hd/527.mp4 HTTP/1.1
Host: 17.mugiwara.xyz
User-Agent: Mozilla/5.0...
Referer: https://sekai.one/ ← La clé !
Réponse : 200 OK ✅
Le serveur pense que la requête vient de sekai.one et autorise l'accès.
Flux de données
Client (Navigateur/VLC/wget)
↓
GET http://vid.creepso.com/proxy?url=...
↓
Serveur Proxy (votre VPS)
↓
GET https://17.mugiwara.xyz/... avec Referer: sekai.one
↓
Serveur Vidéo (mugiwara.xyz)
↓
200 OK + Flux vidéo
↓
Serveur Proxy → Client
🚀 Intégration avec Stremio
Vous pouvez créer un add-on Stremio qui utilise votre proxy :
// stremio-addon.js
const { addonBuilder } = require('stremio-addon-sdk');
const builder = new addonBuilder({
id: 'com.sekai.one',
version: '1.0.0',
name: 'Sekai.one Anime',
description: 'Watch anime from sekai.one',
resources: ['stream'],
types: ['series'],
idPrefixes: ['sekai:']
});
builder.defineStreamHandler(async ({ type, id }) => {
// Exemple pour One Piece Episode 527
if (id === 'sekai:onepiece:527') {
return {
streams: [{
title: 'HD',
url: 'https://vid.creepso.com/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4'
}]
};
}
});
module.exports = builder.getInterface();
🔐 Sécurité et Performance
Limitations recommandées
Pour protéger votre VPS, ajoutez des limitations :
# Dans video_proxy_server.py, ajoutez :
from flask_limiter import Limiter
from flask_limiter.util import get_remote_address
limiter = Limiter(
app,
key_func=get_remote_address,
default_limits=["100 per hour"]
)
@app.route('/proxy')
@limiter.limit("10 per minute") # Max 10 requêtes/minute
def proxy_video():
# ...
Cache (optionnel)
Pour réduire la charge :
from flask_caching import Cache
cache = Cache(app, config={'CACHE_TYPE': 'simple'})
@app.route('/info')
@cache.cached(timeout=300) # Cache 5 minutes
def video_info():
# ...
📊 Monitoring et Logs
Les logs sont automatiquement sauvegardés dans logs/:
# Voir les logs en temps réel
tail -f logs/*_scraping.log
Pour un monitoring avancé sur VPS :
# Installer pm2 pour Node.js ou utiliser systemd logs
sudo journalctl -u video-proxy -f
🎯 Exemples d'URLs
One Piece
# Episode 527 (Saga 7)
http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4
# Episode 528 (Saga 7)
http://localhost:8080/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/528.mp4
# Pattern général : /op/saga-X/hd/EPISODE.mp4
⚠️ Avertissement Légal
Ce proxy est créé dans le cadre d'un bug bounty autorisé.
- ✅ Usage autorisé pour tests de sécurité
- ✅ Usage personnel uniquement
- ❌ Ne pas utiliser pour distribution publique
- ❌ Respecter les droits d'auteur
🆘 Dépannage
Problème : "Connection refused"
Solution : Le serveur n'est pas démarré
python video_proxy_server.py
Problème : "404 Not Found"
Solution : L'URL de la vidéo est incorrecte. Vérifiez avec :
curl "http://localhost:8080/info?url=VOTRE_URL"
Problème : "403 Forbidden" même avec le proxy
Solution : Le serveur source a peut-être changé sa protection. Vérifiez les headers dans video_proxy_server.py.
Problème : Vidéo lag/buffering
Solution :
- Augmenter le chunk size dans le code
- Vérifier la bande passante du VPS
- Utiliser un CDN devant le proxy
🎉 Succès !
Si tout fonctionne, vous devriez pouvoir :
- ✅ Lire les vidéos directement dans le navigateur
- ✅ Les télécharger avec wget/curl
- ✅ Les intégrer dans un lecteur HTML5
- ✅ Les lire avec VLC
- ✅ Y accéder depuis n'importe où (si déployé sur VPS)
URL finale accessible publiquement :
https://vid.creepso.com/proxy?url=https://17.mugiwara.xyz/op/saga-7/hd/527.mp4
Profitez-en ! 🚀