1

Look at this img: enter image description here

Generally, Transmission tries to download all of items which are defined in a torrent file, concurrently. For example, if we have 10 item in a torrent file, after 1 hour, they can be in a range of 15% - 50% of progress (depending to the rate of download).

Is it possible to force Transmission to download items one by one: alphabetically or by sizes, etc. I know I can check/uncheck items manually as you see in the above image, but I'm asking for a way to do it automatically.

7
  • Maybe you can try deluge that allows you to prioritize files and there's even a plugin that allows you to download sequentially all pieces (by prioritization)
    – Braiam
    Jul 20, 2014 at 21:32
  • @Braiam, I need to run the client on GDM, without login and Transmission-Daemon can do it while graphical torrent clients such as deluge need login to Desktop!
    – mini
    Jul 21, 2014 at 2:25
  • Are you sure? I can have deluged as daemon running on boot without even login.
    – Braiam
    Jul 21, 2014 at 2:38
  • Wow, Deluge vs Deluged; so I'll try it in Cron.
    – mini
    Jul 21, 2014 at 10:12
  • Cron? Why cron? Just set it up to start at the system startup.
    – Braiam
    Jul 21, 2014 at 14:36

1 Answer 1

2

libtransmission has a python API, so you could script anything you want... but no, that feature is not baked in.

Here's a working example

#!/usr/bin/env python3

import transmissionrpc

tc = transmissionrpc.Client('localhost', port=(9091))

torrents = tc.get_torrents()
for torrent in torrents:
  if torrent.status == 'downloading':
    low = []
    torrent_files = torrent.files()
    for item in torrent_files:
      low.append(item)
    high = []
    for item in sorted(torrent_files, key=lambda x: torrent_files[x]['name']):
      if torrent_files[item]['size'] - torrent_files[item]['completed'] > 0:
        high.append(item)
        break
    try:
      low.pop(low.index(high[0]))
    except:
      pass
    tc.change(torrent.id, priority_high=high, priority_low=low)    

I put together a desktop widget to do this for me here.

2
  • Is this script just using port 9091?
    – mini
    Aug 20, 2014 at 11:30
  • Yes. It's the default transmission-rpc port that only accepts connections from 127.0.0.1 if enabled without auth and no trusted hosts are specified. Aug 20, 2014 at 13:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .