uqload_downloader_dart 1.0.2
uqload_downloader_dart: ^1.0.2 copied to clipboard
A Dart library for downloading videos from UQLoad.io
import 'package:uqload_downloader_dart/uqload_downloader_dart.dart';
/// Exemple complet d'utilisation de UQLoad Downloader Dart
void main() async {
print('đŹ === Exemple UQLoad Downloader Dart ===\n');
// URL d'exemple UQLoad (remplacez par une vraie URL pour tester)
const String videoUrl = 'https://uqload.cx/embed-abc123def456.html';
// Exemple 1: Récupérer les informations d'une vidéo
await demonstrateVideoInfo(videoUrl);
// Exemple 2: Téléchargement avec barre de progression
await demonstrateDownloadWithProgress(videoUrl);
// Exemple 3: Téléchargement simple
await demonstrateSimpleDownload(videoUrl);
// Exemple 4: Validation d'URL et utilitaires
demonstrateUtilities();
print('\nâ
Tous les exemples sont terminés !');
print('đĄ Pour tester avec une vraie vidĂ©o, remplacez l\'URL dans le code.');
}
/// Exemple: Récupération des informations d'une vidéo
Future<void> demonstrateVideoInfo(String url) async {
print('đ === RĂ©cupĂ©ration des informations vidĂ©o ===');
try {
final downloader = UQLoad(url: url);
print('đ RĂ©cupĂ©ration des informations...');
final info = await downloader.getVideoInfo();
print('â
Informations récupérées:');
print(' đč Titre: ${info.title}');
print(' đ RĂ©solution: ${info.resolution ?? 'Inconnue'}');
print(' â±ïž DurĂ©e: ${info.duration ?? 'Inconnue'}');
print(' đŸ Taille: ${sizeOfFmt(info.size)}');
print(' đ URL directe: ${info.url.substring(0, 50)}...');
} catch (e) {
print('â Erreur: $e');
}
print('');
}
/// Exemple: Téléchargement avec callback de progression
Future<void> demonstrateDownloadWithProgress(String url) async {
print('đ„ === TĂ©lĂ©chargement avec barre de progression ===');
ProgressBar? progressBar;
// Callback de progression personnalisé
void onProgress(int downloaded, int total) {
// Initialiser la barre de progression Ă la premiĂšre utilisation
progressBar ??= ProgressBar(total: total);
progressBar!.update(downloaded);
}
try {
final downloader = UQLoad(
url: url,
outputFile: 'ma_video_avec_progress',
outputDir: './downloads',
onProgressCallback: onProgress,
);
print('đ DĂ©marrage du tĂ©lĂ©chargement avec progression...');
await downloader.download();
print('\nâ
Téléchargement terminé avec succÚs !');
} catch (e) {
print('â Erreur lors du tĂ©lĂ©chargement: $e');
}
print('');
}
/// Exemple: Téléchargement simple sans progression
Future<void> demonstrateSimpleDownload(String url) async {
print('âŹïž === TĂ©lĂ©chargement simple ===');
try {
// Téléchargement basique
final downloader = UQLoad(url: url, outputFile: 'ma_video_simple');
print('đ„ TĂ©lĂ©chargement en cours...');
await downloader.download();
print('â
Téléchargement terminé !');
} catch (e) {
print('â Erreur: $e');
}
print('');
}
/// Exemple: Utilisation des fonctions utilitaires
void demonstrateUtilities() {
print('đ ïž === Fonctions utilitaires ===');
// Test de validation d'URL
final urls = [
'https://uqload.cx/embed-abc123def456.html',
'https://uqload.co/embed-xyz789.html',
'https://google.com',
'invalid-url',
];
print('đ Validation des URLs:');
for (final url in urls) {
final isValid = isUqloadUrl(url);
final status = isValid ? 'â
' : 'â';
print(' $status $url');
}
// Test de formatage des tailles
print('\nđ Formatage des tailles:');
final sizes = [1024, 1048576, 1073741824, 1234567890];
for (final size in sizes) {
print(' $size bytes = ${sizeOfFmt(size)}');
}
// Test de nettoyage des caractÚres spéciaux
print('\nđ§č Nettoyage des noms de fichiers:');
final filenames = [
'Vidéo Test@#File!.mp4',
'Mon Film [2024].avi',
'Série/Episode\\1.mkv',
];
for (final filename in filenames) {
print(' "$filename" â "${removeSpecialCharacters(filename)}"');
}
print('');
}