Tarifs

Vue d’ensemble du projet

Fichiers source

Cette page est générée à partir des fichiers source suivants :

Présentation générale du logiciel

res-downloader est une application de bureau multi-plateforme conçue pour le téléchargement de ressources multimédias à partir de diverses plateformes en ligne. Développée en Go avec le framework Wails, cette application combine un backend haute performance avec une interface utilisateur moderne et intuitive. Le projet se positionne comme un outil de capture réseau accessible au grand public, simplifiant des opérations traditionnellement réservées aux outils techniques comme Fiddler ou Charles.

L'application se distingue par sa capacité à intercepter automatiquement le trafic réseau via un proxy local, filtrant et identifiant les ressources téléchargeables telles que les vidéos, fichiers audio, images, flux m3u8 et diffusions en direct. Son interface épurée permet aux utilisateurs non techniques de récupérer facilement des contenus de plateformes populaires comme WeChat Video, Douyin, Kuaishou, Xiaohongshu, KuGou Music et QQ Music.

README.md:1-32 présente la structure générale du projet avec ses badges de statistiques GitHub et ses fonctionnalités principales. README-EN.md:17-28 détaille les caractéristiques techniques incluant la compatibilité Windows/macOS/Linux et le support de multiples types de ressources.

Caractéristiques quantifiables

MétriqueValeur
Plateformes supportées7+ (WeChat, Douyin, Kuaishou, Xiaohongshu, KuGou, QQ Music, Mini Programs)
Types de ressources5+ (vidéo, audio, image, m3u8, live stream)
Systèmes d'exploitation3 (Windows, macOS, Linux)
Version actuelle3.1.3
LicenceApache 2.0

Architecture technique et pile technologique

Stack technologique principal

Le projet repose sur une architecture hybride combinant Go pour le backend et des technologies web modernes pour le frontend. Le framework Wails sert de pont entre ces deux mondes, permettant de créer des applications desktop natives avec des interfaces web.

ComposantTechnologieVersion/Rôle
BackendGoLogique métier, proxy HTTP, capture réseau
Framework DesktopWails v2Pont Go-Frontend, gestion fenêtre native
FrontendTypeScript/Vue.jsInterface utilisateur réactive
BuildnpmGestion des dépendances frontend

main.go:28-67 illustre le point d'entrée principal avec l'initialisation de l'application Wails, la configuration de la fenêtre (dimensions 1280x800, minimum 960x600), et la gestion spécifique du menu macOS. wails.json:1-20 définit les métadonnées du projet incluant le nom "res-downloader", la version 3.1.3, et les commandes de build frontend.

Architecture modulaire

正在加载图表渲染器...

Explication de l'architecture :

  1. Frontend Layer : Interface réactive gérée par Vue.js avec TypeScript, utilisant un routeur SPA et des stores pour la gestion d'état
  2. Wails Runtime : Couche d'interopérabilité assurant la communication bidirectionnelle entre Go et le frontend via des bindings
  3. Backend Go : Modules core gérant le proxy HTTP (port 8899), la capture de trafic et le téléchargement de ressources
  4. Ressources Externes : Les plateformes cibles dont le trafic est intercepté par le proxy local

Preuve de l'initialisation Wails : main.go:43-55 montre la configuration complète avec AssetServer, Menu, et les dimensions de fenêtre.

Fonctionnalités et cas dusage

Types de ressources supportées

L'application excelle dans la capture de différents formats multimédias à travers son mécanisme de proxy transparent :

TypeExtensions/ProtocolesCas d'usage typique
VidéoMP4, WebM, MOVTéléchargement vidéos WeChat, Douyin
AudioMP3, M4A, FLACMusique depuis KuGou, QQ Music
StreamingM3U8, HLSVidéos streaming, replay TV
LiveRTMP, FLVCaptures diffusions en direct
ImagesJPG, PNG, WebPAlbums photos, avatars

README-EN.md:48-77 détaille le processus d'utilisation en 5 étapes : installation du certificat, activation du proxy, sélection des types de ressources, ouverture du contenu cible, et consultation des ressources capturées.

Mécanisme de capture par proxy

Le fonctionnement repose sur l'interception du trafic HTTP/HTTPS via un proxy local configuré sur 127.0.0.1:8899. Ce mécanisme permet de :

  1. Intercepter toutes les requêtes réseau des applications locales
  2. Filtrer les URLs correspondant aux patterns de ressources multimédias
  3. Extraire les métadonnées (taille, type, nom)
  4. Présenter une liste téléchargeable à l'utilisateur
正在加载图表渲染器...

Points clés du flux :

  1. Initialisation : L'utilisateur active le proxy qui écoute sur le port 8899 (configuré par défaut)
  2. Interception : Le trafic des applications locales passe par le proxy de manière transparente
  3. Filtrage intelligent : Seules les ressources correspondant aux critères (type MIME, taille, extension) sont retenues
  4. Téléchargement optimisé : Les ressources identifiées peuvent être téléchargées avec des gestionnaires externes recommandés

Preuve du principe de fonctionnement : README-EN.md:93-104 explique que l'outil capture le trafic via proxy local, similaire à Fiddler/Charles mais avec une interface simplifiée pour le grand public.

Plateformes compatibles

L'application supporte une large gamme de plateformes chinoises et internationales :

  • Réseaux sociaux vidéo : WeChat Video (视频号), Douyin (抖音), Kuaishou (快手), Xiaohongshu (小红书)
  • Plateformes musicales : KuGou Music (酷狗音乐), QQ Music (QQ音乐)
  • Mini Programs : Applications légères WeChat
  • Contenu web général : Navigateurs, applications web

Gestion des problèmes courants

ProblèmeSolution
Téléchargement lent/échouéUtiliser Neat Download Manager ou Motrix
Vidéos WeChat cryptéesCliquer "Decrypt Video" après téléchargement
Absence d'interceptionVérifier proxy système : 127.0.0.1:8899
Pas d'internet après fermetureDésactiver manuellement le proxy système

Modules principaux et implémentation

Module Core - Initialisation et configuration

Le module core constitue le point d'entrée de l'application, responsable de l'initialisation de Wails et de la configuration de l'environnement d'exécution.

Responsabilités :

  • Chargement des assets et configuration JSON
  • Création des bindings Go-Frontend
  • Configuration de la fenêtre native (dimensions, frameless sur Windows/Linux)
  • Gestion du cycle de vie (startup, shutdown)

Structure de données d'entrée :

go
1type AppConfig struct {
2    AppName    string
3    Version    string
4    LockFile   string
5    // champs additionnels depuis wails.json
6}

Appel critique : main.go:31-32 montre l'instanciation de l'application via core.GetApp() et la création des bindings via core.NewBind().

Module Menu - Interface native

Le module menu gère les menus natifs de l'application, avec une implémentation spécifique pour macOS.

Responsabilités :

  • Création du menu application (macOS uniquement)
  • Menu Edit (copier, coller, sélectionner)
  • Menu Window (gestion fenêtres)

Condition d'activation : main.go:33-40 montre que les menus ne sont ajoutés que si runtime.GOOS == "darwin".

Module AssetServer - Serveur de ressources

Le module AssetServer fournit les fichiers statiques du frontend et implémente un middleware personnalisé.

Responsabilités :

  • Service des fichiers HTML/CSS/JS
  • Middleware pour traitement des requêtes
  • Gestion du cache et des headers

Configuration : main.go:52-55 configure l'AssetServer avec les assets embarqués et un middleware personnalisé core.Middleware.

Module Frontend - Interface utilisateur

Le frontend est une application Vue.js avec TypeScript, organisée selon une architecture modulaire.

Structure des répertoires :

frontend/src/
├── main.ts          # Point d'entrée Vue
├── router/index.ts  # Configuration du routeur
└── stores/index.ts  # Gestion d'état (Pinia/Vuex)

Note : Les fichiers frontend/src/main.ts, frontend/src/router/index.ts, et frontend/src/stores/index.ts n'ont pas de contenu visible dans les sources fournies - nécessite confirmation du contenu réel pour analyse détaillée.

Licence et aspects juridiques

Licence Apache 2.0

Le projet est distribué sous la licence Apache 2.0, l'une des licences open source les plus permissives et reconnues dans l'industrie.

Droits accordés :

  • Reproduction et distribution du code source
  • Création d'œuvres dérivées
  • Utilisation commerciale
  • Sous-licenciement

Conditions obligatoires :

  1. Conservation des notices de copyright
  2. Inclusion de la licence complète
  3. Mention des modifications apportées
  4. Respect des notices de marque déposée

LICENSE:1-88 définit les termes complets de la licence incluant les définitions, droits de copyright, et conditions de redistribution.

Limitation de responsabilité

La licence inclut des clauses de protection légale importantes pour les contributeurs et utilisateurs.

AspectProtection
GarantieFourni "en l'état", sans garantie d'aucune sorte
ResponsabilitéAucune responsabilité pour dommages directs/indirects
SupportAucune obligation de support technique

LICENSE:138-175 détaille les clauses de non-responsabilité et les limitations de garantie, protégeant les contributeurs contre les réclamations légales.

Avertissement d'utilisation

Le README inclut un avertissement explicite concernant l'usage de l'application :

This software is for educational and research purposes only. Commercial or illegal use is strictly prohibited.

Cette mise en garde est particulièrement pertinente compte tenu de la nature de l'outil qui intercepte le trafic réseau et permet le téléchargement de contenus potentiellement protégés par des droits d'auteur.

Guide de lecture du rapport

正在加载图表渲染器...

Ordre recommandé de lecture :

  1. Vue d'ensemble (page actuelle) : Introduction générale et architecture haut niveau
  2. Architecture : Détails des composants et interactions
  3. Fonctionnalités : Guide pratique d'utilisation
  4. API & Bindings : Documentation technique pour développeurs
  5. Déploiement : Instructions de build et distribution

Configuration et métadonnées du projet

Fichier wails.json

Le fichier de configuration Wails définit les paramètres essentiels du projet :

json
1{
2  "name": "res-downloader",
3  "outputfilename": "res-downloader",
4  "frontend:install": "npm install",
5  "frontend:build": "npm run build",
6  "frontend:dev:watcher": "npm run dev",
7  "frontend:dev:serverUrl": "auto",
8  "info": {
9    "companyName": "res-downloader",
10    "productName": "res-downloader",
11    "productVersion": "3.1.3",
12    "copyright": "Copyright © 2023"
13  }
14}

wails.json:1-20 contient la configuration complète avec les métadonnées de version et les commandes de build frontend.

Paramètres de l'application

ParamètreValeurDescription
Largeur fenêtre1280pxLargeur par défaut
Largeur min960pxRedimensionnement minimum
Hauteur fenêtre800pxHauteur par défaut
Hauteur min600pxRedimensionnement minimum
Framelesstrue (sauf macOS)Barre de titre personnalisée
Port proxy8899Port d'écoute du proxy HTTP

Preuve de configuration : main.go:44-49 définit les dimensions et le mode frameless conditionnel selon l'OS.

Dépendances et écosystème

Dépendances backend (Go)

Le fichier go.mod n'a pas de contenu visible dans les sources fournies. Nécessite confirmation pour lister les dépendances Go exactes.

Dépendances frontend

Le fichier frontend/package.json n'a pas de contenu visible dans les sources fournies. Nécessite confirmation pour lister les dépendances npm exactes.

Outils recommandés

L'auteur suggère l'utilisation d'outils complémentaires pour optimiser l'expérience :

OutilUsageLien
m3u8playPrévisualisation M3U8m3u8play.com
m3u8-downTéléchargement M3U8m3u8-down.gowas.cn
OBSEnregistrement liveobsproject.com
Neat Download ManagerTéléchargement optimiséneatdownloadmanager.com
MotrixGestionnaire de téléchargementmotrix.app

Résumé des capacités clés

res-downloader représente une solution complète de capture et téléchargement de ressources multimédias avec les caractéristiques suivantes :

  • Architecture moderne : Go + Wails + Vue.js pour performance et ergonomie
  • Multi-plateforme : Support Windows, macOS, Linux natif
  • Polyvalence : 5+ types de ressources, 7+ plateformes supportées
  • Accessibilité : Interface simplifiée pour utilisateurs non techniques
  • Extensibilité : Architecture modulaire permettant l'ajout de nouvelles plateformes
  • Légalité : Licence Apache 2.0 avec avertissement d'utilisation responsable

Le projet se positionne comme un pont entre les outils techniques complexes (Fiddler, Charles) et les besoins du grand public, démocratisant l'accès à la capture de ressources réseau.