Jump to content

µTorrent WebUI


Recommended Posts

As many of you have noticed, Directrix has been away -- he's busy with Real Life™. This thread is essentially home to the official continuation of his project, and is based on the last copy of WebUI I received from Directrix (way back in 2008-09-25). I picked off several low-hanging fruits and fixed some simple bugs for Directrix (#45, #50, #53, #66), but the remaining changes listed in the first WIP release (on 2009-05-26) were made by Directrix way back when. Since then, I've been doing what I could to improve WebUI, and the results can be found below.


Copyright © 2011, BitTorrent, Inc. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  • Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  • Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  • Neither the name of BitTorrent, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.


Linux Support
I make no guarantees that Linux support is perfect or complete. I am willing to hear bug reports for when WebUI is run with µTorrent Server, but please make sure you indicate clearly in your post what version of µTorrent you're running. It isn't fun to go on a wild goose chase only to find out that I was chasing the wrong goose.

Similarly, if you discover a bug and report it to the µTorrent devs, please make it clear in your report that you're running my version of WebUI. Even better, you should also test and report whether the default webui.zip that comes with that version of µTorrent also exhibits the bug, so that the devs have an easier time tracking the bug down too. If you find a bug in the original webui.zip that is fixed in my version, do report that to the µTorrent devs (don't just leave it alone and expect them to figure it out on their own).

v0.388 (2013-05-28)


After downloading the file, rename it to webui.zip and place it in the µTorrent settings directory. Under Windows, this can normally be found at

Start > Run > %appdata%\uTorrent


v0.388 (2013-05-28)
* Fix: Broken "Add New Torrent" dialog in IE
* Fix: Broken column width handling in Chrome
* Fix: Broken table scrolling in Opera
* Fix: Table scrolling breaks after column reset

v0.387 (2012-05-05)
~ Change: Update MooTools to v1.4.5
* Fix: Inconsistent URL encoding for add-url request

v0.386 (2012-04-28)
* Fix: Correctly size UI elements on first load

v0.386 (2012-01-02)
+ Feature: Cookie manager
+ Feature: Granular WebUI settings reset
~ Change: Update MooTools to v1.4.2
* Fix: RSS feed URLs with pipes cannot be properly edited

v0.385 (2011-09-03)
~ Change: Allow secondary sorting of torrent jobs when Status is primary sort
* Fix: Finished and queued seeding torrent jobs are mixed when sorting by Status
* Fix: Sorting listviews break UI updates in some cases

v0.384 (2011-08-29)
* Fix: An invalid RSS feed is selected for newly-created RSS favorites
* Fix: Disabling system font doesn't disable it completely
* Fix: Picked incorrect system font in some cases
* Fix: Regression in Status column sorting for torrent job listview
* Fix: Speed tab axes aren't properly font-agnostic

v0.383 (2011-07-02)
* Fix: Menu item separators missing under IE7
* Fix: Properties dialog broken under uTorrent 3.0
* Fix: Speed tab legend uses improper text in some languages

v0.382 (2011-05-28)
+ Feature: "Copy" menu item for RSS Feeds list
+ Feature: uTorrent Remote configuration (uTorrent 3.0 and newer only)
~ Change: Improved error reporting at startup
~ Change: Updated MooTools to v1.3.2
* Fix: Listview doesn't apply filter if Shift key is held while typing
* Fix: Listview doesn't properly unhide rows in some cases
* Fix: Listview fires delete event when the user presses Delete on the filter

v0.381 (2011-04-30)
+ Feature: Ability to disable use of system fonts
+ Feature: Codec column in RSS feeds list
+ Feature: Listview find (Ctrl+F when a listview is focused)
~ Change: Default to confirming on torrent delete if setting isn't found
* Fix: Broken "Add File" and "Add URL" dialogs under IE9
* Fix: Broken listview scrolling behavior under IE7
* Fix: Listview column headers use improper text in some languages
* Fix: Rows are skipped on long lists in virtual listview mode

v0.380 WIP (2011-03-19)
+ Feature: "Copy Magnet URI" menu item for torrent jobs
+ Feature: "Copy" menu item for torrent jobs, General, Peers, and Files tabs
+ Feature: .torrent URL drag-and-drop
+ Feature: Added/Completed On columns (uTorrent 3.0 and newer only)
+ Feature: Alt+Enter opens torrent job properties dialog
+ Feature: Format column in RSS feeds list
+ Feature: Piece counts in Files tab (uTorrent 3.0 and newer only)
+ Feature: Save As field in Detailed Info Pane (uTorrent 3.0 and newer only)
+ Feature: Source URL column in torrent jobs list (uTorrent 3.0 and newer only)
~ Change: Font-agnostic UI layout (use system font if available)
~ Change: Improved handling of Detailed Info Pane repaints on visibility toggle
~ Change: Respect gui.graph_legend
~ Change: Updated MooTools to v1.3.1
~ Change: Use Meta key instead of Ctrl for category multi-select on Mac OS X
* Fix: Broken icons in Peers and RSS listviews
* Fix: Broken RSS Date column
* Fix: Broken torrent job Status column sorting
* Fix: Don't show delete dialog for every key combination that includes Delete
* Fix: Regression where listview is not updated properly for selected category

v0.380 WIP (2011-01-27)
+ Feature: Multiple category/label selection support
+ Feature: RSS Downloader
~ Change: Improved control tab-stop order
~ Change: Improved progressbar readability
~ Change: Show error messages in "Status" column (uTorrent 3.0 and newer only)
~ Change: Use queue.slow_*_threshold to determine if torrent job is active
* Fix: Regression where some settings don't load properly

v0.380 WIP (2010-12-24)
+ Feature: Category list context menu
+ Feature: Main menu icon in status bar
+ Feature: Pause/resume all
+ Feature: Toggle Detailed Info Pane tab icons
~ Change: Heavy performance optimizations
~ Change: Improved context menu management
~ Change: Improved horizontal scrolling for category list and Preferences menu
~ Change: Improved virtual listview scrolling responsiveness
~ Change: Press Enter to submit settings changes in Preferences dialog
~ Change: Press Enter to submit settings changes in Properties dialog
~ Change: Remember last used pane in the Preferences dialog
~ Change: Visual feedback when pressing a form button
* Fix: Listview slightly broken when changing categories
* Fix: Opera 11 causing listview column headers to become hidden
* Fix: Opera scrolling entire document in some situations
* Fix: Regression in ability to change priority in Files tab by double-click
* Fix: Transfer Cap usage history invisible

v0.380 WIP (2010-11-24)
+ Feature: Auto-refreshing Files list
+ Feature: Auto-refreshing Peers list
+ Feature: Rudimentary uTorrent Server (Linux) compatibility
+ Feature: Set global Run Program
+ Feature: Status bar
+ Feature: Toolbar chevron
~ Change: Add some missing settings and controls to the Preferences dialog
~ Change: Disable toolbar buttons if unusable on selected torrent job(s)
~ Change: Divider drag-and-drop updates control sizes in real-time
~ Change: More intelligent menu item disabling based on selected torrent jobs
* Fix: Allow 'Esc' to work while a modal dialog is open
* Fix: Delete keyboard button or Remove toolbar button use default remove action
* Fix: Improve UI resize responsiveness
* Fix: Restore request failure retry limit of 5

v0.380 WIP (2010-11-06)
~ Change: Don't auto-redirect on port change (display message instead)
* Fix: Broken Files tab download
* Fix: Hide separator in Label submenu if no label exists to be selected
* Fix: Ignore uTorrent Web enabled state for 3.0-only features
* Fix: MooTools regression caused Firefox to repeatedly request login details
* Fix: Regression in Files tab menu items
* Fix: Regression in multi-torrent support for Properties dialog

v0.380 WIP (2010-10-31)
+ Feature: Download path selection (uTorrent 3.0 and newer only)
+ Feature: Full torrent job removal support (uTorrent 3.0 and newer only)
~ Change: Append log entries to bottom of log
~ Change: Default to using virtual listview (rather than paged listview)
~ Change: Hide "Remove Label" if all selected torrent jobs have no label
~ Change: More robust handling of labels with special characters
~ Change: No longer requires compatibility mode when viewed under IE
~ Change: Setting "Max. rows per page" to 0 uses full virtual listview
~ Change: Show "New Label..." and "Remove Label" at top of Label submenu
~ Change: Speed graph line colors changed to more closely match desktop UI
~ Change: Support gui.log_date
~ Change: Updated MooTools to v1.3
* Fix: Context menu display issue in some situations
* Fix: Guest page broken after Transfer Cap usage history implemented
* Fix: Guest page listviews displaying incorrect data sometimes
* Fix: Language selection dropdown missing in IE
* Fix: Some comboboxes don't have a default value set in IE
* Fix: Status column not updating while torrent is being checked
* Fix: Torrent job items being updated with data for torrent job on another page
* Fix: Unstyled General tab item in IE

v0.380 WIP (2010-09-05)
+ Feature: Download files from the Files tab (uTorrent 3.0 and newer only)
+ Feature: Peers tab (uTorrent 3.0 and newer only)
+ Feature: Transfer Cap usage history (uTorrent 3.0 and newer only)
~ Change: Add some missing settings and controls to the Preferences dialog
~ Change: Close context menu on 'Esc' and on window resize
~ Change: Skin changed to main uTorrent skin (from Aquazureus)
~ Change: Slightly tighter integration with desktop UI settings
* Fix: Detailed Info Pane tab wrapping in some localizations
* Fix: Improper sizing of Files list in some situations
* Fix: Number rounding issues in various places

v0.371 (2010-08-28)
~ Change: #110 (Show version in "About" dialog)
~ Change: Dialog management tweaks
~ Change: Guest page now has detailed info pane, resizable dividers
* Fix: #102 (Speed tab's y-axis scaled badly with low speeds)
* Fix: #109 (UI scrolls off-screen sometimes in Opera)
* Fix: Opera not saving toolbar/category/info visibility toggled by keyboard
* Fix: Regression in ability to save delete confirmation setting cross-session

v0.371 WIP (2010-04-16)
~ Change: Ctrl+U opens "Add Torrent from URL" dialog
~ Change: Holding Shift while pressing Delete removes torrent with data
~ Change: HTML-based delete confirmation dialog rather than browser confirm()
~ Change: More graceful zoom handling in modern browsers with full page zooming
~ Change: Pause unpauses torrents only if all selected torrents are paused
~ Change: Restore ability to press Enter to submit torrents in add dialogs
~ Change: Use listview for Advanced Options
* Fix: Don't request add-url if URL is blank

v0.371 WIP (2010-04-04)
~ Change: Blank "Remaining" column if remaining amount is insignificant
~ Change: Encode search queries before submitting to search engine
~ Change: Hide search bar if search engine list empty
~ Change: Split "Add File" and "Add URL" into two dialogs
~ Change: Support size/speed units up to exabytes (EB)

v0.370 (2010-03-23)
+ Feature: Torrent job queue order changing (requires µTorrent v2.0.1)

v0.370 (2010-03-16)
~ Change: Slightly more intelligent file priority menu item graying
* Fix: Category List and Detailed Info Pane visibility/sizing regressions
* Fix: Status column not re-localized on language change until page refresh

v0.370 (2010-02-07)
~ Change: Modal Label dialog
* Fix: Column resizing broken on IE

v0.370 WIP (2010-01-27)
* Fix: File priority not updating after priority change
* Fix: Status column always shows "Checked 0%" while torrent being checked
* Fix: Status column not sorting intuitively in some situations
* Fix: Torrent jobs list progress bar not updating

v0.370 WIP (2010-01-25)
+ Feature: "Reset" item in listview column header context menu
+ Feature: Configurable search list (uTorrent 2.1 and newer only)
+ Feature: Scheduler table (uTorrent 2.1 and newer only)
+ Feature: Seeds/Peers column
+ Feature: Tab icons
+ Feature: Transfer Cap settings
~ Change: Add some missing settings to Preferences dialog
~ Change: Distinguish queued downloads and queued seeds in Status column
~ Change: Failure tweaks (exponential backoff, retry limit, hammer prevention)
~ Change: Most settings now applied on-the-fly without browser reload
~ Change: Respect gui.tall_category_list
~ Change: Slightly darker alternate list background color
~ Change: Slightly more natural keyboard/mouse shortcuts on Mac OS X
~ Change: Slightly smoother control resizing on browser window resize in IE
~ Change: Tweaked column resizing/reordering to be slightly less flaky
~ Change: Use ISO 639-1 for language code designation
* Fix: Double-clicking on a queued torrent doesn't stop it
* Fix: Regression where using listview scrollbar deselects selected items

v0.362 WIP (2010-01-09)
+ Feature: #87 (Search bar needs a submission button)
~ Change: GUI update interval limited to a minimum of 500 ms
~ Change: Made more resilient to request errors (retry on failure)
* Fix: #42 (Bad behavior when unexpected 'torrents' list returned)
* Fix: #92 (Dividers can be dragged out of window and 'lost')
* Fix: Dirty selection tracking on listview sort
* Fix: Guest page not resizing with window
* Fix: Incorrect availability calculation
* Fix: Keyboard shortcuts for listviews not working on some browsers
* Fix: Not all torrents in label/category displayed when emptied and refilled
* Fix: Progress bar not shown on guest page
* Fix: Progress bar overflowing listviews in IE
* Fix: Regression in support for rewritten URLs
* Fix: Search button slightly misaligned in IE
* Fix: Selecting nothing in listview still registers as selecting an item

v0.362 WIP (2009-12-24)
+ Feature: #55 (Progress bar)
~ Change: Don't toggle toolbar if F4 is pressed with Ctrl
~ Change: No longer has to be installed at root of webui.zip
~ Change: Show torrent job checking percentage progress
* Fix: Divider sizes not saved in Opera
* Fix: Esc not resetting interface
* Fix: Guest page attempting to update non-existent speed graph
* Fix: Incorrect status parsing in some edge cases
* Fix: IPv6 support
* Fix: Logger tab showing error about an invalid XML expression
* Fix: Redirecting on port change not working in some situations

v0.362 WIP (2009-10-25)
~ Change: Updated MooTools to v1.2.4
* Fix: MooTools regression caused column header right-click to fail

v0.362 WIP (2009-08-29)
* Fix: MooTools regression caused sorting to fail

v0.362 WIP (2009-07-25)
~ Change: Don't toggle toolbar if F4 is pressed with Alt
~ Change: Show infohash in the General tab
~ Change: Updated explorercanvas to release 3
~ Change: Updated MooTools to v1.2.3
* Fix: #39 ([ FF3 ] Firefox context menu popping in front of Web UI menu)

v0.362 WIP (2009-05-31)
~ Change: Force IE7 compatibility mode in IE8
* Fix: #28 (Cleaner solution implemented for Opera context menu scrollback bug)
* Fix: #81 (Handle horizontal resizing more gracefully in toolbar)
* Fix: Store webui.cookie with token authentication

v0.362 WIP (2009-05-27)
~ Changed: Widened proxy address field
~ Changed: #79 (Hide proxy server password)
* Fixed: #28 ([ Opera ] Right-click menu causes listviews to scroll back)
* Fixed: #80 (No localization for grayed Files context menu items)

v0.362 WIP (2009-05-26)
+ Added: #35 (Multi-torrent support in the Properties dialog)
+ Added: #44 (Speed tab)
~ Changed: Pressing 'Esc' closes the topmost open popup dialog; if no popups exist, ask to reset UI
* Fixed: #45 (Text not properly aligned in "Browse" button)
* Fixed: #46 (Unselected tab borders not showing correctly)
* Fixed: #50 (add-file input form not token authentication ready)
* Fixed: #53 (ETA never shows day/hour combination)
* Fixed: #58 (Bug when right-clicking multiple files with different priorities)
* Fixed: #66 (Local Peer Discovery setting can't be changed through WebUI)
* Fixed: #77 (NaN in various option fields)


Link to comment
Share on other sites

Minor bug: The greyed out current file priority (regardless of whether it is "High Priority", "Normal Priority" or "Low Priority") is still not localized when r-clicking on a single file in the files tab. Example of issue when I put language on Dutch:


Suggestion: JSON error field to logger tab

The backend sometimes returns an error field in its JSON return. For example when you try to add-file a torrent that already exists. The WebUI does nothing with this error. My suggestion is to create a line in the logger tab with the error.

Link to comment
Share on other sites

Eh, updated first post with a few extra simple bugs fixed.

Edit (2009-05-27 @ 13:23:37 EST): It appears the fix for #28 was incomplete (anything else in the UI that scrolls, like the categories list, will still scroll back), but oh well, the bulk of the problem is solved. I implemented my fix for that bug only as a temporary solution until a better one is written.

Edit (2009-05-27 @ 14:01:51 EST): Implemented a real fix for #28 that should solve the problem for good.

Link to comment
Share on other sites

Oh, and IE8 still needs to be running with Compatibility View enabled to work with WebUI. Cross-browser compatibility issues is not my forte, which is why I won't bother touching any such problems.


It might be a problem with excanvas. I see where it's screwing up, but I don't know why it's screwing up.

Edit: It's because MooTools has an odd way of detecting browser versions. It identifies IE based on Trident versions. Trident is IE's rendering engine, and their version numbers do not necessarily correspond. I'm not sure whether Directrix was aware of this in his development, but it seems to me like he's assuming the Trident version identifies the IE version. I'm not about to to in and figure it all out, so I think I'm going to bail and take the easy route: force IE7 emulation in IE8 using

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />

As for the Name column width, I don't know. I definitely didn't touch anything related to the WebUI settings/cookie in my changes... but I'll try to take a look another time.

Link to comment
Share on other sites

jewelisheaven, yes I did read Ultima's post completely. The keyword is "still".

With 0.361, IE8 doesn't need compat view to work properly..

Ultima, for the Name column width issue, a hint:

With 0.361 + IE8 (no compat view), width is remembered.

With 0.361 + IE8 (compat view enabled, although not needed), width isn't remembered either..

Hope it helps to locate the bug.

Link to comment
Share on other sites

Now that's a lead :D

Indeed, token authentication does seem to make a difference, which should hopefully narrow the search area down. It's clear WebUI isn't using token authentication when calling setsetting on exit to store webui.cookie:

[2009-05-30 22:34:02] HTTP: IP GET /gui/?action=setsetting&s=webui.cookie&v=...

With token authentication disabled, v0.362 is able to store the settings properly as well, so it looks to me like it's just a problem that's been around for a while now, but that no one noticed because there was so little focus placed on token authentication before. Can you confirm this?

Edit: [ URL SNIP ]

Can you try replacing the files in your webui.zip with these files to see if the problem persists?

Admittedly, there seems to be some kind of weird offset that's causing WebUI to remember the incorrect widths (the widths it's storing are actually wider than they really are, so when you next reload, the column might be ~10-20px wider than you last set it). I might get to that another time, though clearly, it's clearly a problem with IE7 emulation mode (which I'm using only because of MooTool's crazy browser detection scheme).

Link to comment
Share on other sites

Ultima you're the man ;)

Took the new files from your last post, "injected" them in webui.2009052713360309.zip, enabled token_auth and I'm glad to report everything now works OK in IE8 (without compat view, no need for it whatsoever).

All is good.

Of course, setting column width precisely would still drive even a yogi master completely nuts, but it's been that way since day 1 with WebUI, so that's not new (the "column ~10-20px wider than you last set it" issue).

Thanks a bunch, I feel more secure with token_auth enabled and all features now work, kudos. ;)



Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...


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

  • Create New...