Currently, the site is under heavy cloudflare protection. It is recommended to use flaresolver in parallel to ensure smooth operation.
Please be aware of this and make sure to use flaresolver accordingly to avoid any issues.
Big thanks to @FlareSolverr for their amazing work!
ygg-rss-proxy
est une application Python qui sert de proxy pour récupérer des flux RSS et des fichiers torrent depuis un site protégé nécessitant une authentification. Cette application est conteneurisée à l'aide de Docker et utilise Poetry pour la gestion des dépendances.
- Authentifie sur le site et récupère les cookies de session.
- Récupère et modifie les flux RSS pour remplacer les URL de téléchargement par des URL de proxy.
- Récupère les fichiers torrent via le proxy avec authentification.
- Docker
- Docker Compose (pour la configuration Docker Compose)
Le scripte peut désormais être configuré en utilisant des variables d'environnement, un ficher .env
ou les docker secrets. Pour les Docker secrets, il faut les nommer comme les variable d'environnement.
YGG_USER
: Votre nom d'utilisateur pour l'authentification sur le site YGG. Par défaut. (OBLIGATOIRE)YGG_PASS
: Votre mot de passe pour l'authentification sur le site YGG. Par défaut. (OBLIGATOIRE)YGG_URL
: L'URL du site YGG. définie par default.RSS_HOST
: L'hôte sur lequel le serveur RSS est en cours d'exécution. Par défaut, il est défini sur 'localhost'. C'est ici que l'on peut mettre le noms de container si l'on utilise docker compose.RSS_PORT
: Le port sur lequel le serveur RSS est en cours d'exécution. Par défaut, il est défini sur '8080'.RSS_SHEMA
: Le schéma (http ou https) utilisé pour accéder au serveur RSS. Par défaut, il est défini sur 'http'.FLARESOLVERR_SHEMA
: Le schéma (http ou https) utilisé pour accéder à l'instance de Flaresolverr. Par défaut, il est défini sur 'http'.FLARESOLVERR_HOST
: L'hôte sur lequel l'instance de Flaresolverr est en cours d'exécution. Par défaut, il est défini sur 'localhost'.FLARESOLVERR_PORT
: Le port sur lequel l'instance de Flaresolverr est en cours d'exécution. Par défaut, il est défini sur '8191'.GUNICORN_PORT
: Le port sur lequel le serveur proxy interne est en cours d'exécution. Par défaut, il est défini sur '8080'.GUNICORN_WORKERS
: Le nombre de travailleurs Gunicorn à utiliser. Par défaut, il est défini sur '4'.GUNICORN_BINDER
: L'adresse IP sur laquelle le serveur proxy interne est lié. Par défaut, il est défini sur '0.0.0.0'.LOG_PATH
: Le chemin du fichier journal pour le serveur proxy. Par défaut, il est défini sur '/app/config/logs/rss-proxy.log'. Il y a une rotaion de fichier journal déja configuré. Attention c'est le chemin dans le container.LOG_LEVEL
: Le niveau de journalisation pour le serveur proxy. Par défaut, il est défini sur 'INFO'.DB_PATH
: Le chemin de la base de données SQLite pour le serveur proxy. Par défaut, il est défini sur '/app/config/rss-proxy.db'. Attention c'est le chemin dans le container.SECRET_KEY
: La clé secrète utilisée pour la signature des cookies de session. Par défaut, il est défini sur 'superkey_that_can_be_changed'. Sécurité suplémentaire pour chiffré la base de donnée.
Attention, l'installation nécessite FlareSolverr quand le site et sous protocole cloudflare. C'est a dire à peu près tout le temps.
Please be aware of this and make sure to use FlareSolverr accordingly to avoid any issues.
For optimal performance and to bypass Cloudflare's protection, it is essential to run FlareSolverr alongside this application. This is because the site is frequently protected by Cloudflare, which can cause difficulties in accessing the content.
Cet exemple utilise Docker Compose pour lancer l'application ygg-rss-proxy
, FlareSolverr, et Qbittorrent en même temps.
C'est pour illustré l'utilisation de l'application avec d'autres services.
Attention, Flaresolverr est un super projet 🤩 mais il peut être très gourmand en ressources si des petits malins trouve votre instance et ne doit pas être exoposé en dehors de votre réseau local. Il est donc recommandé de ne pas binder le port 8191 sur l'hôte. On utilisera donc le nom du container pour communiquer entre les deux pour rester dans le réseau docker.
-
Créer un fichier
docker-compose.yml
version: "3.8" services: qbittorrent: image: lscr.io/linuxserver/qbittorrent:latest container_name: qbittorrent environment: PUID: 1000 PGID: 1000 TZ: Europe/Paris WEBUI_PORT: 8080 volumes: - ./config:/config - ./downloads:/downloads ports: - 6881:6881 - 6881:6881/udp - 8080:8080 restart: unless-stopped ygg-rss-proxy: image: ghcr.io/limedrive/ygg-rss-proxy:v1.0.0-alpha container_name: ygg-rss-proxy expose: - 8080 environment: YGG_USER: "user" YGG_PASS: "pass" FLARESOLVERR_HOST: flaresolverr LOG_LEVEL: INFO volumes: - ./config:/logs/config restart: unless-stopped depends_on: - flaresolverr flaresolverr: image: ghcr.io/flaresolverr/flaresolverr:latest container_name: flaresolverr environment: LOG_LEVEL: info CAPTCHA_SOLVER: none expose: - 8191 restart: unless-stopped
-
Exécuter Docker Compose
docker-compose up -d
L'URL RSS à utiliser est la même que sur le site concerné, mais vous devez changer le nom de domaine de www.ygg.re
à localhost:8080
ou tout autre HOST que vous avez définie dans les variable RSS_HOST
RSS_PORT
. Assurez-vous de bien conserver tous les paramètres car notre script les réutilise.
URL d'origine : https://www.ygg.re/rss?action=generate&type=subcat&id=2183&passkey=xxxxxxxxxxxxxxxxxxxxxxxxxxx
URL à utiliser dans le client torrent : http://localhost:8080/rss?action=generate&type=subcat&id=2183&passkey=xxxxxxxxxxxxxxxxxxxxxxxxxxx
ygg-rss-proxy/
│
├── Dockerfile
├── pyproject.toml
├── poetry.lock
├── .github/
│ └── workflows/
│ └── release.yml
│
└── ygg_rss_proxy/
├── __init__.py
├── app.py
├── auth.py
├── logging_config.py
├── rss.py
├── run_gunicorn.py
├── session_manager.py.py
└── settings.py
N'hésitez pas à ouvrir des issues ou à soumettre des pull requests si vous trouvez des bugs ou avez des suggestions de fonctionnalités.