VideoHelp Forum



Support our site by donate $5 directly to us Thanks!!!

Try StreamFab Downloader and download streaming video from Netflix, Amazon!



+ Reply to Thread
Page 1 of 3
1 2 3 LastLast
Results 1 to 30 of 90
  1. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Getwvkeys and the Cdrm Project both have large data tables of pssh and keys they have found for members.

    If you have no CDM and no way to find keys it may be worthwhile seeing if a database search reveals anything.

    A recent snapshot of a key database is here:-https://mega.nz/file/80Bl1YgK#WF_ATJcqMPCUg7JIttFbMrjJlhrMl328jJvBIstGyg0 It contains over one quarter of a million sets of keys.

    Searching the database can be done from a command window once sqlite3 is installed. See https://www.sqlite.org/download.html for your system's binaries.

    With sqlite3 installed, in a command window opened in the same directory as the saved database, type
    Code:
    sqlite3
    If the installation was successful the response will be:-
    HTML Code:
    sqlite3
    SQLite version 3.40.1 2022-12-28 14:03:47
    Enter ".help" for usage hints.
    Connected to a transient in-memory database.
    Use ".open FILENAME" to reopen on a persistent database.
    sqlite>
    Open the database for use, note the full stop at the start:-
    Code:
    .open keyVault_WN21.db
    Examine the first 200 rows of data:-
    Code:
    sqlite> select _rowid_, pssh, keys  from DATABASE ORDER BY _rowid_  LIMIT 0,200;
    Examine the last 100 rows of data
    Code:
    sqlite> select _rowid_, pssh, keys  from DATABASE ORDER BY _rowid_ DESC LIMIT 0,100;
    Typing
    Code:
    .help
    will show a full list of commands to manage sqlite3 with
    HTML Code:
    .exit
    being the command to close the program. But make a distinction between sqlite command and the Database language of SQL that is used to create and interrogate Tables in the Database.
    The following is SQL run within sqlite3

    Use SQL to find a specific set of keys for a given pssh. All SQL commands finish with a semi-colon:-
    Code:
    select keys from DATABASE where pssh = "AAAAiXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGkIARIQHqtFX89nNCqZISgDwbSolhoIY2FzdGxhYnMiQGV5SmhjM05sZEVsa0lqb2lOakpoWXpFNVlUTmhaV05sTkdVMU56aGhNV1kzWmpCa01UbGtZbVJtWVRJaWZRPT0yB2RlZmF1bHQ=" ;
    results in;
    HTML Code:
    1eab455fcf67342a99212803c1b4a896:0d475e2b8e6d41bf4a47b2aab9abc3d0
    Note that command select from DATABASE is used. The creators of the keyVault_WN21.db have confused a Database (keyVault_WN21.db) with a TABLE and have rather confusingly called it DATABASE. A Database may contain many TABLES.

    But a simpler way to find a key in the Table would be to use a python routine. For example sql.py
    Code:
    '''
    A routine to search a database table for keys by providing a value for PSSH
    Database at https://anonfiles.com/D0n8Ffsdzf/keyVault_WN21_db 
    '''
    
    
    import sqlite3
    
    con = sqlite3.connect("keyVault_WN21.db")
    cur = con.cursor()
    
    pssh = input("PSSH? ")
    
    res = cur.execute(f"select keys from DATABASE where pssh = '{pssh}'")
    keys = res.fetchone()
    
    if keys:
        key  = keys[0]
        print(f"\n{key}")
    else:
        res = cur.execute("SELECT COUNT(*) FROM DATABASE")
        num = res.fetchone()
        number = num[0]
        print(f"\nNothing found!\nYet there are {number} entries in the database.")
    Using the above and pssh as AAAAWXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADkIARIQJX msqlSxQFWqEqz+J7flnBoLc3RyZWFtZ3JvdXAiEKqseSWxVFVA qhKs/ie35ZwqAlNEMgA= gives
    Image
    [Attachment 71184 - Click to enlarge]


    It some circumstances it might be useful to do a pre-lookup for keys in the database even if you have your own CDM.

    Happy days!
    Last edited by A_n_g_e_l_a; 17th Jan 2024 at 04:51.
    Quote Quote  
  2. Search, Learn, Download! Karoolus's Avatar
    Join Date
    Oct 2022
    Location
    Belgium
    Search Comp PM
    Very nice!
    Quote Quote  
  3. Member
    Join Date
    May 2023
    Location
    England
    Search Comp PM
    Great job, thanks!

    There's also a GUI @ https://sqlitebrowser.org/dl/ which I find very useful.
    Quote Quote  
  4. Member
    Join Date
    May 2023
    Location
    England
    Search Comp PM
    Originally Posted by ridibunda View Post
    What's the total size of that database file?
    173.5MB - or 268,805 pssh values.
    Quote Quote  
  5. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    I have reconciled two databases, one from getwvkeys.cc and the other from cdrm-project (CDM Seller). The database file is now 1Gb and has 672268 unique PSSH values.

    It is located here [edit]Removed see below for updated link[/edit]

    If using the old sql the database has been renamed to reflect the week number of this release. Edited code for the new database name is below.
    Code:
    '''
    A routine to search a database table for keys by providing a value for PSSH
    Database at https://anonfiles.com/v1R7wdwez9/keyVault_WN24_db
    '''
    
    
    import sqlite3
    
    con = sqlite3.connect("keyVault_WN24.db")
    cur = con.cursor()
    
    pssh = input("PSSH? ")
    
    res = cur.execute(f"select keys from DATABASE where pssh = '{pssh}'")
    keys = res.fetchone()
    
    if keys:
        key  = keys[0]
        print(f"\n{key}")
    else:
        res = cur.execute("SELECT COUNT(*) FROM DATABASE")
        num = res.fetchone()
        number = num[0]
        print(f"\nNothing found!\nYet there are {number} entries in the database.")
    Last edited by A_n_g_e_l_a; 14th Jun 2023 at 06:00.
    Quote Quote  
  6. Anonymous9875434
    Guest
    AAAAgHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGASED7w53 9t5FOxr6Ft26lYNt0SED7w539t5FOxr6Ft26lYNt0SED7w539t 5FOxr6Ft26lYNt0SED7w539t5FOxr6Ft26lYNt0SED7w539t5F Oxr6Ft26lYNt1I49yVmwY=
    Quote Quote  
  7. Nice work, A_n_g_e_l_a !
    Quote Quote  
  8. Thank you very much. Magnificent work. I also wanted to ask a question, does the database also contain the license URL?
    Quote Quote  
  9. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by Neurobcn View Post
    does the database also contain the license URL?
    No.
    Quote Quote  
  10. Ah ok, thanks!
    Quote Quote  
  11. And why not put it all?
    Quote Quote  
  12. Originally Posted by A_n_g_e_l_a View Post
    Use SQL to find a specific set of keys for a given pssh. All SQL commands finish with a semi-colon:-
    Code:
    select keys from DATABASE where pssh = "AAAAiXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGkIARIQHqtFX89nNCqZISgDwbSolhoIY2FzdGxhYnMiQGV5SmhjM05sZEVsa0lqb2lOakpoWXpFNVlUTmhaV05sTkdVMU56aGhNV1kzWmpCa01UbGtZbVJtWVRJaWZRPT0yB2RlZmF1bHQ=" ;
    results in;
    HTML Code:
    1eab455fcf67342a99212803c1b4a896:0d475e2b8e6d41bf4a47b2aab9abc3d0
    I was able to execute the command correctly with only single quotes for 'pssh'
    Code:
    sqlite> .open keyVault_WN21.db
    
    sqlite> select keys from DATABASE where pssh = "AAAAiXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGkIARIQHqtFX89nNCqZISgDwbSolhoIY2FzdGxhYnMiQGV5SmhjM05sZEVsa0lqb2lOakpoWXpFNVlUTmhaV05sTkdVMU56aGhNV1kzWmpCa01UbGtZbVJtWVRJaWZRPT0yB2RlZmF1bHQ=" ;
    Parse error: no such column: AAAAiXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGkIARIQHqtFX89nNCqZISgDwbSolhoIY2FzdGxhYnMiQGV5SmhjM05sZEVsa0lqb2lOakpoWXpFNVlUTmhaV05sTkdVMU56aGhNV1kzWmpCa01UbGtZbVJtWVRJaWZRPT0yB2RlZmF1bHQ=
      select keys from DATABASE where pssh = "AAAAiXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7Q
                               error here ---^
    
    sqlite> select keys from DATABASE where pssh = 'AAAAiXBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAAGkIARIQHqtFX89nNCqZISgDwbSolhoIY2FzdGxhYnMiQGV5SmhjM05sZEVsa0lqb2lOakpoWXpFNVlUTmhaV05sTkdVMU56aGhNV1kzWmpCa01UbGtZbVJtWVRJaWZRPT0yB2RlZmF1bHQ=' ;
    1eab455fcf67342a99212803c1b4a896:0d475e2b8e6d41bf4a47b2aab9abc3d0
    
    sqlite> 1eab455fcf67342a99212803c1b4a896:0d475e2b8e6d41bf4a47b2aab9abc3d0
    The script uses single quotes and runs without error
    Quote Quote  
  13. Member piaohua's Avatar
    Join Date
    May 2023
    Location
    中国
    Search PM
    Thanks!
    Image
    [Attachment 71686 - Click to enlarge]


    I don't understand what went wrong.
    Using Python is not a problem.
    Last edited by piaohua; 13th Jun 2023 at 11:11.
    Quote Quote  
  14. Originally Posted by Neurobcn View Post
    And why not put it all?
    What would you do with a bunch of licenses?
    Quote Quote  
  15. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by Neurobcn View Post
    And why not put it all?
    The database table I have created is a join of two databases from different sources. License only occurs in one of them. Licenses can be ephemeral, containing one time tokens - hence useless. But if you have keys why on Earth would you need anything more?
    Quote Quote  
  16. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by piaohua View Post
    Thanks!

    I don't understand what went wrong.
    Using Python is not a problem.
    From the looks of things there is no closing quote around the pssh value and also no semi-colon ending the SQL.
    This is trivial stuff.
    Quote Quote  
  17. Member piaohua's Avatar
    Join Date
    May 2023
    Location
    中国
    Search PM
    I get it, use single quotes, not double quotes.
    Quote Quote  
  18. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    The database so far provided works well enough; but I simply had added the cdrm 'pssh' and 'keys' values to the getwvkeys database which made its file size over 1Gb! I have now redone the job and exported from both cdrm and getwvkeys into a totally new database. This allows for having rows containing the same pssh as 'pssh' is no longer the Primary Key. The new table is smaller at 254Mb with 672284 entries.

    Note cdrm stores keys as #################:################## and getwvkeys as [{"key": "###############;##################"}] which is python for a list of dictionaries but defined as text in the database so you will see this difference in output from searches from time to time.

    The new consolidated table is here https://anonfiles.com/w7k5F3wbz7/export_db
    and has this schema:
    CREATE TABLE exported(
    rowid INTEGER PRIMARY KEY,
    pssh TEXT,
    keys TEXT
    );

    Calling the table 'exported' helped me keep my sanity when dealing with tables called 'database' in the databases of both cdrm and getwvkeys. it does mean a slight change in the code of sql.py is needed.

    sql.py
    Code:
      
    '''
    A routine to search a database table for keys by providing a value for PSSH
    Database at https://anonfiles.com/w7k5F3wbz7/export_db
    '''
    
    
    import sqlite3
    
    con = sqlite3.connect("export.db")
    cur = con.cursor()
    
    pssh = input("PSSH? ")
    
    res = cur.execute(f"select keys from exported where pssh = '{pssh}'")
    keys = res.fetchone()
    
    if keys:
        key  = keys[0]
        print(f"\n{key}")
    else:
        res = cur.execute("SELECT COUNT(*) FROM exported")
        num = res.fetchone()
        number = num[0]
        print(f"\nNothing found!\nYet there are {number} entries in the database.")
    if you've already got keyVault_WN24.db this only frees a few pssh data collisions and adds less than 100 extra rows - so hardly worth downloading.
    edit:
    Further playing around reveals some mess in the getwvkeys database with duplicate entries. There more oderly section is from cdrm-project database.
    running sqlite3 in a terminal:
    Code:
     select keys from exported where pssh = "AAAAUHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADAiKDRlZjkxZTk0OWRmODQzNmNhNmJiNzQyZDQzYWMyNmM2YzI1MDg5NWJI49yVmwY=";
    reveals 6 duplicate entries from getwvkeys database
    Image
    [Attachment 71695 - Click to enlarge]

    SELECT DISTINCT
    Code:
     select distinct keys from exported where pssh = "AAAAUHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAADAiKDRlZjkxZTk0OWRmODQzNmNhNmJiNzQyZDQzYWMyNmM2YzI1MDg5NWJI49yVmwY=";
    returns one set each of 5 different keys for what was in cdrm and getwvkeys.

    The python routine above doesn't see the duplictes as it only fetches one result presently. This is work in progress for my python but direct SQL commands will work fine.
    Last edited by A_n_g_e_l_a; 14th Jun 2023 at 08:08.
    Quote Quote  
  19. Member piaohua's Avatar
    Join Date
    May 2023
    Location
    中国
    Search PM
    Thanks for sharing!
    Quote Quote  
  20. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    I've had a donation of 10,000 vdocipher keys which I have added to the database. After enforcing a UNIQUE constraint on the getWVkeys data the quantity of unique pssh/key pairs has dropped by half so presently there are 491111 entries including vdocipher.

    Now vdocipher instead of pssh uses a unique id formed from the mpd so this little bit of python code gets the value to search for if you are looking for vdocipher key.
    Code:
    mpd_link = input("Enter your vdocipher mpd link: ")
    unique_id = mpd_link.split("/")[4] + "/" + mpd_link.split("/")[5]
    print(f"Use this value as pseudo-PSSH in sql.py  = {unique_id}")
    The new updated database is here https://anonfiles.com/Z9I6P6w5z8/export_db and It has an updated sql.py to interrogate it as below:-

    Code:
    '''
    A routine to search a database table for keys by providing a value for PSSH
    Database at https://anonfiles.com/Z9I6P6w5z8/export_db 
    '''
    
    
    import sqlite3
    
    con = sqlite3.connect("export.db")
    cur = con.cursor()
    
    pssh = input("PSSH? ")
    
    res = cur.execute(f"select keys from exported where pssh = '{pssh}'")
    keys = res.fetchall()
    
    if keys:
        for key in keys:
            mykey  = key[0]
            print(f"\n{mykey}")
    else:
        res = cur.execute("SELECT COUNT(*) FROM exported")
        num = res.fetchone()
        number = num[0]
        print(f"\nNothing found!\nYet there are {number} entries in the database.")
    The schema for the table is
    CREATE TABLE exported(
    rowid INTEGER PRIMARY KEY,
    pssh TEXT,
    keys TEXT,
    UNIQUE (keys)
    );
    If anyone with a cache of pssh/key pairs wishes to share the data more widely I accept links to text json or databse files by pm and will willingly add them to the database.

    I did ask the owner of GetWVKey.cc to let me have an official copy of the getWvKeys database. No luck so far. I live in hope. Democratization of all this data is the way forward!
    Last edited by A_n_g_e_l_a; 15th Jun 2023 at 08:27.
    Quote Quote  
  21. I still think it would be positive to include MPD links as well.

    If it works 10%, or even 5%, it would still be good.
    Quote Quote  
  22. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Mpd links do not feature in any of the sources for this database. How would you go about getting them? Thinking does need to be grounded sometimes by reality.

    You could construct a vdocipher mpd maybe if you knew the pattern?

    Code:
    select pssh from exported  where length(pssh) =22  limit 0,100;
    Works to show the pseudo pssh values for vdcipher.
    MZH5djnvvZB9a/1235dcf1
    9F0tfcM20KeGg/89eaad2f
    vZd9l2Vovba4p/af7a3d8b
    dqpIjp8riU5Hd/cdde4ceb
    wZJ4Y7HO9cE7f/31d1404d
    48omx316L3SaT/09deedb5
    dkRCFmQcTp6Re/b649b0dd
    lJWt9pkd6QG56/d1bba802
    nMbodDKk5o65n/640b325d
    jU9eFz9vnKUFQ/7eaadd8d
    l5FEt8g8SWtcu/0624c9e1
    olNVhNd18SVCD/97fd7440
    ZpvWwTqmRZ0JZ/1f8652fc
    PrDzyagRDTiWn/82cc5eea
    g7hrPd2aGMETb/ac193f55
    GdyAtoa3LN7iJ/020ede2e
    D2ClGDyQQu8vH/0be0ddf7
    KJqOqjfdRXp6Y/8f50779e
    ozlQzyzZ4KxEr/e3a565b0
    USnlTs1kDT2Am/9b733f54
    cj4H7sb3qsbrX/1bbe6393
    LZ7gO3y8waoyA/9cf66c57
    rPO3alpiKU1CO/400eab89
    WNZE4Xrd6Q2tf/270c4aa7
    IZbCWuXXIaT7f/ef5bce2e
    vYBBKhv2CaWAd/d89c0547
    er9DpBkTYLPqv/8b3c6e75
    ToMSj2ST4aM5w/67f39613
    2nFFvNpD9qzkJ/d8c0f0db
    nrQtq5i2SU2Ju/1bfa26a3
    Never seen an mpd for vdocipher but I understand tbe above comprises a unique identifier as above..
    Last edited by A_n_g_e_l_a; 15th Jun 2023 at 09:31.
    Quote Quote  
  23. It needs to be democratized.

    Error in the certification....

    There are more groups that need to be democratized, but these are more hidden.
    Last edited by Neurobcn; 10th Apr 2024 at 04:54.
    Quote Quote  
  24. Member piaohua's Avatar
    Join Date
    May 2023
    Location
    中国
    Search PM
    GetWVKey had too many wrong keys, which forced me to reacquire new ones at the CDRM website.
    Sorry to ask a stupid question, do keys expire?
    Quote Quote  
  25. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by piaohua View Post
    GetWVKey had too many wrong keys, which forced me to reacquire new ones at the CDRM website.
    Sorry to ask a stupid question, do keys expire?
    Not as far as I know . But I have heard of one network making changes. I think when Content Delivery Networks put something up they use Widevine tools to create the encrypted media. There is a time and cost penalty to this - so why would they choose to do it again unless something abnormal happens?
    Quote Quote  
  26. Member piaohua's Avatar
    Join Date
    May 2023
    Location
    中国
    Search PM
    Then I don't understand, I tried a 45 episode series last night and got the key in the database, only to find out when I decrypted it that all the secret keys were wrong and I had to go back to the CDRM website to get a new key.
    Quote Quote  
  27. Member
    Join Date
    Feb 2022
    Location
    Search the forum first!
    Search PM
    Originally Posted by piaohua View Post
    Then I don't understand, I tried a 45 episode series last night and got the key in the database, only to find out when I decrypted it that all the secret keys were wrong and I had to go back to the CDRM website to get a new key.
    Which sort of response did you get for the database search. Getwvkeys gives { --key: xxxxxxxxxxxxxxxx } and cdrm is just xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx .

    I fear that the integrity of the getwvkeys database is poor. I found, before getting kicked out of getwvkeys Discord, that sometimes cached results failed and needed a fresh non-cached fetch.

    I had hoped faulty data would not be too much of a problem. Perhaps this is why getwvkeys refuse to give me an official copy? - Maybe they know a lot of cached data is suspect?
    Quote Quote  
  28. Member piaohua's Avatar
    Join Date
    May 2023
    Location
    中国
    Search PM
    It is not a question of "--key", kid:key, the kid of new and old secret keys is the same, the difference is the key.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!