Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Mega.py

Build Status Downloads PyPI version

Python library for the Mega.co.nz API, currently supporting:

  • login
  • uploading
  • downloading
  • deleting
  • searching
  • sharing
  • renaming
  • moving files

This is a work in progress, further functionality coming shortly.

For more detailed information see API_INFO.md

How To Use

Create a Mega account

First, create an account with Mega .

Install mega.py package

Run the following command, or run setup from the latest github source.

pip install mega.py

Import mega.py

from mega import Mega

Create an instance of Mega.py

mega = Mega()

Login to Mega

m = mega.login(email, password)
# login using a temporary anonymous account
m = mega.login()

Get user details

details = m.get_user()

Get account balance (Pro accounts only)

balance = m.get_balance()

Get account disk quota

quota = m.get_quota()

Get account storage space

# specify unit output kilo, mega, gig, else bytes will output
space = m.get_storage_space(kilo=True)

Get account files

files = m.get_files()

Upload a file, and get its public link

file = m.upload('myfile.doc')
m.get_upload_link(file)
# see mega.py for destination and filename options

Export a file or folder

public_exported_web_link = m.export('myfile.doc')
public_exported_web_link = m.export('my_mega_folder/my_sub_folder_to_share')
# e.g. https://mega.nz/#F!WlVl1CbZ!M3wmhwZDENMNUJoBsdzFng

Find a file or folder

folder = m.find('my_mega_folder')
# Excludes results which are in the Trash folder (i.e. deleted)
folder = m.find('my_mega_folder', exclude_deleted=True)

Upload a file to a destination folder

folder = m.find('my_mega_folder')
m.upload('myfile.doc', folder[0])

Download a file from URL or file obj, optionally specify destination folder

file = m.find('myfile.doc')
m.download(file)
m.download_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')
m.download(file, '/home/john-smith/Desktop')
# specify optional download filename (download_url() supports this also)
m.download(file, '/home/john-smith/Desktop', 'myfile.zip')

Import a file from URL, optionally specify destination folder

m.import_public_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')
folder_node = m.find('Documents')[1]
m.import_public_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc', dest_node=folder_node)

Create a folder

m.create_folder('new_folder')
m.create_folder('new_folder/sub_folder/subsub_folder')

Returns a dict of folder node name and node_id, e.g.

{
  'new_folder': 'qpFhAYwA',
  'sub_folder': '2pdlmY4Z',
  'subsub_folder': 'GgMFCKLZ'
}

Rename a file or a folder

file = m.find('myfile.doc')
m.rename(file, 'my_file.doc')

Contact Support

For paid priority support contact mega@odwyer.software.

UK Python Development Agency

Release History

1.0.9 (unreleased)

  • Nothing changed yet.

1.0.8 (2020-06-25)

  • Fixes find method returning the wrong file when more than one file exists with that name.
  • Handle new shared file URLS.

1.0.7 (2020-03-25)

  • Fix login by calculating public RSA exponent instead of hardcoding.

1.0.6 (2020-02-03)

  • Fixes RSA public exponent issue.
  • Switches dependency pycrypto to pycryptodome.

1.0.5 (2019-11-18)

  • Increase the wait time in between failed API request retries.

1.0.4 (2019-11-18)

  • Increase the wait time in between failed API request retries.

1.0.3 (2019-11-12)

  • Fixes broken download method.
  • Changes download and download_url methods to return the path to the downloaded file, previously returned None.
  • Added LICENSE.

1.0.2 (2019-11-07)

  • Reverts, "Replace pycrypto dependency with pycryptodome" as breaks login process.

1.0.1 (2019-11-06)

  • When a request fails due to EAGAIN response, retry with exp backoff up to 20 seconds.
  • Adds logging, removes print statements.
  • Replace pycrypto dependency with pycryptodome.
  • Removes Python 2 specific code.

1.0.0 (2019-10-31)

  • Removes broken method get_contacts().
  • Adds support for login with a v2 Mega user account.
  • Adds export() method to share a file or folder, returning public share URL with key.
  • Adds code, message attrs to RequestError exception, makes message in raised exceptions include more details.
  • Alters create_folder() to accept a path including multiple sub directories, adds support to create them all (similar to 'mkdir -p' on unix systems).
  • Adds exclude_deleted=True optional arg to find() method, to exclude deleted nodes from results.

0.9.20 (2019-10-17)

  • Python 3 bugfix to upload method.

0.9.19 (2019-10-16)

  • Python 3 support and bugfixes.
  • Update packaging code.
  • Added changelog.

0.9.18 (2013-07-04)

  • Unknown

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abcdijklm.py-1.0.9.dev0.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

abcdijklm.py-1.0.9.dev0-py2.py3-none-any.whl (19.8 kB view details)

Uploaded Python 2Python 3

File details

Details for the file abcdijklm.py-1.0.9.dev0.tar.gz.

File metadata

  • Download URL: abcdijklm.py-1.0.9.dev0.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6

File hashes

Hashes for abcdijklm.py-1.0.9.dev0.tar.gz
Algorithm Hash digest
SHA256 d4e81a5b23222766f081f83288eb0a76a55deee2effb27fcdf3fac2842ba4343
MD5 f7b9b17bc3f945fd5b5df719530de086
BLAKE2b-256 fa050e8d83ea4e005c73125e5ec789f98fff59ce5dcb622ebed4f6e66dc223a7

See more details on using hashes here.

File details

Details for the file abcdijklm.py-1.0.9.dev0-py2.py3-none-any.whl.

File metadata

  • Download URL: abcdijklm.py-1.0.9.dev0-py2.py3-none-any.whl
  • Upload date:
  • Size: 19.8 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.6.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.6

File hashes

Hashes for abcdijklm.py-1.0.9.dev0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 689427deb41fc938216fbd7f809bc07f2b399ef84895c26482a0bb48faaa4b80
MD5 c6e328bf408933693cbba9c5a5a0edd3
BLAKE2b-256 eb3229ae4482398d17b0b90aae416bd3d4f9438c2afe58ad8ccd0fdf224159f7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page