Skip to content
forked from enlavin/tvscrap

Scrapper to feed TV torrents into transmission and other bittorrent clients

Notifications You must be signed in to change notification settings

javinievas/tvscrap

 
 

Repository files navigation

TV Scrapper

TVScrap.py is a tool to automate the download of weekly shows using eztv.it and bittorrent.

Features

  • Transmission support (via transmissionrpc module)
  • MLDonkey support (using telnet)
  • Windows support (uses Windows Shell and the default handler of .torrent files)
  • Modular: can be easily extended with new commands (RSS feeds, new P2P clients, ...).

Prerequisites

TVScrap.py requires a recent Python 2 distribution (tested with 2.4-2.7) and the Storm ORM:

$ easy_install -U storm

Also uses BeautifulSoup HTML parser.

$ easy_install -U BeautifulSoup

If you want Transmission support you have to install transmission json-rpc module:

easy_install -U transmissionrpc

To fetch shows from RSS (mininova.org EZTV feed only at the moment) you will need feedparser:

easy_install feedparser

To use EZTV Twitter timeline to get new torrents you will need python-twitter and hachoir:

easy_install python-twitter hachoir_parser hachoir_metadata

In Windows you will also need "Python for Windows Extensions".

Installation

Create a default empty database (SQLite).

In Linux or POSIX:

$ mkdir  $HOME/.tvscrap
$ cp migration/tvscrap_template.db $HOME/.tvscrap/tvscrap.db

In Windows (using command-line)

c:\tvscrap> mkdir "%HOMEDRIVE%\%HOMEPATH%\.tvscrap"
c:\tvscrap> copy migration\tvscrap_template.db "%HOMEDRIVE%\%HOMEPATH%\.tvscrap"

Command line help

Try to run the help command:

$ python tvscrap.py help

tvscrap help
    Show this help
tvscrap register -s <show> -x <rx> [-m xx] [-n xx]
    Register a new show in DB
tvscrap shows
    List of registered shows
tvscrap episodes <show>
    Episode list for a show
tvscrap delete -s <show> [-e <episode>]
    Delete an episode/show from DB
tvscrap pending
    List of pending episodes
tvscrap eztv [-f file|-u url]
    Download torrents from eztv
tvscrap eztv_mininova [-f file|-u url]
    Download torrents from mininova.org EZTV RSS feed
tvscrap eztv_btchat [-f file|-u url]
    Download torrents from bt-chat.com EZTV RSS feed
tvscrap mldonkey [-m host] [-p port] [-u username] [-w password]
    Queue torrents in mldonkey
tvscrap transm [-m host] [-p port] [-u username] [-w password]
    Queue torrents in transmission
tvscrap windefault
    Queue torrents using the default .torrent handler in Windows
tvscrap config
    Dump config variables
tvscrap set -n varname -v value
    Set/Update config variable
tvscrap unset -n varname
    Delete config variable

Examples

Register a new show and download it only if the size of the file is between 150 and 300 MB

$ python tvscrap.py register -s "The.Big.Bang.Theory" -x "^The\s+Big\s+Bang\s+Theory\s+" -m 150 -n 300

List registered shows:

$ python tvscrap.py shows

'Dexter' '^Dexter\s+' (min: 350.0 Mb, max: 650.0 Mb)
'The Big Bang Theory' '^The\s+Big\s+Bang\s+Theory\s+' (min: 150.0 Mb, max: 400.0 Mb)
...

Configure default user/password of your mldonkey account (this has to be done only once):

$ python tvscrap.py set mldonkey.username "admin"
$ python tvscrap.py set mldonkey.password "pass"
$ python tvscrap.py set mldonkey.host "localhost"
$ python tvscrap.py set mldonkey.port "4000"

Fetch torrents from http://eztv.it and feed them to MLDonkey:

$ python tvscrap.py eztv
$ python tvscrap.py mldonkey

There is a analogous set of variables for transmission support (transmission.host, transmission.port, etc). The command to queue the torrents in transmission is:

$ python tvscrap.py transm

You will need to enable the web interface of Transmission, by default in port 9091.

Configure cron to check for new shows every 6 hours:

$ crontab -e

# And then add
12 */6 * * * python /path/to/tvscrap.py eztv_twitter; python /path/to/tvscrap.py transm

Or if you are using Windows and have a bittorrent client already configured you can use a Windows Scheduled Task that launchs:

tvscrap.py eztv_twitter
tvscrap.py windefault

Disclaimer

Works on my machine

About

Scrapper to feed TV torrents into transmission and other bittorrent clients

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.5%
  • Shell 0.5%