JKVideo : un client Bilibili tiers avec DASH, danmaku et streaming en direct
B Réagissez natif. Client React Native de station B tiers de grande apparence
En bref
- De quoi s’agit-il ?
- Un client React Native pour Bilibili qui apporte la lecture DASH, les danmaku en temps réel et le streaming en direct sur Android, iOS et le Web.
- À qui s’adresse-t-il ?
- JKVideo est un client Bilibili tiers riche en fonctionnalités qui documente clairement ses propres limitations et licences. Sa licence MIT permet la réutilisation avec attribution, et l'avertissement précise qu'il n'est pas affilié à Bilibili.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 126 jours.
- En quel langage est-il écrit ?
- Principalement TypeScript, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Un client React Native pour Bilibili
JKVideo est un client tiers pour Bilibili, la plateforme chinoise de partage de vidéos. Le README le décrit comme un client Bilibili React Native tiers riche en fonctionnalités et énumère la lecture DASH, les danmaku en temps réel, la signature WBI, le streaming en direct et la prise en charge multiplateforme comme principales capacités. Le dépôt est écrit en TypeScript et utilise React Native avec Expo. Il n'est pas affilié à Bilibili, comme le précise l'avertissement. Le projet est disponible sous licence MIT.
Lecture DASH et système de danmaku
Le lecteur construit un MPD local à partir d'un flux DASH Bilibili et le transmet à ExoPlayer pour un décodage natif, avec prise en charge de la 1080P+ et de la 4K HDR. Le système de danmaku gère à la fois les contextes vidéo et en direct. Pour les vidéos normales, les danmaku sont lus à partir d'une chronologie XML et rendus sous forme de superposition flottante à cinq voies. Dans les salles en direct, les danmaku arrivent via WebSocket et incluent des marques de garde et un comptage de cadeaux. Le lecteur prend également en charge un mini-lecteur global qui persiste à travers la navigation, avec un état synchronisé via un magasin inter-composants.
Signature WBI, connexion par code QR et téléchargements
La signature WBI est implémentée en TypeScript pur avec une implémentation MD5 sans dépendances cryptographiques externes ; le README indique que l'interface de navigation signée est mise en cache automatiquement pendant 12 heures. La connexion par code QR génère un code QR, interroge toutes les deux secondes et extrait le cookie SESSDATA des en-têtes de réponse. Les téléchargements prennent en charge plusieurs niveaux de qualité et s'exécutent en arrière-plan. Un serveur HTTP intégré crée un code QR pour le partage LAN, permettant à un téléphone sur le même réseau Wi-Fi de lire le contenu téléchargé.
Choix technologiques et structure du projet
Le tableau de la pile répertorie React Native 0.83 et Expo SDK 55, avec expo-router v4 pour la navigation basée sur des fichiers, Zustand pour l'état, Axios pour HTTP et @react-native-async-storage/async-storage pour la persistance. La lecture vidéo est gérée par react-native-video, avec un repli react-native-webview qui injecte un lecteur HTML5. Le dépôt est organisé en répertoires app, components, hooks, services, store et utils, le dossier app contenant les routes pour l'accueil, les détails vidéo, la salle en direct, la recherche, les téléchargements et les paramètres.
Démarrage avec Expo Go, une version de développement ou le Web
Le README documente trois façons d'exécuter l'application. La plus rapide est Expo Go : clonez le dépôt, exécutez npm install, puis npx expo start, et scannez le code QR avec Expo Go sur Android ou iOS. Ce mode limite certaines options de qualité et revient à WebView pour la vidéo. Une version de développement débloque toutes les fonctionnalités : npx expo run:android ou npx expo run:ios, la commande iOS nécessitant macOS et Xcode. Pour le Web, utilisez npx expo start --web, mais le README note que le Web nécessite un serveur proxy local pour l'anti-hotlinking des images, démarré avec node scripts/proxy.js sur le port 3001. Un APK Android direct est disponible sur la page Releases.
Limitations documentées dans le README
Plusieurs limitations sont explicitement énumérées. La lecture 4K et 1080P+ nécessite un compte Bilibili premium, car l'API restreint ces flux. Les flux en direct FLV ne sont pas pris en charge, car ni HTML5 ni ExoPlayer ne gèrent le FLV, donc HLS est automatiquement sélectionné. La lecture Web nécessite un proxy local pour contourner l'anti-hotlinking des images basé sur Referer de Bilibili. Les fonctionnalités de flux, de like et de collecte ne sont pas implémentées car elles nécessitent un jeton CSRF bili_jct. La connexion par code QR expire après dix minutes ; le README indique que fermer et rouvrir la modale de connexion la rafraîchit.
Licence MIT et avertissement du projet
Le projet est publié sous licence MIT, protégé par le droit d'auteur 2026 par JKVideo Contributors. La licence accorde la permission d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies du logiciel, à condition d'inclure l'avis de droit d'auteur et d'autorisation. Le logiciel est fourni tel quel, sans garantie d'aucune sorte. L'avertissement du README indique que le projet est uniquement destiné à l'apprentissage et à la recherche personnels, pas à un usage commercial, que tous les droits d'auteur du contenu vidéo appartiennent aux auteurs originaux et à Bilibili, et que le projet n'est pas affilié à Bilibili. Le texte de la licence ne traite pas du support, de la sécurité ou de l'état de préparation à la production, et le README ne le prétend pas non plus.
Conclusion éditoriale
JKVideo est un client Bilibili tiers riche en fonctionnalités qui documente clairement ses propres limitations et licences. Sa licence MIT permet la réutilisation avec attribution, et l'avertissement précise qu'il n'est pas affilié à Bilibili. Le README fournit suffisamment d'informations pour exécuter l'application dans Expo Go, une version de développement ou sur le Web.
Notes de la communauté