WeTransfer V2 Upload wrapper
This module allows you to use WeTransfer services directly, from python 3.x.
It is based on current WeTransfer API V2: https://developers.wetransfer.com/documentation
Project team:
- Francois Liot (Author)
- Sander Huijsen (Heavy Contributor)
Installation
Install through Pypi:
pip install py3wetransfer
Functional features
-
Transfer API https://wetransfer.github.io/wt-api-docs/index.html#transfer-api
-
Board API https://wetransfer.github.io/wt-api-docs/index.html#board-api
Usage
Before starting, make sure you have an API key acquired from Developers Portal.
To initialize the client, you need to use your own api key.
Transfer
upload_file
Simply send your file
from wetransfer import TransferApi
x = TransferApi("<my-very-personal-api-key>")
print(x.upload_file("Test upload file", "test.zip"))
# "https://we.tl/t-ajQpdqGxco"
upload_files
Send several files
from wetransfer import TransferApi
x = TransferApi("<my-very-personal-api-key>")
print(x.upload_files("Test upload files", ["file1.zip", "file2.zip"]))
# "https://we.tl/t-ajQpdqGxco"
Board
Manage board
from wetransfer import BoardApi
x = BoardApi("<my-very-personal-api-key>")
board_id, board_url = x.create_new_board("test board")
print(board_url)
# "https://we.tl/t-ajQpdqGxco"
# add links
x.add_links_to_board(board_id, [{"url": "https://wetransfer.com/", "title": "WeTransfer"}])
# add files
x.add_files_to_board(board_id, ["test1.png", "test2.jpg"])
# retrieve the board object
# https://wetransfer.github.io/wt-api-docs/index.html#retrieve-boards-information
board_object = x.get_board(board_id)
Debug
import logging
from wetransfer import TransferApi
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
py3wetransfer_log = logging.getLogger('wetransfer')
py3wetransfer_log.setLevel(logging.DEBUG)
py3wetransfer_log.propagate = True
x = TransferApi("<my-very-personal-api-key>")
print(x.upload_file("test upload", "test.zip"))
# "https://we.tl/t-ajQpdqGxco"
If you want to see complete http traffic:
import logging
from wetransfer import TransferApi
import http.client as http_client
http_client.HTTPConnection.debuglevel = 1
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
py3wetransfer_log = logging.getLogger('wetransfer')
py3wetransfer_log.setLevel(logging.DEBUG)
py3wetransfer_log.propagate = True
x = TransferApi("<my-very-personal-api-key>")
print(x.upload_file("test upload", "test.zip"))
# "https://we.tl/t-ajQpdqGxco"
Testing authentication
If you need to test authentication validity
from wetransfer import TransferApi
x = TransferApi("<my-very-personal-api-key>")
if x.is_authenticated():
print("we are authenticated")
Additional authentication parameters
WeTransfer asks officially for a valid "domain_user_id"/"user_identifier" in their API documentation, but in practise, it works perfectly without providing it.
from wetransfer import TransferApi
x = TransferApi("<my-very-personal-api-key>",
user_identifier="81940232-9857-4cf7-b685-7a404faf5205")
print(x.upload_file("test upload", "test.zip"))
# "https://we.tl/t-ajQpdqGxco"
Unit tests
The package has a number of tests. You can run the tests by running the command python setup.py test. Please make sure you have defined the environment variable WE_API_KEY, otherwise all tests will fail. See 'Usage' above to see how you can obtain a key. You can set the key in a shell like so:
export WE_API_KEY=WvMlogNaWLubua6S5iuA5tRk6ZZDqwh6yaxOpGNa
This is an invalid key, so make sure to use your own key.
Please note that the tests actually upload files, and this may take a while (depending on your internet connection). Also, running the tests counts toward your API key usage, so bear this in mind.
Release files for py3wetransfer 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| py3wetransfer-1.0.3.tar.gz | 8.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| py3wetransfer-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.3 kB
Release files / py3wetransfer-1.0.3.tar.gz
| Download URL | py3wetransfer-1.0.3.tar.gz |
|---|---|
| Size | 8.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
626bf37d9260794174fecc1713d3215635096a3687ea8390dbe7db227f5416c1
|
|
BLAKE2b-256 checksum How to use checksums |
39584b427231bd5d78611944313670aff6db15556946813cd0335bb441c574c5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8
|
Release files / py3wetransfer-1.0.3-py3-none-any.whl
| Download URL | py3wetransfer-1.0.3-py3-none-any.whl |
|---|---|
| Size | 14.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c44ff554aecd37c7d213e586ea633bddb0645822137e356defb51bd9d0fb6cb1
|
|
BLAKE2b-256 checksum How to use checksums |
53b5f6add2fe4aa5aec70d87030dc3c965791201617128debfc46b4af88eb1b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8
|