32 Commits

Author SHA1 Message Date
Ingan121
27787de49b * Change 'Donwload' to 'Export' to prevent confusion
* Disable Remove and Download buttons if no device is available
2025-09-30 23:30:00 +09:00
Ingan121
1cbed538a9 Misc 2025-09-07 23:15:55 +09:00
Ingan121
af43d00494 * Add manual key entry capability to the known keys handler
* Fix the clear button in the incognito mode actually clearing the non-incognito logs
2025-09-07 23:14:33 +09:00
Ingan121
6dbcd903a4 * Add experimental 'known keys' mode that works unexpectedly well for some services
* Needs better log matching system tho
2025-09-07 00:01:25 +09:00
Ingan121
92bca46aee * Implement proper support for 'webm' initDataType instead of relying on previously logged PSSH with same KID
* Still prefer saved logs from same-origin to prevent duplicate entries
* Fix remove individual log button not working with new logs with origin data
2025-08-31 14:38:41 +09:00
Ingan121
de8ce64157 Fix persistent randomly failing 2025-08-30 23:31:04 +09:00
Ingan121
55a910e4fe * Refactor the persistent log saving logic to use one log entry for all sessions associated with a pssh on a specific origin
* Some other misc refactor
* Auto reload all command boxes when changing the command options
* Add origin isolation to prevent cross-origin fingerprinting, etc. with webm-type initData or persistent licenses
  * Logs from different origins can have duplicate entries even if pssh is same
2025-08-30 19:30:45 +09:00
Ingan121
19d14fb28b * Small redesign after the merge
* Fix 'some' coding style inconsistencies (but there are still many)
* Also make the command options collapsible, and save the collapsed state
* Next commit: change the decision of keeping duplicate sessions for persistent sessions
2025-08-30 15:34:10 +09:00
Ingan121
a10eef88bf * Add a separate error viewer popup for long errors
* Block persistentState: required keySystemAccess if persistence is disallowed
* Finish persistent license support
  * Tested on https://biograf-155113.appspot.com/ttt/episode-2/, it's a bit broken so you should put sessionId in IndexedDB manually with the console
2025-08-29 20:22:15 +09:00
Ingan121
7bb893e31e * Some refactor for persistent license support
* Always use the JS-facing sessionId for internal handling (on both WV and PR) for simplicity
  * Replace dirty string-based inter-script communication with JSON one
  * Not tested yet at all due to lack of functional test material
2025-08-28 23:51:14 +09:00
Ingan121
bbd73bd587 * Prefer decoded WRM Header instead of raw base64 initData on PlayReady remote, unless sg_api_conf.prPsshAsIs: true
* It is always used for logging regardless of that SG conf, to prevent duplicate log entries when switching PR local and remote
2025-08-28 12:49:05 +09:00
Ingan121
6a41be227d * Omit {secret} header if it's not provided in JSON
* Allow SuperGeneric devices to be imported without having a base URL set ('host' key)
* Abort remote requests if expected key is not found
* Prevent duplicate log entries if a entry was added while the panel was open
2025-08-27 20:56:51 +09:00
Ingan121
88f743d5a5 * Allow putting device names dynamically in the SuperGeneric API URL field
* Prevent importing invalid device files
* Misc panel UI changes
  * Allow removing site profiles without actually visiting the page
  * Fix special characters in the back of the site scope label going to the front of the label
* Fix encoding and formatting of the exported log JSON files
* Remove unused code
2025-08-26 20:09:35 +09:00
Ingan121
b4726880f1 * Fix Local Widevine not actually setting the server certificate
* Fix keys from Bitmovin demo mistakenly being included in hardcoded.js (in contradiction of the comments above)
2025-08-25 23:17:44 +09:00
Ingan121
4e9e7cf7ba * Add support for forced client ID encryption mode
* One more refactor to remove redundancy
2025-08-25 20:15:11 +09:00
Ingan121
0a69dc3204 * More friendly error messages for remote failures
* Prevent error message showing when a page calls close() on unload
* Add support for server certificates for Widevine remote
2025-08-24 22:56:14 +09:00
Ingan121
330988d926 Misc 2025-08-23 22:56:57 +09:00
Ingan121
ba9d4c6a52 * Better error notification (prevent unnecessary multiple notifs, etc.)
* Add support for overwriting devices
2025-08-23 22:47:08 +09:00
Ingan121
7797ebf6b3 * Update HardcodedDevice to reflect the code change that mandated returning sessionKey 2025-08-23 21:01:56 +09:00
Ingan121
665853f6da * Refactor to use the same device interface when parsing license (attempt to make it survive config changes mid-run)
* Better error handling for the panel
* Fix error message not showing if an empty content key array is returned from the remote server
* Fix PlayReady remote not working with raw pyplayready serve
2025-08-23 20:32:28 +09:00
Ingan121
6cabc3c1ce Remove remote workflow queueing that is indeed useless and impossible to fix 2025-08-23 15:42:33 +09:00
Ingan121
460b1d4546 * Remove unused argument
* Temp commit that adds queueing for remote requests (attempt to fix CDRM invalidating second sessions)
  * Will be removed in the next commit cuz I realized queueing the whole workflow (getReq+parseLic) is not possible if webpage generateRequests in parallel
2025-08-23 15:41:29 +09:00
Ingan121
408946ccf3 * Add support for using remote on PR license servers that only expect challenges encoded in PlayReadyKeyMessage
* Add support for file URLs (only for FF-based browsers cuz Chromium block EME on fileurls)
2025-08-23 00:08:46 +09:00
Ingan121
3e1000227a * Add proper support for pyplayready remote API
* Merge SuperGeneric with the normal remote mode
* Refactor the previous non-generic remote CDM code to use SuperGeneric with generated default API config
* Improve error handling and notification
* Fix removing a remote device of a system messing with the other system's selected remote device
* Log tab titles and use that for generating m3u8dl commands
2025-08-22 23:23:30 +09:00
Ingan121
227d078f78 Add back PlayReady support for SuperGeneric 2025-08-22 17:27:27 +09:00
Ingan121
268dee85ef Make SuperGeneric WV exclusive 2025-08-19 00:00:57 +09:00
Ingan121
462dbfb41b * Show more friendly error messages for remote API failures
* Return a Widevine EME disabled on Firefox+Widevine (just like the real message) when WV is blocked
* Refactor SuperGeneric to be more flexible about number of requests
2025-08-18 23:41:30 +09:00
Ingan121
7fc8621eec * Hide HardcodedDevice 2025-08-17 22:55:03 +09:00
Ingan121
6068a747b1 * Improve panel UI
* Finish SuperGeneric
* Add support for PlayReady remote device (never tested cuz I don't own one)
* Fix ClearKey not working when blockDisabled is enabled
* Notify background script failures
2025-08-17 16:47:57 +09:00
Ingan121
0885f49db4 Fix total breakage 2025-08-17 10:25:52 +09:00
Ingan121
f6637da6c8 * Make the repo as-is work as a unpacked extension again
* Add unfinished 'SuperGeneric' API custom handler (never tested yet)
2025-08-17 02:12:01 +09:00
Ingan121
6632b952a0 * Some major refactor
* Improve the custom scope input UI
2025-08-16 17:05:20 +09:00