From c23263364a7310db47ae0995c212b087578170d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=88=9A=28noham=29=C2=B2?= <100566912+NohamR@users.noreply.github.com> Date: Mon, 5 Jan 2026 21:32:35 +0100 Subject: [PATCH] Add segment batch size option and rename batch size args --- README.fr.md | 14 ++++++++++---- README.md | 12 +++++++++--- main.py | 17 ++++++++++++----- 3 files changed, 31 insertions(+), 12 deletions(-) diff --git a/README.fr.md b/README.fr.md index eb21026..7c79250 100644 --- a/README.fr.md +++ b/README.fr.md @@ -69,8 +69,12 @@ https://github.com/user-attachments/assets/54a50828-c0e9-4a29-81c7-e188c238a998 Vous pouvez automatiser le téléchargement en fournissant des arguments. ```bash -usage: main.py [-h] [--start-date START_DATE] [--end-date END_DATE] [--duration DURATION] [--channel-id CHANNEL_ID] [--video VIDEO] [--audio AUDIO] [--title TITLE] - [--username USERNAME] [--password PASSWORD] [--key KEY] [--output-dir OUTPUT_DIR] [--widevine-device WIDEVINE_DEVICE] +usage: main.py [-h] [--start-date START_DATE] [--end-date END_DATE] [--duration DURATION] + [--channel-id CHANNEL_ID] [--video VIDEO] [--audio AUDIO] [--title TITLE] + [--username USERNAME] [--password PASSWORD] [--key KEY] + [--output-dir OUTPUT_DIR] [--widevine-device WIDEVINE_DEVICE] + [--bruteforce-batch-size BRUTEFORCE_BATCH_SIZE] + [--segment-batch-size SEGMENT_BATCH_SIZE] [--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] options: @@ -91,8 +95,10 @@ options: Répertoire de sortie pour les fichiers téléchargés (par défaut: ./downloads) --widevine-device WIDEVINE_DEVICE Chemin vers le CDM Widevine (par défaut: ./widevine/device.wvd) - --batch-size BATCH_SIZE - Nombre de requêtes pour le bruteforce (par défaut: 20000) + --bruteforce-batch-size BRUTEFORCE_BATCH_SIZE + Taille de lot pour le bruteforce (par défaut: 20000) + --segment-batch-size SEGMENT_BATCH_SIZE + Taille de lot pour les téléchargements de segments (par défaut: 64) --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL} Définir le niveau de logging (par défaut: INFO) ``` diff --git a/README.md b/README.md index 1cf8f69..b0e6b60 100644 --- a/README.md +++ b/README.md @@ -69,8 +69,12 @@ https://github.com/user-attachments/assets/54a50828-c0e9-4a29-81c7-e188c238a998 You can automate the download by providing arguments. ```bash -usage: main.py [-h] [--start-date START_DATE] [--end-date END_DATE] [--duration DURATION] [--channel-id CHANNEL_ID] [--video VIDEO] [--audio AUDIO] [--title TITLE] - [--username USERNAME] [--password PASSWORD] [--key KEY] [--output-dir OUTPUT_DIR] [--widevine-device WIDEVINE_DEVICE] +usage: main.py [-h] [--start-date START_DATE] [--end-date END_DATE] [--duration DURATION] + [--channel-id CHANNEL_ID] [--video VIDEO] [--audio AUDIO] [--title TITLE] + [--username USERNAME] [--password PASSWORD] [--key KEY] + [--output-dir OUTPUT_DIR] [--widevine-device WIDEVINE_DEVICE] + [--bruteforce-batch-size BRUTEFORCE_BATCH_SIZE] + [--segment-batch-size SEGMENT_BATCH_SIZE] [--log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL}] options: @@ -91,8 +95,10 @@ options: Output directory for downloaded files (default: ./downloads) --widevine-device WIDEVINE_DEVICE Path to Widevine device file (default: ./widevine/device.wvd) - --batch-size BATCH_SIZE + --bruteforce-batch-size BRUTEFORCE_BATCH_SIZE Batch size for bruteforce (default: 20000) + --segment-batch-size SEGMENT_BATCH_SIZE + Batch size for segment downloads (default: 64) --log-level {DEBUG,INFO,WARNING,ERROR,CRITICAL} Set the logging level (default: INFO) ``` diff --git a/main.py b/main.py index 4e58f8e..e87517a 100644 --- a/main.py +++ b/main.py @@ -86,11 +86,17 @@ def parse_arguments(): help="Path to Widevine device file (default: ./widevine/device.wvd)", ) parser.add_argument( - "--batch-size", + "--bruteforce-batch-size", type=int, default=20000, help="Batch size for bruteforce (default: 20000)", ) + parser.add_argument( + "--segment-batch-size", + type=int, + default=64, + help="Batch size for segment downloads (default: 64)", + ) parser.add_argument( "--log-level", type=str, @@ -188,7 +194,7 @@ if __name__ == "__main__": logger.debug("DRM keys: %s", keys) logger.debug("Output dir: %s", args.output_dir) logger.debug("Widevine device: %s", args.widevine_device) - logger.debug("Batch size: %d", args.batch_size) + logger.debug("Batch size: %d", args.bruteforce_batch_size) else: # Interactive mode @@ -213,7 +219,8 @@ if __name__ == "__main__": title = title or f"{freebox_id}_{start_date.strftime('%Y%m%d_%H%M%S')}" keys = [] - batch_size = args.batch_size if cli_mode else 20000 + batch_size = args.bruteforce_batch_size if cli_mode else 20000 + segment_batch_size = args.segment_batch_size if cli_mode else 64 output_dir = os.getenv("OUTPUT_DIR") or ( args.output_dir if cli_mode else "./downloads" ) @@ -249,7 +256,7 @@ if __name__ == "__main__": ) else: logger.info( - "Date mismatch between requested start date and manifest data, bruteforce method is needed." + "Date mismatch between requested start date and manifest data for %s, bruteforce method is needed.", content_type ) valid_ticks = asyncio.run(bruteforce(track_id, start_tick_user, batch_size)) @@ -285,7 +292,7 @@ if __name__ == "__main__": start_tick = data["start_tick"] rep_nb = data["rep_nb"] asyncio.run( - save_segments(output_dir, track_id, start_tick, rep_nb, DURATION) + save_segments(output_dir, track_id, start_tick, rep_nb, DURATION, batch_size=segment_batch_size) ) # Merge video and audio