AnkiHub Import Media Error

Before the error happened, I was…
I was attempting to use the AnkiHub Import Media function, specifically using a Mega link.

Error message (don't change this)
Anki 25.09.4 (d52ca669) (ao)
Python 3.13.5 Qt 6.9.1 PyQt 6.9.1
Platform: macOS-26.6.2-arm64-arm-64bit-Mach-O

Traceback (most recent call last):

  File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/taskman.py", line 152, in raise_exception
    raise exception

  File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/taskman.py", line 148, in _on_closures_pending
    closure()
    ~~~~~~~^^

  File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/.venv/lib/python3.13/site-packages/aqt/taskman.py", line 88, in <lambda>
    lambda future: self.run_on_main(lambda: on_done(future))
                                            ~~~~~~~^^^^^^^^

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/tabs/base.py", line 130, in on_done
    self.rootpath = fut.result()
                    ~~~~~~~~~~^^

  File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/_base.py", line 449, in result
    return self.__get_result()
           ~~~~~~~~~~~~~~~~~^^

  File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception

  File "/Users/jasonhailes/Library/Application Support/AnkiProgramFiles/python/cpython-3.13.5-macos-aarch64-none/lib/python3.13/concurrent/futures/thread.py", line 59, in run
    result = self.fn(*self.args, **self.kwargs)

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/tabs/mega.py", line 29, in create_root_file
    return MegaRoot(url)

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/mega.py", line 187, in __init__
    self.get_data()
    ~~~~~~~~~~~~~^^

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/mega.py", line 205, in get_data
    self.search_files(nodes, root_id, recursive=True)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/mega.py", line 217, in search_files
    key = mega.decrypt_node_key(node["k"], self.shared_key)

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/mega.py", line 156, in decrypt_node_key
    return decrypt_key(encrypted_key, shared_key)

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/megacrypto.py", line 78, in decrypt_key
    return sum(
        (aes_cbc_decrypt_a32(a[i : i + 4], key) for i in range(0, len(a), 4)), ()
    )

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/megacrypto.py", line 79, in <genexpr>
    (aes_cbc_decrypt_a32(a[i : i + 4], key) for i in range(0, len(a), 4)), ()
     ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/megacrypto.py", line 66, in aes_cbc_decrypt_a32
    return str_to_a32(aes_cbc_decrypt(a32_to_str(data), a32_to_str(key)))
                      ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/pathlike/megacrypto.py", line 61, in aes_cbc_decrypt
    decrypted += aes.decrypt(data[i : i + 16])
                 ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^

  File "/Users/jasonhailes/Library/Application Support/Anki2/addons21/1322529746/media_import/libs/pyaes/aes.py", line 399, in decrypt
    raise ValueError('ciphertext block must be 16 bytes')

ValueError: ciphertext block must be 16 bytes

Sentry link (for developers)

I believe the Mega import feature is very rarely used and it might have broken recently. You can work around it by downloading the folder normally from your browser then importing from the “Local Folder” tab instead.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.