Python library for the Mega.co.nz API.
Python
Switch branches/tags
Nothing to show
Latest commit 1b7135a Oct 29, 2015 @richardasaurus Update README.md
Permalink
Failed to load latest commit information.
mega It is possible to find a folder with a "path" Nov 9, 2013
tests improved tests May 18, 2013
.gitignore ignore update May 17, 2013
.travis.yml travis May 18, 2013
API_INFO.md api info file started May 23, 2013
README.md Update README.md Oct 29, 2015
examples.py basic unit testing May 15, 2013
requirements.txt anonymous login May 18, 2013
setup.py anonymous login May 18, 2013

README.md

Deprecated

Mega.py is now deprecated, please use the official SDK https://github.com/meganz/sdk.

I aim to write a wrapper for the SDK when i have the time to do so.


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
sudo pip install mega.py

Import mega.py

from mega import Mega

Create an instance of Mega.py

mega = Mega()
# add the verbose option for print output on some functions
mega = Mega({'verbose': True})

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

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

Rename a file or a folder

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

Moving a file or a folder into another folder

file = m.find('myfile.doc')
folder = m.find('myfolder')
m.move(file[0], folder)

Search account for a file, and get its public link

file = m.find('myfile.doc')
m.get_link(file)

Trash or destroy a file from URL or its ID

m.delete(file[0])
m.delete_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')

m.destroy(file[0])
m.destroy_url('https://mega.co.nz/#!utYjgSTQ!OM4U3V5v_W4N5edSo0wolg1D5H0fwSrLD3oLnLuS9pc')

files = m.find('myfile.doc')
if files:
    m.delete(files[0])

Add/remove contacts

m.add_contact('test@email.com')
m.remove_contact('test@email.com')

Requirements

1. Python2.7+
2. Python requests (>0.10) - python-requests.org
3. PyCrypto - dlitz.net/software/pycrypto/

Tests

Test .py files can be found in tests.py, run these to ensure Mega.py is working 100%.

Contribute

Feel free to pull the source and make changes and additions.

Learn about the API at Mega.co.nz, more documentation coming shortly.
- https://mega.co.nz/#developers