This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description
# parse-torrent-name ![Build status](https://travis-ci.org/divijbindlish/parse-torrent-name.svg?branch=master)

> Extract media information from torrent-like filename

![Python versions](https://img.shields.io/badge/Python-2.7%2C%203.3-brightgreen.svg?style=flat-square)

A python port of [Jānis](https://github.com/jzjzjzj)' awesome
[library](http s://github.com/jzjzjzj/parse-torrent-name) written in
javascript.

Extract all possible media information present in filenames. Multiple regex
rules are applied on filename string each of which extracts correponding
information from the filename. If a regex rule matches, the corresponding part
is removed from the filename. In the end, the remaining part is taken as the
title of the content.

## Why?

Online APIs by providers like
[TMDb](https://www.themoviedb.org/documentation/api)
[TVDb](http://thetvdb.com/wiki/index.php?title=Programmers_API) and
[OMDb](http://www.omdbapi.com/) don't react to well to search
queries which include any kind of extra information. To get proper results from
these APIs, only the title of the content should be provided as the search
query where this library comes into play. The accuracy of the results can be
improved by passing in the year which can also be extracted using this library.

## Usage

```py
import PTN

info = PTN.parse('A freakishly cool movie or TV episode')

print info # All details that were parsed
```

PTN works well for both movies and TV episodes. All meaningful information is
extracted and returned together in a dictionary. The text which could not be
parsed is returned in the `excess` field.

### Movies

```py
PTN.parse('San Andreas 2015 720p WEB-DL x264 AAC-JYK')
# {
# 'group': 'JYK',
# 'title': 'San Andreas',
# 'resolution': '720p',
# 'codec': 'x264',
# 'year': '2015',
# 'audio': 'AAC',
# 'quality': 'WEB-DL'
# }

PTN.parse('The Martian 2015 540p HDRip KORSUB x264 AAC2 0-FGT')
# {
# 'group': '0-FGT',
# 'title': 'The Martian',
# 'resolution': '540p',
# 'excess': ['KORSUB', '2'],
# 'codec': 'x264',
# 'year': 2015,
# 'audio': 'AAC',
# 'quality': 'HDRip'
# }
```

### TV episodes

```py
PTN.parse('Mr Robot S01E05 HDTV x264-KILLERS[ettv]')
# {
# 'episode': 5,
# 'season': 1,
# 'title': 'Mr Robot',
# 'codec': 'x264',
# 'group': 'KILLERS[ettv]'
# 'quality': 'HDTV'
# }

PTN.parse('friends.s02e01.720p.bluray-sujaidr')
# {
# 'episode': 1,
# 'season': 2,
# 'title': 'friends',
# 'resolution': '720p',
# 'group': 'sujaidr',
# 'quality': 'bluray'
# }
```

### Note

PTN does not gaurantee the fields `group`, `excess` and `episodeName` as these
fields might be interchanged with each other. This shoudn't affect most
applications since episode name can be fetched from an online database
after getting the season and episode number correctly.

### Parts extracted

* audio
* codec
* container
* episode
* episodeName
* excess
* extended
* garbage
* group
* hardcoded
* language
* proper
* quality
* region
* repack
* resolution
* season
* title
* website
* widescreen
* year

## Install

### Automatic

PTN can be installed automatically using `easy_install` or `pip`.

```sh
$ easy_install parse-torrent-name
```

OR

```sh
$ pip install parse-torrent-name
```

Note that these commands might require `sudo` permission depending on whether
a virtual environment is used or not.

### Manual

First clone the repository.

```sh
$ git clone https://github.com/divijbindlish/parse-torrent-name PTN && cd PTN
```

And run the command for installing the package.

```sh
$ python setup.py install
```

## Contributing

Take a look at the open
[issues](https://github.com/jzjzjzj/parse-torrent-name/issues) on the original
project and submit a PR!

## License

MIT © [Divij Bindlish](http://divijbindlish.in)
Release History

Release History

1.1.1

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

0.1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
parse-torrent-name-1.1.1.tar.gz (9.0 kB) Copy SHA256 Checksum SHA256 Source Sep 3, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS HPE HPE Development Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting