Commit Graph

12 Commits

Author SHA1 Message Date
√(noham)²
ae5035c6a8 optimize DASH probing and segment download paths
- Switch bruteforce probes from GET to HEAD to avoid downloading
  full segment bodies (only the status code is needed)
- Cap bruteforce concurrency with a semaphore (default 100) instead of issuing one task per tick, and cancel leftover tasks on early exit
- Reuse a single aiohttp session / event loop for the manifest mode's AVC/HEVC/audio bruteforces to keep TCP connections alive
- Hoist the per-request segment headers into a module-level constant
- Use a set for the already-downloaded resume check in save_segments
- Replace read()-into-memory copies with shutil.copyfileobj in   merge_segments and decrypt
2026-08-13 17:40:06 +02:00
√(noham)²
ff8462d3df Times + logging changes 2026-06-23 18:31:50 +02:00
√(noham)²
e51a108d28 Chunked decryption, resume & selection fixes
Implement chunked decryption of .m4s segments (avoid loading entire stream into memory) by changing decrypt() to accept a segment directory, process ~1GB chunks with mp4ff-decrypt, and concatenate results. Add resume support in segment downloader by skipping already downloaded .m4s files and initializing successful counter accordingly. Improve manifest handling: gracefully handle missing AVC/HEVC tracks, bruteforce ticks conditionally, and mark representations for removal when no valid tick is found. Add fallback unfiltered selection in select_track when filtered lookup yields no candidates. Replace naive UTC offset logic with explicit Europe/Paris timezone utilities and adjust related time conversion signatures. Bump project version to 1.0.
2026-06-17 16:49:49 +02:00
√(noham)²
7dc70dc3bb Add batch size option for bruteforce operation 2025-12-21 18:56:53 +01:00
√(noham)²
4f0b0a655a Update comments, logging, and fix tick diff calculation 2025-12-20 13:01:30 +01:00
√(noham)²
31f87a6a99 Refactor logging to use parameterized messages 2025-12-20 12:52:35 +01:00
√(noham)²
debd884e2d Integrate structured logging across project 2025-12-20 12:46:28 +01:00
√(noham)²
2823fb6e2e Lint and clean up codebase for consistency 2025-12-20 12:20:59 +01:00
√(noham)²
5dc55dbf62 Add CLI mode and refactor Oqee downloader workflow
Introduces a command-line interface to main.py for Oqee TV downloads, supporting argument parsing for channel, date, quality, and keys. Refactors stream selection, segment download, decryption, and merging logic for both CLI and interactive modes. Adds new utility modules for DRM key retrieval, segment merging, and decryption. Cleans up and simplifies Oqee client, input, stream, and time utilities for improved maintainability and usability.
2025-12-20 11:43:01 +01:00
√(noham)²
764df27f09 Add tqdm and tabulate, improve bruteforce progress reporting 2025-11-30 16:14:49 +01:00
√(noham)²
8c27d91261 Bruteforce 2025-11-28 18:16:44 +01:00
√(noham)²
33fed17030 Initial project setup with main modules and utilities
Add main application logic, utility modules for stream and time handling, DRM key fetching, and manifest parsing. Includes example environment file, requirements, .gitignore, and README with project goals and todos.
2025-11-16 16:46:50 +01:00