Skip to main content

This program or lib can download torrent file throughemail account and send the torrent file to transmission web controller

Project description


  • This program needs to set up two serivce. Email service and Transmission’s Web Controller
  • It will be make cool if you download any files on Raspberry-pi through transmission
  • This program’s all about feature depend on Email service and Transmission.
  • Simply say about this. It just connect Email service and transmission web controller


  • I don’t wanna waste resources on my laptop and Smartphone. cause’ it’s totally be hot when running torrent.


  1. Basically, This program is designed for reducing laptop resources. Therefore, I recommand to run this program on raspberry-pi.
  2. Use this program with Dropbox or GoogleDrive to access your downloaded media files.
  3. If you can use E-Mail notification service on your smartphone, It’s good interaction.


$ git clone
$ cd pi-email-transmission
$ pip install -e .


  1. Set up transmission web controller setting
    • If you use Dropbox or GoogleDrive. redirect directory to there.
    • Must check you have account information and host, port
  2. Check your e-mail account available IMAP and SMTP Protocol
    • This application need to transport through IMAP, SMTP Protocol.
    • Therefore, you must set up IMAP and SMTP protocol available on you email account.
  3. Set up pi-email-transmission’s config.json file
# config.json
        "imap" : "",
        "smtp" : ""
        "folder" : "pi-imap-transmission",
        "user" : "{email_id}",
        "password" : "{email_password}"
  1. Set up Envrironment variables
$ export PET_HOME=/home/likemilk/workspace/pi-email-transmission
  1. Finally, You can check correct setting about this program when you execute this command
$ python test
# Have to finish setting Configurations!

Configuration Images


Email-Naver Configuration

Email-Naver Configuration


Email-Google Configuration

Email-Google Configuration


Transmission Configuration

Transmission Configuration

How is it work going?

# *It's just psuedo code. not a real code*
class Service(Thread):

        # 1. read all of e-mails and check UNSEEN email
        # 2. get torrent file and add it on tranmission through pay load
        # 3. send email about complete or failed
        # 4. send seen flag
        torrentList = email.get_torrent('(UNSEEN)')
        for torrent in torrentList:
                email.send('add_complete', torrent)
                email.send('add_fail', torrent)


        # 1. read all of Trnasmission download Queue.
        # 2. get Completed entry and delete the entry.
        # 3. send email about complete.
        torrentList = transmission.get_completed('Completed')
        for torrent in torrentList:

Contact Me

  • is my mail
  • Welcome PR or be Contributor. I want to play coding with you.
  • Really Welcome Feedback and Any Issues.

Project details

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page