[RELEASE - ALPHA] FreeDigi (BitTorrent, Usenet, HTTP supprt)
Hi guys,

I've been working on this project since last November, and I think its finally time to put a version of it online. I labelled it as Alpha but its stable enough for daily use, but not yet feature complete.

What is FreeDigi?
FreeDigi is a plugin orientated media acquisition framework taking some inspiration from DirectShow.

Plugins are separated into different categories:
  • Download Managers These are either implementations of specific protocols such as HTTP, or bridges between FreeDigi and applications such as uTorrent and nzbget.
  • Content Providers These are essentially screen scrapers for sites such as ClearBits, Archive.org or any media source that you can code a client for.
  • PostProcessors These take care of downloads once they are complete, such as rar or zip extraction, cleaning up download directories etc.

You're probably already completely confused by the above so it might just be better to give an example.

Clearbits.net is a site that hosts legal torrents. I can write a screenscraper that says there is a torrent file at this URL. FreeDigi goes through all of the download managers until it finds one that supports downloading with BitTorrent, downloads it and once its done executes all the post processors to get it ready for TV viewing.

Adding new download protocols to FreeDigi is easy and only requires some basic Python knowledge (and an application or library to do the downloading for you). If you want to write a parser for a new movie site, you do not have to get bogged down about how to download something, or managing a video library :-)

FreeDigi is split into a backend and frontend. Currently I have the backend running on my Buffalo Linkstation NAS drive (about £75 on amazon) and the frontend running on my Apple TV 2.

The backend takes care of downloading files and hosting content providers, meaning if you install a plugin for your favorite site it becomes available to all the frontends in your home.
As its written in Python, it supports OSX, Linux and Windows. Installation instructions will be in the next post.

The frontend is responsible for retrieving video over SMB shares and can start/stop/pause/initiate downloads on the backend. You can have multiple frontends on a network, and one frontend can request that another frontend play a video.

Currently the following plugins are included:
  • uTorrent Controller
  • nzbget Controller
  • HTTP Downloader
  • Archive.org screenscraper
  • Clearbits.net screenscraper
  • RSS viewer

I've taken liberties following the XBMC UI paradigms. When you're in the plugin (under Programs) you are presented with Content Providers. Pressing left will bring you to your local library, and pressing right will bring you to the currently downloading list. This operates in a circular fashion.

Please note that I do not support video piracy, and FreeDigi has been a learning exercise with legitimate uses.

FreeDigi is licensed under the 4 clause BSD license.
http://vps.donutsoft.net/~donut/freedigi/backend.zip for the backend code (please see next post for installation instructions)
http://vps.donutsoft.net/~donut/freedigi....FreeDigi/ contains the frontend XBMC plugin
-- NOTE: If theres sufficient interest, I can create a Virtual Machine running Linux with all of these settings preconfigured and put it on BitTorrent --

FreeDigi was originally developed on a Mac but is cross platform. I'm going to give Windows installation instructions, and based on them you should be able to get it working on other platforms.

In short, you'll need to install Python 2.6 or 2.7 (not 3.0!), the LXML extensions, uTorrent, share a drive and edit FreeDigi.conf

Download and install Python from
Install LXML from
(LXML has been chosen over BeautifulSoup due to the large speed improvements on HTML parsing)

Create a new folder "C:\shared", right click on it, select properties. Go to sharing and share the folder without a password.

Install uTorrent, go to Settings and enable WebUI (set alternate port to 9090). Set the download folder to C:\shared

Extract backend.zip to C:\backend, Use a plain text editor (Notepad++ preferably) to edit freedigi.conf
If everything appears in one long line and you're running Windows XP, use Notepad++ instead of plain old Notepad (this file was created on a Unix machine)

Edit the following lines
base download directory = C:\shared

maximum download threads = 4
download path = C:\shared

local shared root = C:\shared
published shared root = smb://[IP]/shared
device name = Windows Machine

change Local shared root, published shared root and base download directory to your own settings (they should all be the same). You can leave the [IP] as is, this will be substituted for your backend IP address automatically.

EDIT: You'll also need unrar.exe, download it from http://www.rarlab.com/rar/unrarw32.exe and rename it to unrar.exe and place it somewhere in your PATH such as C:\windows or C:\backend

Head back to the commandline, type
C:\python27\python.exe main.py

Run the client on XBMC and you're good to go (It should discover the server automatically).

It should be possible to get the backend running on an Apple TV1, and most NAS drives that support optware
I've been looking for something like that for months :-) Can you give us the Linux installation instructions for Linkstation please? Im planning to use it with WDTV instead of Apple TV, do you beleive it will work with this setup? Thanks..
Hi there,

Unfortunately it wont work with the WDTV as the WDTV doesn't support XBMC.

This is mainly a college project, so there will be a significant amount of redundant information here - but have a look at the table of contents and you should be able to see points of interest: http://vps.donutsoft.net/~donut/freedigi/doc.pdf (including installation instructions for the Buffalo Linkstation).
Documentation has never been my strongpoint, and it is still a work in progress. The screenshots below are not final either, and artwork will be updated soon.

Here are some screenshots.


The above is downloading using uTorrent, but the download protocol used is completely hidden from the user. That download is also happening on my NAS drive, with the user interface running on XBMC on my laptop.
Thread Rating:
  • 1 Vote(s) - 5 Average

Logout Mark Read Team Forum Stats Members Help
[RELEASE - ALPHA] FreeDigi (BitTorrent, Usenet, HTTP supprt)51