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