Jump to content

try, try again


Recommended Posts

i genuinely apologize to the feature request board, where i posted an unnecessary request that included requests for multiple features. the truth is that i read the rules up to the end of Sanchez's post, and no further, which was a mistake.

i have removed the feature request section of this post, as i found that there already has been such a request, although it was made over a year ago and it's thread has nearly died: http://forum.utorrent.com/viewtopic.php?id=8481

i think that feature would be a really great addition on it's own. It's also necessary to implement the interface described below.

This is not a modification of the utorrent interface, but a new interface with a specialized purpose.

I'm not certain if i'm posting this in the right place, but under that definition i think it should fit in User Interface Design.

Wouldn't it be nice if everything downloaded via the bittorrent protocol?

Rather than creating a complex server-based application and a specialized web browser (let your head spin for a while on that challenge)--existing technologies could be used. this software is primarily a client-based interface plugin for the firefox browser and an optional tracker for servers which choose to support them.


1. catch url reqests, (ie http://forum.utorrent.com/img/avatars/7.png)

2. generate temporary .torrent file (ie 7.png.torrent)

3. add torrent to utorrent with label 'webcache' and tracker (ie http://forum.utorrent.com/announce)

4.a--if tracker is found,

4.a----find peers

4.a----download via bt protocol + dht

4.b--if tracker is !found

4.b----check dht

4.b.a------if peers are found by dht

4.b.a--------download via dht

4.b.b------if peers are !found by dht (ie torrent downloading unsuccessful)

4.b.b--------remove torrent from utorrent

4.b.b--------process url request normally (ie download via http)

5. open the file from cache or web

6. make torrent files for cache

Step 1 detail

urls entered by the user and objects encountered on pages will be captured for processing. a wait timer begins here just before the browser checks the cache for the file, although the client should do a cache check itself to prevent redundancy. the timing of this capture is critical, as it must not undermine other plugins. This step is performed by the plugin.

Step 2 detail

.torrent files will be generated on the fly with specified hash values, based on location and file size. it is important that a method of making hash values be standardized for these files as each client running the plugin will generate its own torrents that must seem like copies of torrents on other clients' computers. This step is handled by the plugin.

Step 3 detail

this will be done through the existing utorrent web interface. it would be best if this were a silent procedure, so the user would not be asked any questions or see any unusual activity. a change to utorrent is necessary at this point, where files added with a certain label would be saved into a certain directory. the user will have to set the location of the browser's cache directory within utorrent's settings. the tracker set here may or may not exist and may or may not have information on the files requested. This step is performed by the plugin, and hands control over to utorrent

Step 4-4.b.a detail

These steps represent what I presume to be normal operation in utorrent. This is handled by utorrent

Step 4.b.b detail

After a certain amount of time, the plugin will request status information from utorrent and based on that info, choose to proceed with a torrent download or a browser download. The wait timer ends after this step. This step is handled by the plugin

Step 5 detail

If the torrent download was successful, or the file is already in cache, then it will be loaded from cache and displayed in the browser. Otherwise, the file will be downloaded, loaded into the browser, and stored in cache as usual. This step is handled by the browser.

Step 6 detail

This is not a linear step. periodically, the plugin should check cache files against existing temporary torrents and make new torrents as necessary . This step is handled by the plugin.


1. only large, static, insecure files should be downloaded this way.

--small files would not be efficient due to the amount of time it takes to find peers to download files, but i think the ideal solution for this is a user setting for file size limit.

--files that are generated on-demand must not be downloaded from another person's cache, as this will not be the most up-to-date or specialized file.

--secure information must not be included for obvious reasons. a user setting for domain blocking would be ideal

2. caching is required

--a feature i often disable myself, users must have this active and dedicate a decent amount of space to help other users, however a user's browser settings must not be bypassed. deletion on browser termination would be fine.

3. the browser must be fooled

--to think that this is the normal operation of things. the plugin must catch urls and send them to utorrent for processing, get results, and then let the browser discover the files in cache as if nothing were out of the ordinary. probably this will involve delaying the browser's normal cache checking for the amount of time it takes to download the file. if the file could not be downloaded as a torrent at all, then control must be returned to the browser before it declares a server timeout.

4. other plugins must not be subverted

--i'd hate do make a really efficient download of a large, annoying flash advertisement which adblock would have sent to /dev/null. there are other firefox plugins to be concerned with as well.


1. keeping a tracker for plugin clients online somewhere and adding it to the tracker list of each file to help with downloading an dht searches.

2.... anything is possible.

So that's my big plan. I know it's complicated and there are a lot of ideas to work out.

As for the feature request, I believe many would find it useful to download certain labels to certain directories.

thanks for reading!


ps - programmers:

any suggestions you have might help me get this off the ground. any contribution or even a takeover is welcome. i was really into programming in high-school and college but these days i don't even have a compiler on my computer at home.

Link to comment
Share on other sites


This topic is now archived and is closed to further replies.

  • Create New...