Skip to main content

Python lib for the Mega.co.nz API

Project description

NOTICE: If you’re reading this on GitHub.com please be aware this is a mirror of the primary remote located at https://code.richard.do/richardARPANET/mega.py. Please direct issues and pull requests there.


Mega.py

Build Status Downloads

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

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()

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')

~

Release History

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

Project details


Download files

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

Source Distribution

mega.py-1.0.7.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

mega.py-1.0.7-py2.py3-none-any.whl (19.4 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file mega.py-1.0.7.tar.gz.

File metadata

  • Download URL: mega.py-1.0.7.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/None pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

File hashes

Hashes for mega.py-1.0.7.tar.gz
Algorithm Hash digest
SHA256 09afdf3f5ad87e54bb9e2dd71b22f72a1304a06e721afdca331119bb7c0012dc
MD5 ab177cac03ba2a0b11a4f55b0ed79f22
BLAKE2b-256 2169c394135c7653c23c9b4508d277fd4234b8b2fe3cdc86f016931a31c98cc7

See more details on using hashes here.

File details

Details for the file mega.py-1.0.7-py2.py3-none-any.whl.

File metadata

  • Download URL: mega.py-1.0.7-py2.py3-none-any.whl
  • Upload date:
  • Size: 19.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/None pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.1.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.8.0

File hashes

Hashes for mega.py-1.0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2e6face7946572f134ff49ee2bd785df0eb5535ef42be99a5b9e15c552e0b931
MD5 d5ebcb45f00ee25ca0d35d26c8f219c0
BLAKE2b-256 92cd5ec2fae22bc110ba2602dfa85271a006f37ced3ccf15595d9426a2e1136d

See more details on using hashes here.

Supported by

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