Go to file
Ethan Dalool 2ad6024ad8 Slightly jank fix to deal with extra data after json dict.
Even though the dict decodes just fine, I'm having some cases where
there is additional data after it. The data looks like random junk
bytes.
2020-10-01 11:21:32 -07:00
src Slightly jank fix to deal with extra data after json dict. 2020-10-01 11:21:32 -07:00
.gitignore Adds export method, fixes login for v2 accounts, rm get_contacts() method 2019-10-22 22:39:42 +01:00
.travis.yml speed up CI 2020-06-25 21:48:06 +01:00
API_INFO.md api info file started 2013-05-23 23:51:57 +01:00
HISTORY.md Back to development: 1.0.9 2020-06-25 21:44:31 +01:00
LICENSE Add LICENSE 2019-11-12 09:27:39 +00:00
MANIFEST.in lint 2020-06-25 21:36:43 +01:00
README.md docs 2020-06-25 21:40:12 +01:00
examples.py various fixes 2020-06-25 21:03:16 +01:00
requirements-dev.txt various fixes 2020-06-25 21:03:16 +01:00
requirements.txt updates history and ranges reqs 2020-02-03 19:46:25 +00:00
setup.cfg various fixes 2020-06-25 21:03:16 +01:00
setup.py Back to development: 1.0.9 2020-06-25 21:44:31 +01:00
tox.ini speed up CI 2020-06-25 21:48:06 +01:00

README.md

This repository is forked from https://code.richard.do/richardARPANET/mega.py


Mega.py

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

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