Compare commits

..

124 Commits

Author SHA1 Message Date
Diaoul e0788be5af Release 1.0.1 2015-07-23 00:44:56 +02:00
Diaoul 52709a3e25 Remove useless dash in cli message 2015-07-23 00:35:05 +02:00
Diaoul 25cf0ac996 Fix scaled score in cli 2015-07-23 00:33:58 +02:00
Diaoul 4c3d7d5b9d Improve CLI
- Convert paths to str
- Add logs
- Catch errors
- Colored output report
2015-07-23 00:11:29 +02:00
Diaoul b4cbfc0de2 Add CLI api doc 2015-07-23 00:05:47 +02:00
Diaoul 600393c12a Fix scan_videos docstring 2015-07-22 19:43:34 +02:00
Diaoul faeeeca39a Switch to dev version 2015-07-22 19:43:07 +02:00
Diaoul 537d33b66a Release 1.0 2015-07-22 01:45:23 +02:00
Diaoul 3933db4936 Add wheel dev dependency 2015-07-22 01:45:12 +02:00
Diaoul 86c6d2c253 Add minimum required version for dependencies 2015-07-21 23:54:00 +02:00
Diaoul 75ffe3767f Skip doctests for python 2 2015-07-21 21:31:10 +02:00
Diaoul 015b7547db Use a session fixture to configure cache region 2015-07-21 21:30:48 +02:00
Diaoul 2a6d861968 Check for files in mkv fixture 2015-07-21 21:29:58 +02:00
Diaoul 0f188e30b0 Update badges and urls 2015-07-21 21:22:52 +02:00
Diaoul 5faf8277f1 Remove pip logs from travis cache 2015-07-21 02:20:31 +02:00
Diaoul b86b4f1405 Add mkv test data to travis cache 2015-07-21 02:09:30 +02:00
Diaoul 98f903174a Merge branch 'master' of github.com:Diaoul/subliminal 2015-07-21 01:56:52 +02:00
Diaoul d8df8a4624 Fix region configuration in tests 2015-07-21 01:56:40 +02:00
Diaoul 0df19e300f Remove --doctest-modules 2015-07-21 01:56:31 +02:00
Antoine Bertin b26bf1c470 Add License badge to README 2015-07-20 23:16:32 +02:00
Diaoul 53cd3f6118 Update documentation and add doctests 2015-07-20 23:00:55 +02:00
Diaoul c23f955b6c Merge branch 'master' of github.com:Diaoul/subliminal 2015-07-20 22:59:04 +02:00
Diaoul 5c5b2656ec Add possible values for min-score in cli help 2015-07-20 22:58:56 +02:00
Diaoul c6278909ff Remove redundant documentation 2015-07-20 22:54:09 +02:00
Diaoul 64d599d6f7 Add compute_score to subliminal namespace 2015-07-20 22:53:40 +02:00
Diaoul 90d638e9c6 Replace DispatchExtensionManager with EnabledExtensionManager 2015-07-20 22:53:13 +02:00
Antoine Bertin 1dabbf78b2 Simplify example in README 2015-07-16 16:18:10 +02:00
Antoine Bertin 58b0b0c756 Improve README readability 2015-07-16 16:13:49 +02:00
Antoine Bertin 1426d9d62d Add more verbosity for travis 2015-07-16 15:58:56 +02:00
Antoine Bertin 85db6c7884 Merge pull request #463 from martinp/python2-fix
Fix for Python 2
2015-07-16 15:30:26 +02:00
Martin Polden 43d02c349f Fix for Python 2
Python 2 doesn't have the exist_ok parameter.
2015-07-16 13:26:55 +02:00
Diaoul c7af4573ca Add cache and sudo directives to travis 2015-07-16 01:41:45 +02:00
Diaoul 73a217eb1b Fix travis build 2015-07-16 01:14:33 +02:00
Diaoul b1854222a0 Merge branch 'master' of github.com:Diaoul/subliminal 2015-07-16 01:05:09 +02:00
Diaoul 7cb72b2bb2 Update to 1.0.dev0 2015-07-16 01:01:38 +02:00
Antoine Bertin 00245dd44d Merge pull request #451 from h3llrais3r/fix_podnapisi_provider
Fix podnapisi provider
2015-05-09 19:22:30 +02:00
h3llrais3r c1972ab26f Fix podnapisi provider
The download url is not longer a link on the page, but it's the
subtitle.page_link appended with '/download'.
2015-05-09 17:59:40 +02:00
Antoine Bertin b86254b0b8 Merge pull request #426 from oxan/addic7ed-codec
Also guess video codec from version in addic7ed provider
2015-01-31 17:51:59 +01:00
Oxan van Leeuwen 00157ee655 Also guess video codec from version in addic7ed provider 2014-12-27 21:17:22 +01:00
Antoine Bertin 6aaece1c44 Merge pull request #403 from h3llrais3r/opensubtitles-query-search
Implemented query search for opensubtitles
2014-09-17 20:27:45 +02:00
h3llrais3r 6445064836 Implemented query search for opensubtitles
Opensubtitles was only using the hash search functionality. For series,
it will now search on series name, season and episode.
2014-09-17 10:17:45 +02:00
Antoine Bertin 9d0c9d93a0 Merge pull request #396 from joseflavio/master
Adding support to proper decode Polish and Bulgarian
2014-08-17 20:09:31 +02:00
Jose Flavio Aguilar 01a06166ff Adding support to proper decode Polish and Bulgarian 2014-08-17 18:49:19 +02:00
Antoine Bertin f41fc2bceb Merge pull request #377 from goll/master
Update for python-guessit 0.7.1
2014-05-07 18:24:10 +02:00
Adrian Goll 5ffa344f1c Update for python-guessit 0.7.1
Latest guessit doesn't require 'autodetect' anymore. Here is a snippet from the usage:

-t TYPE, --type=TYPE  the suggested file type: movie, episode. If undefined, type will be guessed.
2014-05-07 14:18:14 +02:00
Antoine Bertin 31c2b21350 Merge pull request #362 from northerndrifter/p1
Fix hearing impaired flag for podnapisi
2014-03-26 10:36:13 +01:00
northerndrifter b2c6562c64 fixed hearing impaired flag for podnapisi 2014-03-25 21:01:13 +01:00
Antoine Bertin 02a36d9cad Merge pull request #336 from Nikoli/master
Use pysrt 1.0.1: first version migrated from charade to chardet
2014-02-17 10:32:05 +01:00
Nikoli 5dcb1916b2 Use pysrt 1.0.1: first version migrated from charade to chardet 2014-02-14 04:41:09 +04:00
Antoine Bertin c5623ec868 Merge pull request #327 from queeup/master
Fix wrong Turkish subtitle encoding detection #315
2014-02-12 14:58:07 +01:00
queeup 1c17c1987f Fix wrong Turkish subtitle encoding detection #315
Because of chardet Turkish encoding detect issue subliminal can't
recognize Turkish encoding and convert correctly to utf-8 #315
2014-02-12 01:28:57 +02:00
Antoine Bertin b6318bfae0 Update docs and HISTORY 2014-02-11 23:23:00 +01:00
Antoine Bertin 0e8489951d Use bytes for subtitle's content and refactor subtitle validation 2014-02-11 23:22:47 +01:00
Antoine Bertin 21d3a1c1bb Merge pull request #331 from h3llrais3r/master
Add a format to Video and use it for matching
2014-02-09 13:44:36 +01:00
h3llrais3r 9055021282 Added format to hash equation 2014-02-08 23:41:12 +01:00
h3llrais3r 10fcfd21b1 Ignore Pycharm ide files 2014-02-08 22:37:22 +01:00
h3llrais3r c142233ff9 Upgraded guessit to version 0.7 2014-02-08 20:28:30 +01:00
h3llrais3r e660e47265 Fixed unit tests related to format matching (2) 2014-02-07 23:22:36 +01:00
h3llrais3r 40c4c0aeec Fixed unit tests related to format matching 2014-02-07 22:36:44 +01:00
h3llrais3r 97c9a7b025 Updated methods for guess properties 2014-02-07 22:34:18 +01:00
h3llrais3r 9145f2530b Added format for matching on movie 2014-02-07 22:33:37 +01:00
h3llrais3r a1b073e5d6 Fixed guess properties for tvsubtitles 2014-02-07 22:32:03 +01:00
h3llrais3r 7425153760 Use guessit method for partial filenames
Use the correct guessit method when we don't have the complete filename.
We don't fake an episode filename anymore.
2014-02-05 22:37:07 +01:00
h3llrais3r c0836a94a9 Use guessit for matching 2014-01-30 23:11:29 +01:00
h3llrais3r 9dc24951a2 Use format for matching 2014-01-30 21:32:55 +01:00
Antoine Bertin f3eaad8d1c Close xmlrpc in terminate in opensubtitles 2014-01-29 00:17:22 +01:00
Antoine Bertin effde5014e Use little-endian for OpenSubtitles hash 2014-01-28 23:43:35 +01:00
Antoine Bertin 74c4c06a5c Fix cli with new ProviderManager 2014-01-28 21:52:11 +01:00
Antoine Bertin f10b7683c9 Rework provider loading and management
- Rename ProviderManager to ProviderPool
- Add a ProviderManager to manage the entry point
2014-01-27 22:17:00 +01:00
Antoine Bertin 5e26185c9f Fixes for babelfish 0.5.1 2014-01-27 20:58:31 +01:00
Antoine Bertin 2d350f5340 Merge branch 'master' of github.com:Diaoul/subliminal 2014-01-26 14:29:32 +01:00
Antoine Bertin f0519bbefb Update for babelfish 0.5.1 2014-01-26 14:29:20 +01:00
Antoine Bertin 7acfb3f027 More python3 compatibility 2014-01-26 14:27:54 +01:00
Antoine Bertin 24621e15e3 Merge pull request #317 from doron1/patch-1
Update subtitle.py
2014-01-21 13:45:34 -08:00
doron1 3474b2363f Update subtitle.py 2014-01-21 20:45:44 +02:00
Antoine Bertin 560dea3e3e More python3 compatibility 2014-01-19 18:48:50 +01:00
Antoine Bertin f6e5cf91ab Use pysrt 1.0.0 2014-01-19 14:55:19 +01:00
Antoine Bertin 57e8770fda Update HISTORY 2014-01-19 14:45:49 +01:00
Antoine Bertin 7e8f7e41b5 Update unittests 2014-01-19 14:36:37 +01:00
Antoine Bertin 84d890d7b0 Refactor exceptions, add a TimeoutTransport and fix line endings 2014-01-19 14:36:26 +01:00
Antoine Bertin e57c90b97e Respect xdg for cache file 2014-01-19 09:46:00 +01:00
Antoine Bertin 236c43b807 Improve version numbering in documentation 2013-12-13 14:29:58 +01:00
Antoine Bertin bb32c286d9 Fix podnapisi provider 2013-12-12 23:42:37 +01:00
Antoine Bertin f1d4975079 Fix a typo in documentation examples 2013-12-12 22:11:27 +01:00
Antoine Bertin 464b783477 Fix release detection in podnapisi 2013-12-05 20:23:41 +01:00
Antoine Bertin c4756030c7 Fix subtitle re download with single 2013-12-05 20:20:23 +01:00
Antoine Bertin bf538fee32 Add support for directory and encoding in cli 2013-12-03 21:41:20 +01:00
Antoine Bertin cc32c29930 Use debug level for language parsing error in subtitle track name 2013-12-03 21:41:04 +01:00
Antoine Bertin 27b8703949 Add asctime to log file in cli 2013-12-03 21:40:21 +01:00
Antoine Bertin 0d9bbff534 Rename folder_path to directory and add encoding in save_subtitles 2013-12-03 21:39:37 +01:00
Antoine Bertin cad60e73a6 Fix single subtitles saving in cli 2013-12-03 20:36:01 +01:00
Antoine Bertin 1d14d21684 Update addic7ed unittests 2013-12-02 21:10:56 +01:00
Antoine Bertin 0733ef7d32 Fix podnapisi download 2013-12-02 20:29:45 +01:00
Antoine Bertin 143f872166 Remove debug print statement in decode 2013-12-02 20:29:30 +01:00
Antoine Bertin 95abab3c18 Catch more video age detection errors 2013-12-02 20:23:31 +01:00
Antoine Bertin 2e5fb46ebc Fix example in documentation 2013-12-02 00:27:59 +01:00
Antoine Bertin 0d11092178 Improve encoding detection 2013-12-01 22:00:31 +01:00
Antoine Bertin 80589f325a Use lowercase comments 2013-12-01 21:57:02 +01:00
Antoine Bertin 0b6b3d0905 Fix relative links in addic7ed and tvsubtitles for page_link 2013-12-01 18:16:14 +01:00
Antoine Bertin bc97f772b8 Remove bierdopje from the docs 2013-12-01 18:15:30 +01:00
Antoine Bertin efe944a10c Remove extra end of line character in cli 2013-12-01 10:17:57 +01:00
Antoine Bertin 9d9aed2d4b Add a page_link attribute to Subtitle 2013-11-30 23:42:21 +01:00
Antoine Bertin 9cd8b7d593 Use print statement to write to stderr 2013-11-30 23:41:24 +01:00
Antoine Bertin abfd2361d4 Use Video.fromname in cli 2013-11-30 23:41:07 +01:00
Antoine Bertin b10e616ec2 Add traceback to enzyme parsing error log 2013-11-28 21:26:22 +01:00
Antoine Bertin 7dc2a90edc Catch video age detection errors 2013-11-28 21:22:54 +01:00
Antoine Bertin cb53199748 Update cli documentation 2013-11-28 20:48:49 +01:00
Antoine Bertin 7b2402c436 More explicit log messages in api 2013-11-28 20:21:37 +01:00
Antoine Bertin 0715437888 Add support for file logging in cli 2013-11-28 20:21:21 +01:00
Antoine Bertin bea95113e7 Update HISTORY 2013-11-28 00:47:57 +01:00
Antoine Bertin e73e969f58 Remove dead BierDopje provider 2013-11-28 00:47:47 +01:00
Antoine Bertin fd30cf7388 Add year in episode
Used to make a difference between two series with the same name
2013-11-28 00:46:37 +01:00
Antoine Bertin fa9792b280 Fix missing return statement for Video.fromname 2013-11-27 23:33:37 +01:00
Antoine Bertin e93530c7c7 Add a maximum expiration time to cached functions 2013-11-25 23:25:31 +01:00
Antoine Bertin 35d4c37d61 Update to new API
- Add some provider utilities
- Add a ProviderManager class to manage multiple providers
- Add a content attribute to the Subtitle class
- Dissociate download and save functions to give more control to the
user
- Add a fromname classmethod to Video, Episode and Movie classes
- Update unittests
- Update documentation
2013-11-25 22:26:11 +01:00
Antoine Bertin 4d61d3fc42 Switch to 0.8.0 2013-11-22 23:44:02 +01:00
Antoine Bertin a24388137e Remove sphinxcontrib-programoutput 2013-11-22 23:38:17 +01:00
Antoine Bertin 60c7666610 Update badges in README 2013-11-22 21:38:12 +01:00
Antoine Bertin e11f1c4b28 Fix unittests for addic7ed 2013-11-22 21:31:12 +01:00
Antoine Bertin e1b32f237c Merge branch 'develop' 2013-11-22 21:06:04 +01:00
Antoine Bertin 60610e2032 Merge branch 'develop'
Conflicts:
	requirements.txt
	setup.py
	subliminal/infos.py
2013-10-29 12:43:20 +01:00
Antoine Bertin 277b046b41 Fix requirements for enzyme 0.3 2013-05-19 15:44:49 +02:00
Antoine Bertin c823eda245 Update NEWS 2013-01-17 21:09:28 +01:00
Antoine Bertin 6340de0ddb Fix requirements due to requests 1.0 2013-01-17 20:49:41 +01:00
125 changed files with 210543 additions and 2441 deletions
+4 -1
View File
@@ -1,5 +1,8 @@
[report]
exclude_lines =
def __repr__
pragma: no cover
raise NotImplementedError
def __repr__
if __name__ == .__main__.:
omit =
subliminal/cli.py
+48 -27
View File
@@ -1,43 +1,64 @@
*.py[co]
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# Packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
# C extensions
*.so
# Distribution / packaging
.Python
env/
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
*.egg-info/
.installed.cfg
*.egg
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.tox
.coverage.*
.cache
nosetests.xml
coverage.xml
*,cover
# Translations
*.mo
*.pot
# Mr Developer
.mr.developer.cfg
# Django stuff:
*.log
# Pydev
.project
.pydevproject
.settings
# Sphinx documentation
docs/_build/
# Rope
.ropeproject
# PyBuilder
target/
# Sphinx
docs/_build
# Pycharm
.idea
# Subliminal unittests
subliminal/tests/*.srt
subliminal/tests/*_files
subliminal/tests/*_cache
# Subliminal
tests/data/mkv/
-3
View File
@@ -1,3 +0,0 @@
[submodule "docs/_themes"]
path = docs/_themes
url = git://github.com/Diaoul/diaoul-sphinx-themes.git
+22 -17
View File
@@ -1,24 +1,29 @@
sudo: false
language: python
python:
- "2.7"
- 2.7
- 3.3
- 3.4
env:
- PARSER=native
- PARSER=lxml
cache:
directories:
- $HOME/.cache/pip
- tests/data/mkv
before_cache:
- rm -f $HOME/.cache/pip/log/debug.log
install:
- pip install coveralls --use-mirrors
- pip install -r requirements.txt --use-mirrors
- pip install -e .[test]
- if [ $PARSER = "lxml" ]; then pip install lxml; fi
- pip install coveralls
script:
- coverage run --source=subliminal setup.py test
script: python setup.py test -a "--cov subliminal --verbose"
after_success:
- coveralls
notifications:
email: false
irc:
channels:
- "irc.freenode.org#subliminal"
on_success: change
on_failure: always
use_notice: true
skip_join: true
after_success: coveralls
+76 -15
View File
@@ -1,8 +1,46 @@
Changelog
=========
---------
1.0.1
^^^^^
**release date:** 2015-07-23
* Fix unicode issues in CLI (python 2 only)
* Fix score scaling in CLI (python 2 only)
* Improve error handling in CLI
* Color collect report in CLI
1.0
^^^
**release date:** 2015-07-22
* Many changes and fixes
* New test suite
* New documentation
* New CLI
0.7.5
^^^^^
**release date:** 2015-03-04
* Update requirements
* Remove BierDopje provider
* Add pre-guessed video optional argument in scan_video
* Improve hearing impaired support
* Fix TVSubtitles and Podnapisi providers
0.7.4
^^^^^
**release date:** 2014-01-27
* Fix requirements for guessit and babelfish
0.7.3
-----
^^^^^
**release date:** 2013-11-22
* Fix windows compatibility
@@ -12,7 +50,7 @@ Changelog
0.7.2
-----
^^^^^
**release date:** 2013-11-10
* Fix TVSubtitles for ambiguous series
@@ -25,7 +63,7 @@ Changelog
0.7.1
-----
^^^^^
**release date:** 2013-11-06
* Improve CLI
@@ -35,7 +73,7 @@ Changelog
0.7.0
-----
^^^^^
**release date:** 2013-10-29
**WARNING:** Complete rewrite of subliminal with backward incompatible changes
@@ -52,8 +90,23 @@ Changelog
* Drop a few providers
* And much more...
0.6.4
^^^^^
**release date:** 2013-05-19
* Fix requirements due to enzyme 0.3
0.6.3
^^^^^
**release date:** 2013-01-17
* Fix requirements due to requests 1.0
0.6.2
-----
^^^^^
**release date:** 2012-09-15
* Fix BierDopje
@@ -64,8 +117,9 @@ Changelog
* Add possible services in help message of the CLI
* Allow existing filenames to be passed without the ./ prefix
0.6.1
-----
^^^^^
**release date:** 2012-06-24
* Fix subtitle release name in BierDopje
@@ -82,9 +136,11 @@ Changelog
* Fix guessit.Language in Video.scan
* Fix language detection of subtitles
0.6.0
-----
^^^^^
**release date:** 2012-06-16
**WARNING:** Backward incompatible changes
* Fix --workers option in CLI
@@ -98,13 +154,14 @@ Changelog
0.5.1
-----
^^^^^
**release date:** 2012-03-25
* Improve error handling of enzyme parsing
0.5
---
^^^
**release date:** 2012-03-25
**WARNING:** Backward incompatible changes
@@ -117,15 +174,17 @@ Changelog
* Remove class Subliminal
* Remove permissions handling
0.4
---
^^^
**release date:** 2011-11-11
* Many fixes
* Better error handling
0.3
---
^^^
**release date:** 2011-08-18
* Fix a bug when series is not guessed by guessit
@@ -135,16 +194,18 @@ Changelog
* Add possibility to choose mode of created files
* Add more checks before adjusting permissions
0.2
---
^^^
**release date:** 2011-07-11
* Fix plugin configuration
* Fix some encoding issues
* Remove extra logging
0.1
---
**release date:** not released yet
^^^
**release date:** *private release*
* Initial release
+1 -1
View File
@@ -1,6 +1,6 @@
The MIT License (MIT)
Copyright (c) 2013 Antoine Bertin
Copyright (c) 2015 Antoine Bertin
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
+42 -36
View File
@@ -1,57 +1,63 @@
Subliminal
==========
Subtitles, faster than your thoughts.
Subliminal is a python library to search and download subtitles.
It comes with an easy to use CLI (command-line interface) suitable for direct use or cron jobs.
.. image:: https://img.shields.io/pypi/v/subliminal.svg
:target: https://pypi.python.org/pypi/subliminal
:alt: Latest Version
.. image:: https://travis-ci.org/Diaoul/subliminal.png?branch=develop
:target: https://travis-ci.org/Diaoul/subliminal
.. image:: https://travis-ci.org/Diaoul/subliminal.svg?branch=master
:target: https://travis-ci.org/Diaoul/subliminal
:alt: Travis CI build status
.. image:: https://coveralls.io/repos/Diaoul/subliminal/badge.png?branch=develop
:target: https://coveralls.io/r/Diaoul/subliminal?branch=develop
.. image:: https://readthedocs.org/projects/subliminal/badge/?version=latest
:target: https://subliminal.readthedocs.org/
:alt: Documentation Status
.. image:: https://coveralls.io/repos/Diaoul/subliminal/badge.svg?branch=master&service=github
:target: https://coveralls.io/github/Diaoul/subliminal?branch=master
:alt: Code coverage
.. image:: https://img.shields.io/github/license/Diaoul/subliminal.svg
:target: https://github.com/Diaoul/subliminal/blob/master/LICENSE
:alt: License
Providers
---------
Subliminal uses multiple providers to give users a vast choice and have a better chance to find the
best matching subtitles. Providers are extensible through a dedicated entry point.
* Addic7ed
* BierDopje
* OpenSubtitles
* Podnapisi
* TheSubDB
* TvSubtitles
:Project page: https://github.com/Diaoul/subliminal
:Documentation: https://subliminal.readthedocs.org/
Usage
-----
CLI
^^^
Download english subtitles::
Download English subtitles::
$ subliminal -l en -- The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
1 subtitle downloaded
$ subliminal download -l en The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
Collecting videos [####################################] 100%
1 video collected / 0 video ignored / 0 error
Downloading subtitles [####################################] 100%
Downloaded 1 subtitle
Library
^^^^^^^
Download best subtitles in French and English for videos less than one week old in a video folder,
skipping videos that already have subtitles whether they are embedded or not::
Download best subtitles in French and English for videos less than two weeks old in a video folder:
.. code:: python
from babelfish import Language
from datetime import timedelta
import subliminal
from babelfish import Language
from subliminal import download_best_subtitles, region, save_subtitles, scan_videos
# configure the cache
subliminal.cache_region.configure('dogpile.cache.dbm', arguments={'filename': '/path/to/cachefile.dbm'})
# scan for videos in the folder and their subtitles
videos = subliminal.scan_videos(['/path/to/video/folder'], subtitles=True, embedded_subtitles=True, age=timedelta(weeks=1))
# download
subliminal.download_best_subtitles(videos, {Language('eng'), Language('fra')}, age=timedelta(week=1))
License
-------
MIT
region.configure('dogpile.cache.dbm', arguments={'filename': 'cachefile.dbm'})
# scan for videos newer than 2 weeks and their existing subtitles in a folder
videos = [v for v in scan_videos('/video/folder') if v.age < timedelta(weeks=2)]
# download best subtitles
subtitles = download_best_subtitles(videos, {Language('eng'), Language('fra')})
# save them to disk, next to the video
save_subtitles(subtitles)
-5
View File
@@ -1,5 +0,0 @@
sympy>=0.7.3
sphinx>=1.1.3
sphinxcontrib-programoutput>=0.8
Sphinx-PyPI-upload>=0.2.1
setuptools>=1.4
+17 -2
View File
@@ -2,7 +2,7 @@
#
# You can set these variables from the command line.
SPHINXOPTS =
SPHINXOPTS = -n -W
SPHINXBUILD = sphinx-build
PAPER =
BUILDDIR = _build
@@ -19,7 +19,7 @@ ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
# the i18n builder cannot share the environment and doctrees with the others
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
help:
@echo "Please use \`make <target>' where <target> is one of"
@@ -30,6 +30,7 @@ help:
@echo " json to make JSON files"
@echo " htmlhelp to make HTML files and a HTML help project"
@echo " qthelp to make HTML files and a qthelp project"
@echo " applehelp to make an Apple Help Book"
@echo " devhelp to make HTML files and a Devhelp project"
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@@ -45,6 +46,7 @@ help:
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
@echo " linkcheck to check all external links for integrity"
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
@echo " coverage to run coverage check of the documentation (if enabled)"
clean:
rm -rf $(BUILDDIR)/*
@@ -89,6 +91,14 @@ qthelp:
@echo "To view the help file:"
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/subliminal.qhc"
applehelp:
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
@echo
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
@echo "N.B. You won't be able to view it unless you put it in" \
"~/Library/Documentation/Help or install it in your application" \
"bundle."
devhelp:
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
@echo
@@ -166,6 +176,11 @@ doctest:
@echo "Testing of doctests in the sources finished, look at the " \
"results in $(BUILDDIR)/doctest/output.txt."
coverage:
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
@echo "Testing of coverage in the sources finished, look at the " \
"results in $(BUILDDIR)/coverage/python.txt."
xml:
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
@echo
-4
View File
@@ -1,4 +0,0 @@
<h3>Subliminal</h3>
<p>
Subliminal is a Python library to search and download subtitles.
</p>
Submodule docs/_themes deleted from 24aa9748e4
+4 -5
View File
@@ -1,8 +1,7 @@
API
===
.. module:: subliminal.api
.. automodule:: subliminal.api
.. autodata:: PROVIDERS_ENTRY_POINT
.. autofunction:: list_subtitles
.. autofunction:: download_subtitles
.. autofunction:: download_best_subtitles
.. data:: provider_manager
:class:`~stevedore.extension.ExtensionManager` based on the entry point ``subliminal.providers``
+13 -3
View File
@@ -3,9 +3,19 @@ Cache
.. module:: subliminal.cache
.. autodata:: CACHE_VERSION
.. autofunction:: subliminal_key_generator
:annotation:
.. autodata:: SHOW_EXPIRATION_TIME
:annotation:
.. autodata:: EPISODE_EXPIRATION_TIME
:annotation:
.. data:: region
:annotation:
The dogpile.cache region
The :class:`~dogpile.cache.region.CacheRegion`
Refer to `dogpile.cache's documentation <http://dogpilecache.readthedocs.org>`_ to see how to configure the region
Refer to dogpile.cache's `region configuration documentation
<http://dogpilecache.readthedocs.org/en/latest/usage.html#region-configuration>`_ to see how to configure the region
+1 -5
View File
@@ -1,7 +1,3 @@
CLI
===
.. module:: subliminal.cli
subliminal
----------
.. program-output:: subliminal --help
.. automodule:: subliminal.cli
+1 -7
View File
@@ -1,9 +1,3 @@
Exceptions
==========
.. module:: subliminal.exceptions
.. autoclass:: Error
.. autoclass:: ProviderError
.. autoclass:: ProviderConfigurationError
.. autoclass:: ProviderNotAvailable
.. autoclass:: InvalidSubtitle
.. automodule:: subliminal.exceptions
+1 -4
View File
@@ -1,6 +1,3 @@
Providers
=========
.. module:: subliminal.providers
.. autoclass:: Provider
:members:
.. automodule:: subliminal.providers
+1 -4
View File
@@ -1,6 +1,3 @@
Score
=====
.. module:: subliminal.score
.. autofunction:: get_episode_equations
.. autofunction:: get_movie_equations
.. automodule:: subliminal.score
+1 -7
View File
@@ -1,9 +1,3 @@
Subtitle
========
.. module:: subliminal.subtitle
.. autoclass:: Subtitle
:members:
.. autofunction:: get_subtitle_path
.. autofunction:: is_valid_subtitle
.. autofunction:: compute_guess_matches
.. automodule:: subliminal.subtitle
+7 -14
View File
@@ -1,17 +1,10 @@
Video
=====
.. module:: subliminal.video
.. automodule:: subliminal.video
:exclude-members: VIDEO_EXTENSIONS, SUBTITLE_EXTENSIONS
.. autodata:: VIDEO_EXTENSIONS
.. autodata:: SUBTITLE_EXTENSIONS
.. autoclass:: Video
:members:
.. autoclass:: Episode
:members:
.. autoclass:: Movie
:members:
.. autofunction:: hash_opensubtitles
.. autofunction:: hash_thesubdb
.. autofunction:: scan_subtitle_languages
.. autofunction:: scan_video
.. autofunction:: scan_videos
.. autodata:: VIDEO_EXTENSIONS
:annotation:
.. autodata:: SUBTITLE_EXTENSIONS
:annotation:
+280
View File
@@ -0,0 +1,280 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/1.0]
method: GET
uri: http://podnapisi.net/subtitles/search/old?sXML=1&sTS=5&sTE=18&sK=The+Big+Bang+Theory&sL=hu
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
Location: ['http://www.podnapisi.net/subtitles/search/old?sXML=1&sTS=5&sTE=18&sK=The+Big+Bang+Theory&sL=hu']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/1.0]
method: GET
uri: http://www.podnapisi.net/subtitles/search/old?sXML=1&sTS=5&sTE=18&sK=The+Big+Bang+Theory&sL=hu
response:
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>2</results></pagination><subtitle><id>1495142</id><pid>ZtAW</pid><title>The
Big Bang Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/hu-the-big-bang-theory-2007-S05E18/ZtAW</url><uploaderId>40156</uploaderId><uploaderName>kvrle</uploaderName><release>The.Big.Bang.Theory.S05E18.HDTV-LOL
The.Big.Bang.Theory.S05E18.720p.HDTV.x264-DIMENSION</release><languageId>15</languageId><languageName>Hungarian</languageName><language>hu</language><time>1330213369</time><tvSeason>5</tvSeason><tvEpisode>18</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>497</downloads><exactHashes
/></subtitle><subtitle><id>1495096</id><pid>ONAW</pid><title>The Big Bang
Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/hu-the-big-bang-theory-2007-S05E18/ONAW</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>The.Big.Bang.Theory.S05E18.HDTV.XviD-FQM</release><languageId>15</languageId><languageName>Hungarian</languageName><language>hu</language><time>1330134575</time><tvSeason>5</tvSeason><tvEpisode>18</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>347</downloads><exactHashes /></subtitle></results>"}
headers:
Connection: [keep-alive]
Content-Length: ['2792']
Content-Type: [text/xml;charset=utf-8]
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
- request:
body: null
headers:
User-Agent: [Subliminal/1.0]
method: GET
uri: http://podnapisi.net/subtitles/ZtAW/download?container=zip
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
Location: ['http://www.podnapisi.net/subtitles/ZtAW/download?container=zip']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/1.0]
method: GET
uri: http://www.podnapisi.net/subtitles/ZtAW/download?container=zip
response:
body:
string: !!binary |
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
headers:
Accept-Ranges: [bytes]
Connection: [keep-alive]
Content-Disposition: [attachment; filename="e638ea178f406cb584f48051501e2cb4db4fce1d.zip"]
Content-Length: ['10541']
Content-Type: [application/octet-stream]
Date: ['Mon, 20 Jul 2015 06:11:37 GMT']
ETag: ['"4f497ffb-292d"']
Last-Modified: ['Sun, 26 Feb 2012 00:42:35 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
version: 1
+91 -44
View File
@@ -1,9 +1,11 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#
# subliminal documentation build configuration file, created by
# sphinx-quickstart on Wed Oct 23 23:24:28 2013.
# sphinx-quickstart on Sat Jul 11 00:40:28 2015.
#
# This file is execfile()d with the current directory set to its containing dir.
# This file is execfile()d with the current directory set to its
# containing dir.
#
# Note that not all possible configuration values are present in this
# autogenerated file.
@@ -11,28 +13,38 @@
# All configuration values have a default; values that are commented out
# serve to show the default.
import sys, os
from __future__ import unicode_literals
import sys
import os
import shlex
import sphinx_rtd_theme
# If extensions (or modules to document with autodoc) are in another directory,
# add these directories to sys.path here. If the directory is relative to the
# documentation root, use os.path.abspath to make it absolute, like shown here.
sys.path.insert(0, os.path.abspath('..'))
sys.path.append(os.path.abspath('_themes'))
import subliminal
# -- General configuration -----------------------------------------------------
# -- General configuration ------------------------------------------------
# If your documentation needs a minimal Sphinx version, state it here.
#needs_sphinx = '1.0'
# Add any Sphinx extension module names here, as strings. They can be extensions
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
extensions = ['sphinx.ext.autodoc', 'sphinxcontrib.programoutput']
# Add any Sphinx extension module names here, as strings. They can be
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
# ones.
extensions = [
'sphinx.ext.autodoc',
'sphinx.ext.intersphinx',
'sphinx.ext.viewcode',
]
# Add any paths that contain templates here, relative to this directory.
templates_path = ['_templates']
# The suffix of source filenames.
# The suffix(es) of source filenames.
# You can specify multiple suffix as a list of string:
# source_suffix = ['.rst', '.md']
source_suffix = '.rst'
# The encoding of source files.
@@ -44,19 +56,23 @@ master_doc = 'index'
# General information about the project.
project = subliminal.__title__
copyright = ' '.join(subliminal.__copyright__.split()[1:])
author = subliminal.__copyright__.split(', ')[1]
# The version info for the project you're documenting, acts as replacement for
# |version| and |release|, also used in various other places throughout the
# built documents.
#
# The short X.Y version.
version = subliminal.__version__
version = subliminal.__version__.split('-')[0]
# The full version, including alpha/beta/rc tags.
release = subliminal.__version__
# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
#language = None
#
# This is also used if you do content translation via gettext catalogs.
# Usually you set "language" from the command line for these cases.
language = None
# There are two options for replacing |today|: either, you set today to some
# non-false value, then it is used:
@@ -68,7 +84,8 @@ release = subliminal.__version__
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
# The reST default role (used for this markup: `text`) to use for all documents.
# The reST default role (used for this markup: `text`) to use for all
# documents.
#default_role = None
# If true, '()' will be appended to :func: etc. cross-reference text.
@@ -91,29 +108,29 @@ pygments_style = 'sphinx'
# If true, keep warnings as "system message" paragraphs in the built documents.
#keep_warnings = False
# If true, `todo` and `todoList` produce output, else they produce nothing.
todo_include_todos = False
# -- Options for HTML output ---------------------------------------------------
# -- Options for HTML output ----------------------------------------------
# The theme to use for HTML and HTML Help pages. See the documentation for
# a list of builtin themes.
html_theme = 'diaoul'
html_theme = 'sphinx_rtd_theme'
# Theme options are theme-specific and customize the look and feel of a theme
# further. For a list of options available for each theme, see the
# documentation.
html_theme_options = {'github_user': 'Diaoul',
'github_repo': 'subliminal',
'github_branch': 'master',
'fork_me': 1,
'flattr': 0,
'gittip': 'Diaoul',
'pypi_downloads': 1,
'pypi_version': 0,
'travis': 0,
'coveralls': 0}
#html_theme_options = {}
# html_theme_options = {
# 'github_user': 'Diaoul',
# 'github_repo': project,
# 'travis_button': True,
# 'gratipay_user': 'Diaoul'
# }
# Add any paths that contain custom themes here, relative to this directory.
html_theme_path = ['_themes']
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
# The name for this set of Sphinx documents. If None, it defaults to
# "<project> v<release> documentation".
@@ -136,6 +153,11 @@ html_theme_path = ['_themes']
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ['_static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.
#html_last_updated_fmt = '%b %d, %Y'
@@ -145,12 +167,7 @@ html_static_path = ['_static']
#html_use_smartypants = True
# Custom sidebar templates, maps document names to template names.
html_sidebars = {
'index': ['sidebar-intro.html', 'sidebar-star.html', 'sidebar-pypi.html', 'sidebar-donate.html',
'sourcelink.html', 'searchbox.html'],
'**': ['sidebar-intro.html', 'sidebar-star.html', 'sidebar-pypi.html', 'sidebar-donate.html',
'localtoc.html', 'relations.html', 'sourcelink.html', 'searchbox.html']
}
#html_sidebars = {}
# Additional templates that should be rendered to pages, maps page names to
# template names.
@@ -182,11 +199,24 @@ html_sidebars = {
# This is the file name suffix for HTML files (e.g. ".xhtml").
#html_file_suffix = None
# Language to be used for generating the HTML full-text search index.
# Sphinx supports the following languages:
# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja'
# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr'
#html_search_language = 'en'
# A dictionary with options for the search language support, empty by default.
# Now only 'ja' uses this config value
#html_search_options = {'type': 'default'}
# The name of a javascript file (relative to the configuration directory) that
# implements a search results scorer. If empty, the default will be used.
#html_search_scorer = 'scorer.js'
# Output file base name for HTML help builder.
htmlhelp_basename = 'subliminaldoc'
htmlhelp_basename = project + 'doc'
# -- Options for LaTeX output --------------------------------------------------
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
# The paper size ('letterpaper' or 'a4paper').
@@ -197,13 +227,17 @@ latex_elements = {
# Additional stuff for the LaTeX preamble.
#'preamble': '',
# Latex figure (float) alignment
#'figure_align': 'htbp',
}
# Grouping the document tree into LaTeX files. List of tuples
# (source start file, target name, title, author, documentclass [howto/manual]).
# (source start file, target name, title,
# author, documentclass [howto, manual, or own class]).
latex_documents = [
('index', 'subliminal.tex', u'subliminal Documentation',
u'Antoine Bertin', 'manual'),
(master_doc, project + '.tex', project + ' Documentation',
author, 'manual'),
]
# The name of an image file (relative to this directory) to place at the top of
@@ -227,28 +261,28 @@ latex_documents = [
#latex_domain_indices = True
# -- Options for manual page output --------------------------------------------
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [
('index', 'subliminal', u'subliminal Documentation',
[u'Antoine Bertin'], 1)
(master_doc, project, project + ' Documentation',
[author], 1)
]
# If true, show URL addresses after external links.
#man_show_urls = False
# -- Options for Texinfo output ------------------------------------------------
# -- Options for Texinfo output -------------------------------------------
# Grouping the document tree into Texinfo files. List of tuples
# (source start file, target name, title, author,
# dir menu entry, description, category)
texinfo_documents = [
('index', 'subliminal', u'subliminal Documentation',
u'Antoine Bertin', 'subliminal', 'One line description of project.',
'Miscellaneous'),
(master_doc, project, project + ' Documentation',
author, project, 'Subtitles, faster than your thoughts',
'Miscellaneous'),
]
# Documents to append as an appendix to all manuals.
@@ -264,6 +298,19 @@ texinfo_documents = [
#texinfo_no_detailmenu = False
# Example configuration for intersphinx: refer to the Python standard library.
intersphinx_mapping = {
'python': ('http://docs.python.org/3.4', None),
'guessit': ('http://guessit.readthedocs.org/en/latest', None),
'babelfish': ('http://babelfish.readthedocs.org/en/latest', None),
'dogpilecache': ('http://dogpilecache.readthedocs.org/en/latest', None),
'dogpilecore': ('http://dogpilecore.readthedocs.org/en/latest', None),
'stevedore': ('http://docs.openstack.org/developer/stevedore', None),
'click': ('http://click.pocoo.org/4', None)
}
# -- Options for autodoc -------------------------------------------------------
autodoc_member_order = 'bysource'
autodoc_default_flags = ['members']
+40
View File
@@ -0,0 +1,40 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os
import sys
import pytest
try:
from unittest.mock import Mock
except ImportError:
from mock import Mock
from vcr import VCR
from subliminal.cache import region
vcr = VCR(path_transformer=lambda path: path + '.yaml',
match_on=['method', 'scheme', 'host', 'port', 'path', 'query', 'body'],
cassette_library_dir=os.path.join('docs', 'cassettes'))
@pytest.fixture(autouse=True, scope='session')
def configure_region():
region.configure('dogpile.cache.null')
region.configure = Mock()
@pytest.fixture(autouse=True)
def chdir(tmpdir, monkeypatch):
monkeypatch.chdir(str(tmpdir))
@pytest.yield_fixture(autouse=True)
def use_cassette(request):
with vcr.use_cassette('test_' + request.fspath.purebasename):
yield
@pytest.fixture(autouse=True)
def skip_python_2():
if sys.version_info < (3, 0):
return pytest.skip('Requires python 3')
+24 -78
View File
@@ -1,77 +1,12 @@
.. subliminal documentation master file, created by
sphinx-quickstart on Wed Oct 23 23:24:28 2013.
sphinx-quickstart on Sat Jul 11 00:40:28 2015.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Subliminal
==========
Release v\ |version|
Welcome to subliminal!
======================
Subliminal is a python library to search and download subtitles.
It comes with an easy to use :abbr:`CLI (command-line interface)` suitable for direct use or cron jobs.
Providers
---------
Subliminal uses multiple providers to give users a vast choice and have a better chance to find the
best matching subtitles. Providers are extensible through a dedicated entry point.
* Addic7ed
* BierDopje
* OpenSubtitles
* Podnapisi
* TheSubDB
* TvSubtitles
Usage
-----
CLI
^^^
Download english subtitles::
$ subliminal -l en -- The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
1 subtitle downloaded
See :mod:`subliminal.cli`
Library
^^^^^^^
Download best subtitles in French and English for videos less than one week old in a video folder,
skipping videos that already have subtitles whether they are embedded or not::
from babelfish import Language
from datetime import timedelta
import subliminal
# configure the cache
subliminal.cache_region.configure('dogpile.cache.dbm', arguments={'filename': '/path/to/cachefile.dbm'})
# scan for videos in the folder and their subtitles
videos = subliminal.scan_videos(['/path/to/video/folder'], subtitles=True, embedded_subtitles=True, age=timedelta(weeks=1))
# download
subliminal.download_best_subtitles(videos, {Language('eng'), Language('fra')}, age=timedelta(week=1))
See :mod:`subliminal.api`, :func:`~subliminal.video.scan_videos` and :func:`~subliminal.video.scan_video`
How it works
------------
Subliminal makes use of various libraries to achieve its goal:
* `enzyme <http://enzyme.readthedocs.org>`_ to detect embedded subtitles in videos and retrieve metadata
* `guessit <http://guessit.readthedocs.org>`_ to guess informations from filenames
* `babelfish <http://babelfish.readthedocs.org>`_ to work with languages
* `requests <http://docs.python-requests.org>`_ to make human readable HTTP requests
* `BeautifulSoup <http://www.crummy.com/software/BeautifulSoup>`_ to parse HTML and XML
* `dogpile.cache <http://dogpilecache.readthedocs.org>`_ to cache intermediate search data
* `charade <https://github.com/sigmavirus24/charade>`_ to detect subtitles' encoding
* `pysrt <https://github.com/byroot/pysrt>`_ to validate downloaded subtitles
License
-------
MIT
It comes with an easy to use yet powerful :abbr:`CLI (command-line interface)` suitable for direct use or cron jobs.
Documentation
@@ -79,25 +14,36 @@ Documentation
.. toctree::
:maxdepth: 2
provider_guide
user/usage
user/how_it_works
user/cli
user/provider_guide
API Documentation
-----------------
If you are looking for information on a specific function, class or method,
this part of the documentation is for you.
If you are looking for information on a specific function, class or method, this part of the documentation is for you.
.. toctree::
:maxdepth: 2
:maxdepth: 1
api/api
api/video
api/subtitle
api/providers
api/cache
api/score
api/cli
api/exceptions
api/providers
api/score
api/subtitle
api/video
.. include:: ../HISTORY.rst
License
-------
MIT
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
+263
View File
@@ -0,0 +1,263 @@
@ECHO OFF
REM Command file for Sphinx documentation
if "%SPHINXBUILD%" == "" (
set SPHINXBUILD=sphinx-build
)
set BUILDDIR=_build
set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
set I18NSPHINXOPTS=%SPHINXOPTS% .
if NOT "%PAPER%" == "" (
set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
)
if "%1" == "" goto help
if "%1" == "help" (
:help
echo.Please use `make ^<target^>` where ^<target^> is one of
echo. html to make standalone HTML files
echo. dirhtml to make HTML files named index.html in directories
echo. singlehtml to make a single large HTML file
echo. pickle to make pickle files
echo. json to make JSON files
echo. htmlhelp to make HTML files and a HTML help project
echo. qthelp to make HTML files and a qthelp project
echo. devhelp to make HTML files and a Devhelp project
echo. epub to make an epub
echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter
echo. text to make text files
echo. man to make manual pages
echo. texinfo to make Texinfo files
echo. gettext to make PO message catalogs
echo. changes to make an overview over all changed/added/deprecated items
echo. xml to make Docutils-native XML files
echo. pseudoxml to make pseudoxml-XML files for display purposes
echo. linkcheck to check all external links for integrity
echo. doctest to run all doctests embedded in the documentation if enabled
echo. coverage to run coverage check of the documentation if enabled
goto end
)
if "%1" == "clean" (
for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
del /q /s %BUILDDIR%\*
goto end
)
REM Check if sphinx-build is available and fallback to Python version if any
%SPHINXBUILD% 2> nul
if errorlevel 9009 goto sphinx_python
goto sphinx_ok
:sphinx_python
set SPHINXBUILD=python -m sphinx.__init__
%SPHINXBUILD% 2> nul
if errorlevel 9009 (
echo.
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
echo.installed, then set the SPHINXBUILD environment variable to point
echo.to the full path of the 'sphinx-build' executable. Alternatively you
echo.may add the Sphinx directory to PATH.
echo.
echo.If you don't have Sphinx installed, grab it from
echo.http://sphinx-doc.org/
exit /b 1
)
:sphinx_ok
if "%1" == "html" (
%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/html.
goto end
)
if "%1" == "dirhtml" (
%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
goto end
)
if "%1" == "singlehtml" (
%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
goto end
)
if "%1" == "pickle" (
%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the pickle files.
goto end
)
if "%1" == "json" (
%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can process the JSON files.
goto end
)
if "%1" == "htmlhelp" (
%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run HTML Help Workshop with the ^
.hhp project file in %BUILDDIR%/htmlhelp.
goto end
)
if "%1" == "qthelp" (
%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished; now you can run "qcollectiongenerator" with the ^
.qhcp project file in %BUILDDIR%/qthelp, like this:
echo.^> qcollectiongenerator %BUILDDIR%\qthelp\subliminal.qhcp
echo.To view the help file:
echo.^> assistant -collectionFile %BUILDDIR%\qthelp\subliminal.ghc
goto end
)
if "%1" == "devhelp" (
%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
if errorlevel 1 exit /b 1
echo.
echo.Build finished.
goto end
)
if "%1" == "epub" (
%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The epub file is in %BUILDDIR%/epub.
goto end
)
if "%1" == "latex" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
if errorlevel 1 exit /b 1
echo.
echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "latexpdf" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
cd %BUILDDIR%/latex
make all-pdf
cd %~dp0
echo.
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "latexpdfja" (
%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
cd %BUILDDIR%/latex
make all-pdf-ja
cd %~dp0
echo.
echo.Build finished; the PDF files are in %BUILDDIR%/latex.
goto end
)
if "%1" == "text" (
%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The text files are in %BUILDDIR%/text.
goto end
)
if "%1" == "man" (
%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The manual pages are in %BUILDDIR%/man.
goto end
)
if "%1" == "texinfo" (
%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
goto end
)
if "%1" == "gettext" (
%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
goto end
)
if "%1" == "changes" (
%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
if errorlevel 1 exit /b 1
echo.
echo.The overview file is in %BUILDDIR%/changes.
goto end
)
if "%1" == "linkcheck" (
%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
if errorlevel 1 exit /b 1
echo.
echo.Link check complete; look for any errors in the above output ^
or in %BUILDDIR%/linkcheck/output.txt.
goto end
)
if "%1" == "doctest" (
%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
if errorlevel 1 exit /b 1
echo.
echo.Testing of doctests in the sources finished, look at the ^
results in %BUILDDIR%/doctest/output.txt.
goto end
)
if "%1" == "coverage" (
%SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage
if errorlevel 1 exit /b 1
echo.
echo.Testing of coverage in the sources finished, look at the ^
results in %BUILDDIR%/coverage/python.txt.
goto end
)
if "%1" == "xml" (
%SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The XML files are in %BUILDDIR%/xml.
goto end
)
if "%1" == "pseudoxml" (
%SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml
if errorlevel 1 exit /b 1
echo.
echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml.
goto end
)
:end
+77
View File
@@ -0,0 +1,77 @@
.. _cli:
CLI
===
subliminal
----------
.. code-block:: none
$ subliminal --help
Usage: subliminal [OPTIONS] COMMAND [ARGS]...
Subtitles, faster than your thoughts.
Options:
--addic7ed USERNAME PASSWORD Addic7ed configuration.
--cache-dir DIRECTORY Path to the cache directory. [default:
~/.config/subliminal]
--debug Print useful information for debugging subliminal and for
reporting bugs.
--version Show the version and exit.
--help Show this message and exit.
Commands:
cache Cache management.
download Download best subtitles.
Suggestions and bug reports are greatly appreciated: https://github.com/Diaoul/subliminal/
subliminal download
-------------------
.. code-block:: none
$ subliminal download --help
Usage: subliminal download [OPTIONS] PATH...
Download best subtitles.
PATH can be an directory containing videos, a video file path or a video file name. It can be
used multiple times.
If an existing subtitle is detected (external or embedded) in the correct language, the
download is skipped for the associated video.
Options:
-l, --language LANGUAGE Language as IETF code, e.g. en, pt-BR (can be used multiple
times). [required]
-p, --provider [addic7ed|opensubtitles|podnapisi|thesubdb|tvsubtitles]
Provider to use (can be used multiple times).
-a, --age AGE Filter videos newer than AGE, e.g. 12h, 1w2d.
-d, --directory DIR Directory where to save subtitles, default is next to the video
file.
-e, --encoding ENC Subtitle file encoding, default is to preserve original
encoding.
-s, --single Save subtitle without language code in the file name, i.e. use
.srt extension.
-f, --force Force download even if a subtitle already exist.
-hi, --hearing-impaired Prefer hearing impaired subtitles.
-m, --min-score INTEGER RANGE Minimum score for a subtitle to be downloaded (0 to 100).
-v, --verbose Increase verbosity.
--help Show this message and exit.
subliminal cache
----------------
.. code-block:: none
$ subliminal cache --help
Usage: subliminal cache [OPTIONS]
Cache management.
Options:
--clear-subliminal Clear subliminal's cache. Use this ONLY if your cache is corrupted or if
you experience issues.
--help Show this message and exit.
+48
View File
@@ -0,0 +1,48 @@
How it works
============
Providers
---------
Subliminal uses multiple providers to give users a vast choice and have a better chance to find the best matching
subtitles. Current supported providers are:
* Addic7ed
* OpenSubtitles
* Podnapisi
* TheSubDB
* TvSubtitles
Providers all inherit the same :class:`~subliminal.providers.Provider` base class and thus share the same API.
They are registered on the ``subliminal.providers`` entry point and are exposed through the
:data:`~subliminal.api.provider_manager` for easy access.
To make working with multiple providers seamlessly, the :class:`~subliminal.api.ProviderPool` exposes the same API but
distributes it to its providers.
.. _scoring:
Scoring
-------
Rating subtitles and comparing them is probably the most difficult part and this is where subliminal excels with its
powerful scoring algorithm.
Using `guessit <http://guessit.readthedocs.org>`_ and `enzyme <http://enzyme.readthedocs.org>`_, subliminal extracts
properties of the video and match them with the properties of the subtitles found with the providers.
Equations in :mod:`subliminal.score` give a score to each property (called a match). The more matches the video and
the subtitle have the higher the score computed with :func:`~subliminal.subtitle.compute_score` gets.
Libraries
---------
Various libraries are used by subliminal and are key to its success:
* `guessit <http://guessit.readthedocs.org>`_ to guess informations from filenames
* `enzyme <http://enzyme.readthedocs.org>`_ to detect embedded subtitles in videos and read other video metadata
* `babelfish <http://babelfish.readthedocs.org>`_ to work with languages
* `requests <http://docs.python-requests.org>`_ to make human readable HTTP requests
* `BeautifulSoup <http://www.crummy.com/software/BeautifulSoup>`_ to parse HTML and XML
* `dogpile.cache <http://dogpilecache.readthedocs.org>`_ to cache intermediate search results
* `stevedore <http://docs.openstack.org/developer/stevedore/>`_ to manage the provider entry point
* `chardet <http://chardet.readthedocs.org>`_ to detect subtitles' encoding
* `pysrt <https://github.com/byroot/pysrt>`_ to validate downloaded subtitles
@@ -1,6 +1,7 @@
Provider Guide
==============
This guide is going to explain how to add a :class:`~subliminal.providers.Provider` to subliminal
This guide is going to explain how to add a :class:`~subliminal.providers.Provider` to subliminal. You are encouraged
to take a look at the existing providers, it can be a nice base to start your own provider.
Requirements
@@ -33,11 +34,12 @@ Per-user authentication is allowed and must be configured at instantiation as ke
will be done by the user through the `provider_configs` argument of the :func:`~subliminal.api.list_subtitles` and
:func:`~subliminal.api.download_best_subtitles` functions. No network operation must be done during instantiation,
only configuration. Any error in the configuration must raise a
:class:`~subliminal.exceptions.ProviderConfigurationError`.
:class:`~subliminal.exceptions.ConfigurationError`.
Beyond this point, if a network error occurs, a :class:`~subliminal.exceptions.ProviderNotAvailable` exception
must be raised and an unexpected behavior must raise a :class:`~subliminal.exceptions.ProviderError` exception.
Beyond this point, if an error occurs, a generic :class:`~subliminal.exceptions.ProviderError` exception
must be raised. You can also use more explicit exception classes :class:`~subliminal.exceptions.AuthenticationError`
and :class:`~subliminal.exceptions.DownloadLimitExceeded`.
Initialization / Termination
@@ -51,14 +53,16 @@ Caching policy
--------------
To save bandwidth and improve querying time, intermediate data should be cached when possible. Typical use case is
when a query to retrieve show ids is required prior to the query to actually search for subtitles. In that case
the function that gets the show id from the show name must be cached.
the function that gets the show id from the show name must be cached.
Expiration time should be :data:`~subliminal.cache.SHOW_EXPIRATION_TIME` for shows and
:data:`~subliminal.cache.EPISODE_EXPIRATION_TIME` for episodes.
Language
--------
To be able to handle various language codes, subliminal makes use of `babelfish <http://babelfish.readthedocs.org>`_
Language and converters. You must set the attribute :attr:`~subliminal.providers.Provider.languages` with a set of
supported :class:`babelfish.Language`.
supported :class:`~babelfish.language.Language`.
If you cannot find a suitable converter for your provider, you can `make one of your own
<http://babelfish.readthedocs.org/en/latest/#custom-converters>`_.
@@ -67,7 +71,7 @@ If you cannot find a suitable converter for your provider, you can `make one of
Querying
--------
The :meth:`~subliminal.providers.Provider.query` method parameters must include all aspects of provider's querying with
simple types.
primary types.
Subtitle
@@ -79,12 +83,11 @@ It must have relevant attributes that can be used to compute the matches of the
Score computation
-----------------
To be able to compare subtitles coming from different providers between them, the
:meth:`~subliminal.subtitle.Subtitle.compute_matches` method must be implemented.
:meth:`~subliminal.subtitle.Subtitle.get_matches` method must be implemented.
If `guessit <http://guessit.readthedocs.org>`_ is used to extract data from the
:class:`~subliminal.subtitle.Subtitle` subclass, you can use :func:`~subliminal.subtitle.compute_guess_matches`
as a helper to compute matches between the :class:`~subliminal.video.Video` and the :class:`guessit.Guess`.
:class:`~subliminal.subtitle.Subtitle` subclass, you can use :func:`~subliminal.subtitle.guess_matches`
as a helper to compute matches between the :class:`~subliminal.video.Video` and the :class:`~guessit.guess.Guess`.
Refer to the `scores` attribute of :class:`~subliminal.video.Episode` and :class:`~subliminal.video.Movie`
for a list of possible matches.
@@ -92,12 +95,8 @@ for a list of possible matches.
Unittesting
-----------
All possible uses of the :meth:`~subliminal.providers.Provider.query` method must be unittested including the uses
that produce exceptions other than :class:`~subliminal.exceptions.ProviderNotAvailable`.
The :meth:`~subliminal.subtitle.Subtitle.compute_matches` is used to validate the unittests.
As it is not possible to unittest all uses of the :meth:`~subliminal.providers.Provider.list_subtitles`
and :meth:`~subliminal.providers.Provider.download_subtitle` methods, unitests are only required to cover most common
use cases.
See existing unittests for more details on how to proceed.
All possible uses of :meth:`~subliminal.providers.Provider.query`,
:meth:`~subliminal.providers.Provider.list_subtitles` and :meth:`~subliminal.providers.Provider.download_subtitle`
methods must have integration tests. Use `vcrpy <https://github.com/kevin1024/vcrpy>`_ for recording and playback
of network activity.
Other functions must be unittested. If necessary, you can use :mod:`unittest.mock` to mock some functions.
+144
View File
@@ -0,0 +1,144 @@
Usage
=====
CLI
---
Download English subtitles::
$ subliminal download -l en The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4
Collecting videos [####################################] 100%
1 video collected / 0 video ignored
Downloading subtitles [####################################] 100%
Downloaded 1 subtitle
.. warning::
For cron usage, make sure to specify a maximum age (with ``--age``) so subtitles are searched for recent videos
only. Otherwise you will get banned from the providers for abuse due to too many requests. If subliminal didn't
find subtitles for an old video, it's unlikely it will find subtitles for that video ever anyway.
See :ref:`cli` for more details on the available commands and options.
High level API
--------------
You can call subliminal in many different ways depending on how much control you want over the process. For most use
cases, you can stick to the standard API.
Common
^^^^^^
Let's start by importing subliminal:
>>> from __future__ import unicode_literals
>>> import os
>>> from babelfish import *
>>> from subliminal import *
Before going further, there are a few things to know about subliminal.
Video
^^^^^
The :class:`~subliminal.video.Movie` and :class:`~subliminal.video.Episode` classes represent a video,
existing or not. You can create a video by name (or path) with :meth:`Video.fromname <subliminal.video.Video.fromname>`,
use :func:`~subliminal.video.scan_video` on an existing file path to get even more information about the video or
use :func:`~subliminal.video.scan_videos` on an existing directory path to scan a whole directory for videos.
>>> video = Video.fromname('The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.mp4')
>>> video
<Episode ['The Big Bang Theory', 5x18]>
Here video informations were guessed based on the name of the video, you can access some video attributes:
>>> video.video_codec
'h264'
>>> video.release_group
'LOL'
Configuration
^^^^^^^^^^^^^
Before proceeding to listing and downloading subtitles, you need to configure the cache. Subliminal uses a cache to
reduce repeated queries to providers and improve overall performance with no impact on search quality. For the sake
of this example, we're going to use a memory backend.
>>> my_region = region.configure('dogpile.cache.memory')
.. warning::
Choose a cache that fits your application and prefer persistant over volatile backends. The ``file`` backend is
usually a good choice.
See `dogpile.cache's documentation <http://dogpilecache.readthedocs.org>`_ for more details on backends.
Now that we're done with the basics, let's have some *real* fun.
Listing
^^^^^^^
To list subtitles, subliminal provides a :func:`~subliminal.api.list_subtitles` function that will return all found
subtitles:
>>> subtitles = list_subtitles([video], {Language('hun')}, providers=['podnapisi'])
>>> subtitles[video]
[<PodnapisiSubtitle 'ZtAW' [hu]>, <PodnapisiSubtitle 'ONAW' [hu]>]
.. note::
As you noticed, all parameters are iterables but only contain one item which means you can deal with a lot of
videos, languages and providers at the same time. For the sake of this example, we filter providers to use only one,
pass ``providers=None`` (default) to search on all providers.
Scoring
^^^^^^^
It's usual you have multiple candidates for subtitles. To help you chose which one to download, subliminal can compare
them to the video and tell you exactly what matches with :meth:`~subliminal.subtitle.Subtitle.get_matches`:
>>> for s in subtitles[video]:
... sorted(s.get_matches(video))
['episode', 'format', 'hearing_impaired', 'release_group', 'season', 'series', 'video_codec', 'year']
['episode', 'format', 'hearing_impaired', 'season', 'series', 'year']
And then compute a score with those matches with :func:`~subliminal.subtitle.compute_score`:
>>> for s in subtitles[video]:
... {s: compute_score(s.get_matches(video), video)}
{<PodnapisiSubtitle 'ZtAW' [hu]>: 132}
{<PodnapisiSubtitle 'ONAW' [hu]>: 117}
Now you should have a better idea about which one you should choose.
Downloading
^^^^^^^^^^^
We can settle on the first subtitle and download its content using :func:`~subliminal.api.download_subtitles`:
>>> subtitle = subtitles[video][0]
>>> subtitle.content is None
True
>>> download_subtitles([subtitle])
>>> subtitle.content.split(b'\n')[2]
b'Elszaladok a boltba'
If you want a string instead of bytes, you can access decoded content with the
:attr:`~subliminal.subtitle.Subtitle.text` property:
>>> subtitle.text.split('\n')[3]
'néhány apróságért.'
Downloading best subtitles
^^^^^^^^^^^^^^^^^^^^^^^^^^
Downloading best subtitles is what you want to do in almost all cases, as a shortcut for listing, scoring and
downloading you can use :func:`~subliminal.api.download_best_subtitles`:
>>> best_subtitles = download_best_subtitles([video], {Language('hun')}, providers=['podnapisi'])
>>> best_subtitles[video]
[<PodnapisiSubtitle 'ZtAW' [hu]>]
>>> best_subtitle = best_subtitles[video][0]
>>> best_subtitle.content.split(b'\n')[2]
b'Elszaladok a boltba'
We end up with the same subtitle but with one line of code. Neat.
Save
^^^^
We got ourselves a nice subtitle now we can save it on the file system using :func:`~subliminal.api.save_subtitles`:
>>> save_subtitles(video, [best_subtitle])
[<PodnapisiSubtitle 'ZtAW' [hu]>]
>>> os.listdir()
['The.Big.Bang.Theory.S05E18.HDTV.x264-LOL.hu.srt']
+1 -9
View File
@@ -1,9 +1 @@
beautifulsoup4>=4.3.2
guessit>=0.6.2
requests>=2.0.1
enzyme>=0.4.0
html5lib>=0.99
dogpile.cache>=0.5.2
babelfish>=0.4.0
charade>=1.0.3
pysrt>=0.5.0
-e .
+12
View File
@@ -5,3 +5,15 @@ all_files = 1
[upload_sphinx]
upload-dir = docs/_build/html
[pytest]
norecursedirs = build dist env .tox .eggs
addopts = --pep8 --flakes --doctest-glob='*.rst'
pep8maxlinelength = 120
pep8ignore =
docs/conf.py ALL
subliminal/__init__.py E402
flakes-ignore =
docs/conf.py ALL
subliminal/__init__.py UnusedImport
doctest_optionflags= NORMALIZE_WHITESPACE IGNORE_EXCEPTION_DETAIL
+96 -34
View File
@@ -1,40 +1,102 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import io
import re
import sys
from setuptools import setup, find_packages
from setuptools.command.test import test as TestCommand
class PyTest(TestCommand):
user_options = [('pytest-args=', 'a', 'Arguments to pass to py.test')]
def initialize_options(self):
TestCommand.initialize_options(self)
self.pytest_args = []
def finalize_options(self):
TestCommand.finalize_options(self)
self.test_args = []
self.test_suite = True
def run_tests(self):
# import here, cause outside the eggs aren't loaded
import pytest
errno = pytest.main(self.pytest_args)
sys.exit(errno)
# requirements
install_requirements = ['guessit>=0.9.1', 'babelfish>=0.5.2', 'enzyme>=0.4.1', 'beautifulsoup4>=4.2.0',
'requests>=2.0', 'click>=4.0', 'dogpile.cache>=0.5.4', 'stevedore>=1.0.0',
'chardet>=2.3.0', 'pysrt>=1.0.1', 'six>=1.9.0']
test_requirements = ['sympy', 'vcrpy>=1.6.1', 'pytest', 'pytest-pep8', 'pytest-flakes',
'pytest-cov']
if sys.version_info < (3, 3):
test_requirements.append('mock')
dev_requirements = ['tox', 'sphinx', 'wheel']
# package informations
with io.open('subliminal/__init__.py', 'r') as f:
version = re.search(r'^__version__\s*=\s*[\'"]([^\'"]*)[\'"]$', f.read(),
re.MULTILINE).group(1)
if not version:
raise RuntimeError('Cannot find version information')
with io.open('README.rst', 'r', encoding='utf-8') as f:
readme = f.read()
with io.open('HISTORY.rst', 'r', encoding='utf-8') as f:
history = f.read()
setup(name='subliminal',
version='0.7.3',
license='MIT',
description='Subtitles, faster than your thoughts',
long_description=open('README.rst').read() + '\n\n' + open('HISTORY.rst').read(),
keywords='subtitle subtitles video movie episode tv show',
url='https://github.com/Diaoul/subliminal',
author='Antoine Bertin',
author_email='diaoulael@gmail.com',
packages=find_packages(),
classifiers=['Development Status :: 4 - Beta',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Topic :: Software Development :: Libraries :: Python Modules',
'Topic :: Multimedia :: Video'],
entry_points={
'console_scripts': ['subliminal = subliminal.cli:subliminal'],
'subliminal.providers': ['addic7ed = subliminal.providers.addic7ed:Addic7edProvider',
'bierdopje = subliminal.providers.bierdopje:BierDopjeProvider',
'opensubtitles = subliminal.providers.opensubtitles:OpenSubtitlesProvider',
'podnapisi = subliminal.providers.podnapisi:PodnapisiProvider',
'thesubdb = subliminal.providers.thesubdb:TheSubDBProvider',
'tvsubtitles = subliminal.providers.tvsubtitles:TVsubtitlesProvider'],
'babelfish.language_converters': ['addic7ed = subliminal.converters.addic7ed:Addic7edConverter',
'podnapisi = subliminal.converters.podnapisi:PodnapisiConverter',
'tvsubtitles = subliminal.converters.tvsubtitles:TVsubtitlesConverter']
},
install_requires=open('requirements.txt').readlines(),
test_suite='subliminal.tests.suite')
version=version,
license='MIT',
description='Subtitles, faster than your thoughts',
long_description=readme + '\n\n' + history,
keywords='subtitle subtitles video movie episode tv show',
url='https://github.com/Diaoul/subliminal',
author='Antoine Bertin',
author_email='diaoulael@gmail.com',
packages=find_packages(),
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.3',
'Programming Language :: Python :: 3.4',
'Topic :: Software Development :: Libraries :: Python Modules',
'Topic :: Multimedia :: Video'
],
entry_points={
'subliminal.providers': [
'addic7ed = subliminal.providers.addic7ed:Addic7edProvider',
'opensubtitles = subliminal.providers.opensubtitles:OpenSubtitlesProvider',
'podnapisi = subliminal.providers.podnapisi:PodnapisiProvider',
'thesubdb = subliminal.providers.thesubdb:TheSubDBProvider',
'tvsubtitles = subliminal.providers.tvsubtitles:TVsubtitlesProvider'
],
'babelfish.language_converters': [
'addic7ed = subliminal.converters.addic7ed:Addic7edConverter',
'tvsubtitles = subliminal.converters.tvsubtitles:TVsubtitlesConverter'
],
'console_scripts': [
'subliminal = subliminal.cli:subliminal'
]
},
install_requires=install_requirements,
tests_require=test_requirements,
extras_require={
'test': test_requirements,
'dev': dev_requirements
},
cmdclass={'test': PyTest})
+9 -7
View File
@@ -1,16 +1,18 @@
# -*- coding: utf-8 -*-
__title__ = 'subliminal'
__version__ = '0.7.3'
__version__ = '1.0.1'
__author__ = 'Antoine Bertin'
__license__ = 'MIT'
__copyright__ = 'Copyright 2013 Antoine Bertin'
__copyright__ = 'Copyright 2015, Antoine Bertin'
import logging
from .api import PROVIDERS_ENTRY_POINT, list_subtitles, download_subtitles, download_best_subtitles
from .cache import MutexLock, region as cache_region
from .exceptions import Error, ProviderError, ProviderConfigurationError, ProviderNotAvailable, InvalidSubtitle
from .subtitle import Subtitle
from .video import VIDEO_EXTENSIONS, SUBTITLE_EXTENSIONS, Video, Episode, Movie, scan_videos, scan_video
from .api import (ProviderPool, check_video, provider_manager, download_best_subtitles, download_subtitles,
list_subtitles, save_subtitles)
from .cache import region
from .exceptions import Error, ProviderError
from .providers import Provider
from .subtitle import Subtitle, compute_score
from .video import SUBTITLE_EXTENSIONS, VIDEO_EXTENSIONS, Episode, Movie, Video, scan_video, scan_videos
logging.getLogger(__name__).addHandler(logging.NullHandler())
+388 -249
View File
@@ -1,276 +1,415 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import collections
from collections import defaultdict
import io
import logging
import operator
import babelfish
import pkg_resources
from .exceptions import ProviderNotAvailable, InvalidSubtitle
from .subtitle import get_subtitle_path
import os.path
import socket
from babelfish import Language
import requests
from stevedore import EnabledExtensionManager, ExtensionManager
from .subtitle import compute_score, get_subtitle_path
logger = logging.getLogger(__name__)
#: Entry point for the providers
PROVIDERS_ENTRY_POINT = 'subliminal.providers'
provider_manager = ExtensionManager('subliminal.providers')
def list_subtitles(videos, languages, providers=None, provider_configs=None):
"""List subtitles for `videos` with the given `languages` using the specified `providers`
class ProviderPool(object):
"""A pool of providers with the same API as a single :class:`~subliminal.providers.Provider`.
:param videos: videos to list subtitles for
:type videos: set of :class:`~subliminal.video.Video`
:param languages: languages of subtitles to search for
:type languages: set of :class:`babelfish.Language`
:param providers: providers to use for the search, if not all
:type providers: list of string or None
:param provider_configs: configuration for providers
:type provider_configs: dict of provider name => provider constructor kwargs
:return: found subtitles
:rtype: dict of :class:`~subliminal.video.Video` => [:class:`~subliminal.subtitle.Subtitle`]
It has a few extra features:
* Lazy loads providers when needed and supports the :keyword:`with` statement to :meth:`terminate`
the providers on exit.
* Automatically discard providers on failure.
:param providers: name of providers to use, if not all.
:type providers: list
:param dict provider_configs: provider configuration as keyword arguments per provider name to pass when
instanciating the :class:`~subliminal.providers.Provider`.
"""
provider_configs = provider_configs or {}
subtitles = collections.defaultdict(list)
# filter videos
videos = [v for v in videos if v.subtitle_languages & languages < languages]
if not videos:
logger.info('No video to download subtitles for with languages %r', languages)
return subtitles
subtitle_languages = set.intersection(*[v.subtitle_languages for v in videos])
for provider_entry_point in pkg_resources.iter_entry_points(PROVIDERS_ENTRY_POINT):
# filter and initialize provider
if providers is not None and provider_entry_point.name not in providers:
logger.debug('Skipping provider %r: not in the list', provider_entry_point.name)
continue
Provider = provider_entry_point.load()
provider_languages = Provider.languages & languages - subtitle_languages
if not provider_languages:
logger.info('Skipping provider %r: no language to search for', provider_entry_point.name)
continue
provider_videos = [v for v in videos if Provider.check(v)]
if not provider_videos:
logger.info('Skipping provider %r: no video to search for', provider_entry_point.name)
continue
def __init__(self, providers=None, provider_configs=None):
#: Name of providers to use
self.providers = providers or provider_manager.names()
# list subtitles with the provider
try:
with Provider(**provider_configs.get(provider_entry_point.name, {})) as provider:
for provider_video in provider_videos:
provider_video_languages = provider_languages - provider_video.subtitle_languages
if not provider_video_languages:
logger.debug('Skipping provider %r: no language to search for for video %r',
provider_entry_point.name, provider_video)
continue
logger.info('Listing subtitles with provider %r for video %r with languages %r',
provider_entry_point.name, provider_video, provider_video_languages)
try:
provider_subtitles = provider.list_subtitles(provider_video, provider_video_languages)
except ProviderNotAvailable:
logger.warning('Provider %r is not available, discarding it', provider_entry_point.name)
break
except:
logger.exception('Unexpected error in provider %r', provider_entry_point.name)
continue
logger.info('Found %d subtitles', len(provider_subtitles))
subtitles[provider_video].extend(provider_subtitles)
except ProviderNotAvailable:
logger.warning('Provider %r is not available, discarding it', provider_entry_point.name)
return subtitles
#: Provider configuration
self.provider_configs = provider_configs or {}
#: Initialized providers
self.initialized_providers = {}
def download_subtitles(subtitles, provider_configs=None, single=False):
"""Download subtitles
#: Discarded providers
self.discarded_providers = set()
:param subtitles: subtitles to download
:type subtitles: dict of :class:`~subliminal.video.Video` => [:class:`~subliminal.subtitle.Subtitle`]
:param provider_configs: configuration for providers
:type provider_configs: dict of provider name => provider constructor kwargs
:param bool single: download with .srt extension if `True`, add language identifier otherwise
#: Dedicated :data:`provider_manager` as :class:`~stevedore.enabled.EnabledExtensionManager`
self.manager = EnabledExtensionManager(provider_manager.namespace, lambda e: e.name in self.providers)
"""
provider_configs = provider_configs or {}
discarded_providers = set()
providers_by_name = {ep.name: ep.load() for ep in pkg_resources.iter_entry_points(PROVIDERS_ENTRY_POINT)}
initialized_providers = {}
try:
for video, video_subtitles in subtitles.items():
languages = {subtitle.language for subtitle in video_subtitles}
downloaded_languages = set()
for subtitle in video_subtitles:
# filter
if subtitle.language in downloaded_languages:
continue
if subtitle.provider_name in discarded_providers:
logger.debug('Skipping subtitle from discarded provider %r', subtitle.provider_name)
continue
def __enter__(self):
return self
# initialize provider
if subtitle.provider_name in initialized_providers:
provider = initialized_providers[subtitle.provider_name]
else:
provider = providers_by_name[subtitle.provider_name](**provider_configs.get(subtitle.provider_name, {}))
try:
provider.initialize()
except ProviderNotAvailable:
logger.warning('Provider %r is not available, discarding it', subtitle.provider_name)
discarded_providers.add(subtitle.provider_name)
continue
initialized_providers[subtitle.provider_name] = provider
def __exit__(self, exc_type, exc_value, traceback):
self.terminate()
# download subtitles
subtitle_path = get_subtitle_path(video.name, None if single else subtitle.language)
logger.info('Downloading subtitle %r into %r', subtitle, subtitle_path)
try:
subtitle_text = provider.download_subtitle(subtitle)
except ProviderNotAvailable:
logger.warning('Provider %r is not available, discarding it', subtitle.provider_name)
discarded_providers.add(subtitle.provider_name)
continue
except InvalidSubtitle:
logger.info('Invalid subtitle, skipping it')
continue
except:
logger.exception('Unexpected error in provider %r', subtitle.provider_name)
continue
with io.open(subtitle_path, 'w', encoding='utf-8') as f:
f.write(subtitle_text)
downloaded_languages.add(subtitle.language)
if single or downloaded_languages == languages:
break
finally: # terminate providers
for (provider_name, provider) in initialized_providers.items():
try:
provider.terminate()
except ProviderNotAvailable:
logger.warning('Provider %r is not available, unable to terminate', provider_name)
except:
logger.exception('Unexpected error in provider %r', provider_name)
def download_best_subtitles(videos, languages, providers=None, provider_configs=None, single=False, min_score=0,
hearing_impaired=False):
"""Download the best subtitles for `videos` with the given `languages` using the specified `providers`
:param videos: videos to download subtitles for
:type videos: set of :class:`~subliminal.video.Video`
:param languages: languages of subtitles to download
:type languages: set of :class:`babelfish.Language`
:param providers: providers to use for the search, if not all
:type providers: list of string or None
:param provider_configs: configuration for providers
:type provider_configs: dict of provider name => provider constructor kwargs
:param bool single: download with .srt extension if `True`, add language identifier otherwise
:param int min_score: minimum score for subtitles to download
:param bool hearing_impaired: download hearing impaired subtitles
"""
provider_configs = provider_configs or {}
discarded_providers = set()
downloaded_subtitles = collections.defaultdict(list)
# filter videos
videos = [v for v in videos if v.subtitle_languages & languages < languages
and (not single or babelfish.Language('und') not in v.subtitle_languages)]
if not videos:
logger.info('No video to download subtitles for with languages %r', languages)
return downloaded_subtitles
# filter and initialize providers
subtitle_languages = set.intersection(*[v.subtitle_languages for v in videos])
initialized_providers = {}
for provider_entry_point in pkg_resources.iter_entry_points(PROVIDERS_ENTRY_POINT):
if providers is not None and provider_entry_point.name not in providers:
logger.debug('Skipping provider %r: not in the list', provider_entry_point.name)
continue
Provider = provider_entry_point.load()
if not Provider.languages & languages - subtitle_languages:
logger.info('Skipping provider %r: no language to search for', provider_entry_point.name)
continue
if not [v for v in videos if Provider.check(v)]:
logger.info('Skipping provider %r: no video to search for', provider_entry_point.name)
continue
provider = Provider(**provider_configs.get(provider_entry_point.name, {}))
try:
def __getitem__(self, name):
if name not in self.initialized_providers:
logger.info('Initializing provider %s', name)
provider = self.manager[name].plugin(**self.provider_configs.get(name, {}))
provider.initialize()
except ProviderNotAvailable:
logger.warning('Provider %r is not available, discarding it', provider_entry_point.name)
continue
initialized_providers[provider_entry_point.name] = provider
try:
for video in videos:
# search for subtitles
subtitles = []
for provider_name, provider in initialized_providers.items():
if provider.check(video):
if provider_name in discarded_providers:
logger.debug('Skipping discarded provider %r', provider_name)
continue
provider_video_languages = provider.languages & languages - video.subtitle_languages
if not provider_video_languages:
logger.debug('Skipping provider %r: no language to search for for video %r', provider_name,
video)
continue
logger.info('Listing subtitles with provider %r for video %r with languages %r',
provider_name, video, provider_video_languages)
try:
provider_subtitles = provider.list_subtitles(video, provider_video_languages)
except ProviderNotAvailable:
logger.warning('Provider %r is not available, discarding it', provider_name)
discarded_providers.add(provider_name)
continue
except:
logger.exception('Unexpected error in provider %r', provider_name)
continue
logger.info('Found %d subtitles', len(provider_subtitles))
subtitles.extend(provider_subtitles)
self.initialized_providers[name] = provider
# find the best subtitles and download them
downloaded_languages = video.subtitle_languages.copy()
for subtitle, score in sorted([(s, s.compute_score(video)) for s in subtitles],
key=operator.itemgetter(1), reverse=True):
# filter
if subtitle.provider_name in discarded_providers:
logger.debug('Skipping subtitle from discarded provider %r', subtitle.provider_name)
continue
if subtitle.hearing_impaired != hearing_impaired:
logger.debug('Skipping subtitle: hearing impaired != %r', hearing_impaired)
continue
if score < min_score:
logger.debug('Skipping subtitle: score < %d', min_score)
continue
if subtitle.language in downloaded_languages:
logger.debug('Skipping subtitle: %r already downloaded', subtitle.language)
continue
return self.initialized_providers[name]
# download
provider = initialized_providers[subtitle.provider_name]
subtitle_path = get_subtitle_path(video.name, None if single else subtitle.language)
logger.info('Downloading subtitle %r with score %d into %r', subtitle, score, subtitle_path)
try:
subtitle_text = provider.download_subtitle(subtitle)
downloaded_subtitles[video].append(subtitle)
except ProviderNotAvailable:
logger.warning('Provider %r is not available, discarding it', subtitle.provider_name)
discarded_providers.add(subtitle.provider_name)
continue
except InvalidSubtitle:
logger.info('Invalid subtitle, skipping it')
continue
except:
logger.exception('Unexpected error in provider %r', subtitle.provider_name)
continue
with io.open(subtitle_path, 'w', encoding='utf-8') as f:
f.write(subtitle_text)
downloaded_languages.add(subtitle.language)
if single or downloaded_languages >= languages:
logger.debug('All languages downloaded')
break
finally: # terminate providers
for (provider_name, provider) in initialized_providers.items():
def __delitem__(self, name):
if name not in self.initialized_providers:
raise KeyError(name)
try:
logger.info('Terminating provider %s', name)
self.initialized_providers[name].terminate()
except (requests.Timeout, socket.timeout):
logger.error('Provider %r timed out, improperly terminated', name)
except:
logger.exception('Provider %r terminated unexpectedly', name)
del self.initialized_providers[name]
def __iter__(self):
return iter(self.initialized_providers)
def list_subtitles(self, video, languages):
"""List subtitles.
:param video: video to list subtitles for.
:type video: :class:`~subliminal.video.Video`
:param languages: languages to search for.
:type languages: set of :class:`~babelfish.language.Language`
:return: found subtitles.
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
"""
subtitles = []
for name in self.providers:
# check discarded providers
if name in self.discarded_providers:
logger.debug('Skipping discarded provider %r', name)
continue
# check video validity
if not self.manager[name].plugin.check(video):
logger.info('Skipping provider %r: not a valid video', name)
continue
# check supported languages
provider_languages = self.manager[name].plugin.languages & languages
if not provider_languages:
logger.info('Skipping provider %r: no language to search for', name)
continue
# list subtitles
logger.info('Listing subtitles with provider %r and languages %r', name, provider_languages)
try:
provider.terminate()
except ProviderNotAvailable:
logger.warning('Provider %r is not available, unable to terminate', provider_name)
provider_subtitles = self[name].list_subtitles(video, provider_languages)
except (requests.Timeout, socket.timeout):
logger.error('Provider %r timed out, discarding it', name)
self.discarded_providers.add(name)
continue
except:
logger.exception('Unexpected error in provider %r', provider_name)
logger.exception('Unexpected error in provider %r, discarding it', name)
self.discarded_providers.add(name)
continue
subtitles.extend(provider_subtitles)
return subtitles
def download_subtitle(self, subtitle):
"""Download `subtitle`'s :attr:`~subliminal.subtitle.Subtitle.content`.
:param subtitle: subtitle to download.
:type subtitle: :class:`~subliminal.subtitle.Subtitle`
:return: `True` if the subtitle has been successfully downloaded, `False` otherwise.
:rtype: bool
"""
# check discarded providers
if subtitle.provider_name in self.discarded_providers:
logger.warning('Provider %r is discarded', subtitle.provider_name)
return False
logger.info('Downloading subtitle %r', subtitle)
try:
self[subtitle.provider_name].download_subtitle(subtitle)
except (requests.Timeout, socket.timeout):
logger.error('Provider %r timed out, discarding it', subtitle.provider_name)
self.discarded_providers.add(subtitle.provider_name)
return False
except:
logger.exception('Unexpected error in provider %r, discarding it', subtitle.provider_name)
self.discarded_providers.add(subtitle.provider_name)
return False
# check subtitle validity
if not subtitle.is_valid():
logger.error('Invalid subtitle')
return False
return True
def download_best_subtitles(self, subtitles, video, languages, min_score=0, hearing_impaired=False, only_one=False,
scores=None):
"""Download the best matching subtitles.
:param subtitles: the subtitles to use.
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
:param video: video to download subtitles for.
:type video: :class:`~subliminal.video.Video`
:param languages: languages to download.
:type languages: set of :class:`~babelfish.language.Language`
:param int min_score: minimum score for a subtitle to be downloaded.
:param bool hearing_impaired: hearing impaired preference.
:param bool only_one: download only one subtitle, not one per language.
:param dict scores: scores to use, if `None`, the :attr:`~subliminal.video.Video.scores` from the video are
used.
:return: downloaded subtitles.
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
"""
# sort subtitles by score
scored_subtitles = sorted([(s, compute_score(s.get_matches(video, hearing_impaired=hearing_impaired), video,
scores=scores))
for s in subtitles], key=operator.itemgetter(1), reverse=True)
# download best subtitles, falling back on the next on error
downloaded_subtitles = []
for subtitle, score in scored_subtitles:
# check score
if score < min_score:
logger.info('Score %d is below min_score (%d)', (score, min_score))
break
# check downloaded languages
if subtitle.language in set(s.language for s in downloaded_subtitles):
logger.debug('Skipping subtitle: %r already downloaded', subtitle.language)
continue
# download
logger.info('Downloading subtitle %r with score %d', subtitle, score)
if self.download_subtitle(subtitle):
downloaded_subtitles.append(subtitle)
# stop when all languages are downloaded
if set(s.language for s in downloaded_subtitles) == languages:
logger.debug('All languages downloaded')
break
# stop if only one subtitle is requested
if only_one:
logger.debug('Only one subtitle downloaded')
break
return downloaded_subtitles
def terminate(self):
"""Terminate all the :attr:`initialized_providers`."""
logger.debug('Terminating initialized providers')
for name in list(self.initialized_providers):
del self[name]
def check_video(video, languages=None, age=None, undefined=False):
"""Perform some checks on the `video`.
All the checks are optional. Return `False` if any of this check fails:
* `languages` already exist in `video`'s :attr:`~subliminal.video.Video.subtitle_languages`.
* `video` is older than `age`.
* `video` has an `undefined` language in :attr:`~subliminal.video.Video.subtitle_languages`.
:param video: video to check.
:type video: :class:`~subliminal.video.Video`
:param languages: desired languages.
:type languages: set of :class:`~babelfish.language.Language`
:param datetime.timedelta age: maximum age of the video.
:param bool undefined: fail on existing undefined language.
:return: `True` if the video passes the checks, `False` otherwise.
:rtype: bool
"""
# language test
if languages and not (languages - video.subtitle_languages):
logger.debug('All languages %r exist', languages)
return False
# age test
if age and video.age > age:
logger.debug('Video is older than %r', age)
return False
# undefined test
if undefined and Language('und') in video.subtitle_languages:
logger.debug('Undefined language found')
return False
return True
def list_subtitles(videos, languages, **kwargs):
"""List subtitles.
The `videos` must pass the `languages` check of :func:`check_video`.
All other parameters are passed onwards to the :class:`ProviderPool` constructor.
:param videos: videos to list subtitles for.
:type videos: set of :class:`~subliminal.video.Video`
:param languages: languages to search for.
:type languages: set of :class:`~babelfish.language.Language`
:return: found subtitles per video.
:rtype: dict of :class:`~subliminal.video.Video` to list of :class:`~subliminal.subtitle.Subtitle`
"""
listed_subtitles = defaultdict(list)
# check videos
checked_videos = []
for video in videos:
if not check_video(video, languages=languages):
logger.info('Skipping video %r', video)
continue
checked_videos.append(video)
# return immediatly if no video passed the checks
if not checked_videos:
return listed_subtitles
# list subtitles
with ProviderPool(**kwargs) as pool:
for video in checked_videos:
logger.info('Listing subtitles for %r', video)
subtitles = pool.list_subtitles(video, languages - video.subtitle_languages)
listed_subtitles[video].extend(subtitles)
logger.info('Found %d subtitle(s)', len(subtitles))
return listed_subtitles
def download_subtitles(subtitles, **kwargs):
"""Download :attr:`~subliminal.subtitle.Subtitle.content` of `subtitles`.
All other parameters are passed onwards to the :class:`ProviderPool` constructor.
:param subtitles: subtitles to download.
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
"""
with ProviderPool(**kwargs) as pool:
for subtitle in subtitles:
logger.info('Downloading subtitle %r', subtitle)
pool.download_subtitle(subtitle)
def download_best_subtitles(videos, languages, min_score=0, hearing_impaired=False, only_one=False, scores=None,
**kwargs):
"""List and download the best matching subtitles.
The `videos` must pass the `languages` and `undefined` (`only_one`) checks of :func:`check_video`.
All other parameters are passed onwards to the :class:`ProviderPool` constructor.
:param videos: videos to download subtitles for.
:type videos: set of :class:`~subliminal.video.Video`
:param languages: languages to download.
:type languages: set of :class:`~babelfish.language.Language`
:param int min_score: minimum score for a subtitle to be downloaded.
:param bool hearing_impaired: hearing impaired preference.
:param bool only_one: download only one subtitle, not one per language.
:param dict scores: scores to use, if `None`, the :attr:`~subliminal.video.Video.scores` from the video are used.
:return: downloaded subtitles per video.
:rtype: dict of :class:`~subliminal.video.Video` to list of :class:`~subliminal.subtitle.Subtitle`
"""
downloaded_subtitles = defaultdict(list)
# check videos
checked_videos = []
for video in videos:
if not check_video(video, languages=languages, undefined=only_one):
logger.info('Skipping video %r')
continue
checked_videos.append(video)
# return immediatly if no video passed the checks
if not checked_videos:
return downloaded_subtitles
# download best subtitles
with ProviderPool(**kwargs) as pool:
for video in checked_videos:
logger.info('Downloading best subtitles for %r', video)
subtitles = pool.download_best_subtitles(pool.list_subtitles(video, languages - video.subtitle_languages),
video, languages, min_score=min_score,
hearing_impaired=hearing_impaired, only_one=only_one,
scores=scores)
logger.info('Downloaded %d subtitle(s)', len(subtitles))
downloaded_subtitles[video].extend(subtitles)
return downloaded_subtitles
def save_subtitles(video, subtitles, single=False, directory=None, encoding=None):
"""Save subtitles on filesystem.
Subtitles are saved in the order of the list. If a subtitle with a language has already been saved, other subtitles
with the same language are silently ignored.
The extension used is `.lang.srt` by default or `.srt` is `single` is `True`, with `lang` being the IETF code for
the :attr:`~subliminal.subtitle.Subtitle.language` of the subtitle.
:param video: video of the subtitles.
:type video: :class:`~subliminal.video.Video`
:param subtitles: subtitles to save.
:type subtitles: list of :class:`~subliminal.subtitle.Subtitle`
:param bool single: save a single subtitle, default is to save one subtitle per language.
:param str directory: path to directory where to save the subtitles, default is next to the video.
:param str encoding: encoding in which to save the subtitles, default is to keep original encoding.
:return: the saved subtitles
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
"""
saved_subtitles = []
for subtitle in subtitles:
# check content
if subtitle.content is None:
logger.error('Skipping subtitle %r: no content', subtitle)
continue
# check language
if subtitle.language in set(s.language for s in saved_subtitles):
logger.debug('Skipping subtitle %r: language already saved', subtitle)
continue
# create subtitle path
subtitle_path = get_subtitle_path(video.name, None if single else subtitle.language)
if directory is not None:
subtitle_path = os.path.join(directory, os.path.split(subtitle_path)[1])
# save content as is or in the specified encoding
logger.info('Saving %r to %r', subtitle, subtitle_path)
if encoding is None:
with io.open(subtitle_path, 'wb') as f:
f.write(subtitle.content)
else:
with io.open(subtitle_path, 'w', encoding=encoding) as f:
f.write(subtitle.text)
saved_subtitles.append(subtitle)
# check single
if single:
break
return saved_subtitles
+8 -47
View File
@@ -1,56 +1,17 @@
# -*- coding: utf-8 -*-
import inspect
from dogpile.cache import make_region # @UnresolvedImport
from dogpile.cache.backends.file import AbstractFileLock # @UnresolvedImport
from dogpile.cache.compat import string_type # @UnresolvedImport
from dogpile.core.readwrite_lock import ReadWriteMutex # @UnresolvedImport
import datetime
from dogpile.cache import make_region
#: Subliminal's cache version
CACHE_VERSION = 1
#: Expiration time for show caching
SHOW_EXPIRATION_TIME = datetime.timedelta(weeks=3).total_seconds()
def subliminal_key_generator(namespace, fn, to_str=string_type):
"""Add a :data:`CACHE_VERSION` to dogpile.cache's default function_key_generator"""
if namespace is None:
namespace = '%d:%s:%s' % (CACHE_VERSION, fn.__module__, fn.__name__)
else:
namespace = '%d:%s:%s|%s' % (CACHE_VERSION, fn.__module__, fn.__name__, namespace)
args = inspect.getargspec(fn)
has_self = args[0] and args[0][0] in ('self', 'cls')
def generate_key(*args, **kw):
if kw:
raise ValueError('Keyword arguments not supported')
if has_self:
args = args[1:]
return namespace + '|' + ' '.join(map(to_str, args))
return generate_key
#: Expiration time for episode caching
EPISODE_EXPIRATION_TIME = datetime.timedelta(days=3).total_seconds()
class MutexLock(AbstractFileLock):
""":class:`MutexLock` is a thread-based rw lock based on :class:`dogpile.core.ReadWriteMutex`"""
def __init__(self, filename):
self.mutex = ReadWriteMutex()
def acquire_read_lock(self, wait):
ret = self.mutex.acquire_read_lock(wait)
return wait or ret
def acquire_write_lock(self, wait):
ret = self.mutex.acquire_write_lock(wait)
return wait or ret
def release_read_lock(self):
return self.mutex.release_read_lock()
def release_write_lock(self):
return self.mutex.release_write_lock()
#: The dogpile.cache region (long-lived)
region = make_region(function_key_generator=subliminal_key_generator)
#: The dogpile.cache region for :meth:`~subliminal.providers.Provider.query` (short-lived)
query_region = make_region(function_key_generator=subliminal_key_generator)
region = make_region()
+291 -135
View File
@@ -1,167 +1,323 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals, print_function
import argparse
import datetime
"""
Subliminal uses `click <http://click.pocoo.org>`_ to provide a powerful :abbr:`CLI (command-line interface)`.
"""
from __future__ import unicode_literals, division
from collections import defaultdict
from datetime import timedelta
import logging
import os
import re
import sys
import babelfish
import guessit
import pkg_resources
from subliminal import (__version__, PROVIDERS_ENTRY_POINT, cache_region, MutexLock, Video, Episode, Movie, scan_videos,
download_best_subtitles)
try:
import colorlog
except ImportError:
colorlog = None
from babelfish import Error as BabelfishError, Language
import click
from dogpile.cache.backends.file import AbstractFileLock
from dogpile.core import ReadWriteMutex
from subliminal import (Episode, Movie, ProviderPool, Video, __version__, check_video, provider_manager, region,
save_subtitles, scan_video, scan_videos)
from subliminal.subtitle import compute_score
logger = logging.getLogger(__name__)
DEFAULT_CACHE_FILE = os.path.join('~', '.config', 'subliminal.cache.dbm')
class MutexLock(AbstractFileLock):
""":class:`MutexLock` is a thread-based rw lock based on :class:`dogpile.core.ReadWriteMutex`."""
def __init__(self, filename):
self.mutex = ReadWriteMutex()
def acquire_read_lock(self, wait):
ret = self.mutex.acquire_read_lock(wait)
return wait or ret
def acquire_write_lock(self, wait):
ret = self.mutex.acquire_write_lock(wait)
return wait or ret
def release_read_lock(self):
return self.mutex.release_read_lock()
def release_write_lock(self):
return self.mutex.release_write_lock()
def subliminal():
parser = argparse.ArgumentParser(prog='subliminal', description='Subtitles, faster than your thoughts',
epilog='Suggestions and bug reports are greatly appreciated: '
'https://github.com/Diaoul/subliminal/issues', add_help=False)
class StringPath(click.Path):
"""A :class:`~click.Path` as :class:`str`."""
def convert(self, value, param, ctx):
if isinstance(value, bytes):
try:
enc = getattr(sys.stdin, 'encoding', None)
if enc is not None:
value = value.decode(enc)
except UnicodeDecodeError:
try:
value = value.decode(click.utils.get_filesystem_encoding())
except UnicodeDecodeError:
self.fail('%s is not a correctly encoded path' % value.decode('utf-8', 'replace'))
return super(StringPath, self).convert(value, param, ctx)
# required arguments
required_arguments_group = parser.add_argument_group('required arguments')
required_arguments_group.add_argument('paths', nargs='+', metavar='PATH', help='path to video file or folder')
required_arguments_group.add_argument('-l', '--languages', nargs='+', required=True, metavar='LANGUAGE',
help='wanted languages as IETF codes e.g. fr, pt-BR, sr-Cyrl ')
# configuration
configuration_group = parser.add_argument_group('configuration')
configuration_group.add_argument('-s', '--single', action='store_true',
help='download without language code in subtitle\'s filename i.e. .srt only')
configuration_group.add_argument('-c', '--cache-file', default=DEFAULT_CACHE_FILE,
help='cache file (default: %(default)s)')
class LanguageParamType(click.ParamType):
""":class:`~click.ParamType` for languages that returns a :class:`~babelfish.language.Language`"""
name = 'language'
# filtering
filtering_group = parser.add_argument_group('filtering')
providers = [ep.name for ep in pkg_resources.iter_entry_points(PROVIDERS_ENTRY_POINT)]
filtering_group.add_argument('-p', '--providers', nargs='+', metavar='PROVIDER',
help='providers to use (%s)' % ', '.join(providers))
filtering_group.add_argument('-m', '--min-score', type=int,
help='minimum score for subtitles (0-%d for episodes, 0-%d for movies)'
% (Episode.scores['hash'], Movie.scores['hash']))
filtering_group.add_argument('-a', '--age', help='download subtitles for videos newer than AGE e.g. 12h, 1w2d')
filtering_group.add_argument('-h', '--hearing-impaired', action='store_true',
help='download hearing impaired subtitles')
filtering_group.add_argument('-f', '--force', action='store_true',
help='force subtitle download for videos with existing subtitles')
def convert(self, value, param, ctx):
try:
return Language.fromietf(value)
except BabelfishError:
self.fail('%s is not a valid language' % value)
# addic7ed
addic7ed_group = parser.add_argument_group('addic7ed')
addic7ed_group.add_argument('--addic7ed-username', metavar='USERNAME', help='username for addic7ed provider')
addic7ed_group.add_argument('--addic7ed-password', metavar='PASSWORD', help='password for addic7ed provider')
LANGUAGE = LanguageParamType()
# output
output_group = parser.add_argument_group('output')
output_exclusive_group = output_group.add_mutually_exclusive_group()
output_exclusive_group.add_argument('-q', '--quiet', action='store_true', help='disable output')
output_exclusive_group.add_argument('-v', '--verbose', action='store_true', help='verbose output')
output_group.add_argument('--color', action='store_true', help='add color to console output (requires colorlog)')
# troubleshooting
troubleshooting_group = parser.add_argument_group('troubleshooting')
troubleshooting_group.add_argument('--debug', action='store_true', help='debug output')
troubleshooting_group.add_argument('--version', action='version', version=__version__)
troubleshooting_group.add_argument('--help', action='help', help='show this help message and exit')
class AgeParamType(click.ParamType):
""":class:`~click.ParamType` for age strings that returns a :class:`~datetime.timedelta`
# parse args
args = parser.parse_args()
An age string is in the form `number + identifier` with possible identifiers:
# parse paths
try:
args.paths = [os.path.abspath(os.path.expanduser(p.decode('utf-8'))) for p in args.paths]
except UnicodeDecodeError:
parser.error('argument paths: encodings is not utf-8: %r' % args.paths)
* ``w`` for weeks
* ``d`` for days
* ``h`` for hours
# parse languages
try:
args.languages = {babelfish.Language.fromietf(l) for l in args.languages}
except babelfish.Error:
parser.error('argument -l/--languages: codes are not IETF: %r' % args.languages)
The form can be specified multiple times but only with that idenfier ordering. For example:
# parse age
if args.age is not None:
match = re.match(r'^(?:(?P<weeks>\d+?)w)?(?:(?P<days>\d+?)d)?(?:(?P<hours>\d+?)h)?$', args.age)
* ``1w2d4h`` for 1 week, 2 days and 4 hours
* ``2w`` for 2 weeks
* ``3w6h`` for 3 weeks and 6 hours
"""
name = 'age'
def convert(self, value, param, ctx):
match = re.match(r'^(?:(?P<weeks>\d+?)w)?(?:(?P<days>\d+?)d)?(?:(?P<hours>\d+?)h)?$', value)
if not match:
parser.error('argument -a/--age: invalid age: %r' % args.age)
args.age = datetime.timedelta(**{k: int(v) for k, v in match.groupdict(0).items()})
self.fail('%s is not a valid age' % value)
# parse cache-file
args.cache_file = os.path.abspath(os.path.expanduser(args.cache_file))
if not os.path.exists(os.path.split(args.cache_file)[0]):
parser.error('argument -c/--cache-file: directory %r for cache file does not exist'
% os.path.split(args.cache_file)[0])
return timedelta(**{k: int(v) for k, v in match.groupdict(0).items()})
# parse provider configs
provider_configs = {}
if (args.addic7ed_username is not None and args.addic7ed_password is None
or args.addic7ed_username is None and args.addic7ed_password is not None):
parser.error('argument --addic7ed-username/--addic7ed-password: both arguments are required or none')
if args.addic7ed_username is not None and args.addic7ed_password is not None:
provider_configs['addic7ed'] = {'username': args.addic7ed_username, 'password': args.addic7ed_password}
AGE = AgeParamType()
# parse color
if args.color and colorlog is None:
parser.error('argument --color: colorlog required')
PROVIDER = click.Choice(sorted(provider_manager.names()))
# setup output
if args.debug:
handler = logging.StreamHandler()
if args.color:
handler.setFormatter(colorlog.ColoredFormatter('%(log_color)s%(levelname)-8s%(reset)s [%(blue)s%(name)s-%(funcName)s:%(lineno)d%(reset)s] %(message)s',
log_colors=dict(colorlog.default_log_colors.items() + [('DEBUG', 'cyan')])))
else:
handler.setFormatter(logging.Formatter('%(levelname)-8s [%(name)s-%(funcName)s:%(lineno)d] %(message)s'))
logging.getLogger().addHandler(handler)
logging.getLogger().setLevel(logging.DEBUG)
elif args.verbose:
handler = logging.StreamHandler()
if args.color:
handler.setFormatter(colorlog.ColoredFormatter('%(log_color)s%(levelname)-8s%(reset)s [%(blue)s%(name)s%(reset)s] %(message)s'))
else:
handler.setFormatter(logging.Formatter('%(levelname)-8s [%(name)s] %(message)s'))
logging.getLogger('subliminal').addHandler(handler)
logging.getLogger('subliminal').setLevel(logging.INFO)
elif not args.quiet:
handler = logging.StreamHandler()
if args.color:
handler.setFormatter(colorlog.ColoredFormatter('[%(log_color)s%(levelname)s%(reset)s] %(message)s'))
else:
handler.setFormatter(logging.Formatter('%(levelname)s: %(message)s'))
logging.getLogger('subliminal.api').addHandler(handler)
logging.getLogger('subliminal.api').setLevel(logging.INFO)
subliminal_cache = 'subliminal.dbm'
@click.group(context_settings={'max_content_width': 100}, epilog='Suggestions and bug reports are greatly appreciated: '
'https://github.com/Diaoul/subliminal/')
@click.option('--addic7ed', type=click.STRING, nargs=2, metavar='USERNAME PASSWORD', help='Addic7ed configuration.')
@click.option('--cache-dir', type=click.Path(writable=True, resolve_path=True, file_okay=False),
default=click.get_app_dir('subliminal'), show_default=True, expose_value=True,
help='Path to the cache directory.')
@click.option('--debug', is_flag=True, help='Print useful information for debugging subliminal and for reporting bugs.')
@click.version_option(__version__)
@click.pass_context
def subliminal(ctx, addic7ed, cache_dir, debug):
"""Subtitles, faster than your thoughts."""
# create cache directory
try:
os.makedirs(cache_dir)
except OSError:
if not os.path.isdir(cache_dir):
raise
# configure cache
cache_region.configure('dogpile.cache.dbm', expiration_time=datetime.timedelta(days=30), # @UndefinedVariable
arguments={'filename': args.cache_file, 'lock_factory': MutexLock})
region.configure('dogpile.cache.dbm', expiration_time=timedelta(days=30),
arguments={'filename': os.path.join(cache_dir, subliminal_cache), 'lock_factory': MutexLock})
# configure logging
if debug:
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
logging.getLogger('subliminal').addHandler(handler)
logging.getLogger('subliminal').setLevel(logging.DEBUG)
# provider configs
ctx.obj = {'provider_configs': {}}
if addic7ed:
ctx.obj['provider_configs']['addic7ed'] = {'username': addic7ed[0], 'password': addic7ed[1]}
@subliminal.command()
@click.option('--clear-subliminal', is_flag=True, help='Clear subliminal\'s cache. Use this ONLY if your cache is '
'corrupted or if you experience issues.')
@click.pass_context
def cache(ctx, clear_subliminal):
"""Cache management."""
if clear_subliminal:
os.remove(os.path.join(ctx.parent.params['cache_dir'], subliminal_cache))
click.echo('Subliminal\'s cache cleared.')
else:
click.echo('Nothing done.')
@subliminal.command()
@click.option('-l', '--language', type=LANGUAGE, required=True, multiple=True, help='Language as IETF code, '
'e.g. en, pt-BR (can be used multiple times).')
@click.option('-p', '--provider', type=PROVIDER, multiple=True, help='Provider to use (can be used multiple times).')
@click.option('-a', '--age', type=AGE, help='Filter videos newer than AGE, e.g. 12h, 1w2d.')
@click.option('-d', '--directory', type=click.STRING, metavar='DIR', help='Directory where to save subtitles, '
'default is next to the video file.')
@click.option('-e', '--encoding', type=click.STRING, metavar='ENC', help='Subtitle file encoding, default is to '
'preserve original encoding.')
@click.option('-s', '--single', is_flag=True, default=False, help='Save subtitle without language code in the file '
'name, i.e. use .srt extension.')
@click.option('-f', '--force', is_flag=True, default=False, help='Force download even if a subtitle already exist.')
@click.option('-hi', '--hearing-impaired', is_flag=True, default=False, help='Prefer hearing impaired subtitles.')
@click.option('-m', '--min-score', type=click.IntRange(0, 100), default=0, help='Minimum score for a subtitle '
'to be downloaded (0 to 100).')
@click.option('-v', '--verbose', count=True, help='Increase verbosity.')
@click.argument('path', type=StringPath(), required=True, nargs=-1)
@click.pass_obj
def download(obj, provider, language, age, directory, encoding, single, force, hearing_impaired, min_score, verbose,
path):
"""Download best subtitles.
PATH can be an directory containing videos, a video file path or a video file name. It can be used multiple times.
If an existing subtitle is detected (external or embedded) in the correct language, the download is skipped for
the associated video.
"""
# process parameters
language = set(language)
# scan videos
videos = scan_videos([p for p in args.paths if os.path.exists(p)], subtitles=not args.force,
embedded_subtitles=not args.force, age=args.age)
videos = []
ignored_videos = []
errored_paths = []
with click.progressbar(path, label='Collecting videos', item_show_func=lambda p: p or '') as bar:
for p in bar:
logger.debug('Collecting path %s', p)
# guess videos
videos.extend([Video.fromguess(os.path.split(p)[1], guessit.guess_file_info(p, 'autodetect')) for p in args.paths
if not os.path.exists(p)])
# non-existing
if not os.path.exists(p):
try:
video = Video.fromname(p)
except:
logger.exception('Unexpected error while collecting non-existing path %s', p)
errored_paths.append(p)
continue
videos.append(video)
continue
# directories
if os.path.isdir(p):
try:
scanned_videos = scan_videos(p, subtitles=not force, embedded_subtitles=not force)
except:
logger.exception('Unexpected error while collecting directory path %s', p)
errored_paths.append(p)
continue
for video in scanned_videos:
if check_video(video, languages=language, age=age, undefined=single):
videos.append(video)
else:
ignored_videos.append(video)
continue
# other inputs
try:
video = scan_video(p, subtitles=not force, embedded_subtitles=not force)
except:
logger.exception('Unexpected error while collecting path %s', p)
errored_paths.append(p)
continue
if check_video(video, languages=language, age=age, undefined=single):
videos.append(video)
else:
ignored_videos.append(video)
# output errored paths
if verbose > 0:
for p in errored_paths:
click.secho('%s errored' % p, fg='red')
# output ignored videos
if verbose > 1:
for video in ignored_videos:
click.secho('%s ignored - subtitles: %s / age: %d day%s' % (
os.path.split(video.name)[1],
', '.join(str(s) for s in video.subtitle_languages) or 'none',
video.age.days,
's' if video.age.days > 1 else ''
), fg='yellow')
# report collected videos
click.echo('%s video%s collected / %s video%s ignored / %s error%s' % (
click.style(str(len(videos)), bold=True, fg='green' if videos else None),
's' if len(videos) > 1 else '',
click.style(str(len(ignored_videos)), bold=True, fg='yellow' if ignored_videos else None),
's' if len(ignored_videos) > 1 else '',
click.style(str(len(errored_paths)), bold=True, fg='red' if errored_paths else None),
's' if len(errored_paths) > 1 else '',
))
# exit if no video collected
if not videos:
return
# download best subtitles
subtitles = download_best_subtitles(videos, args.languages, providers=args.providers,
provider_configs=provider_configs, single=args.single,
min_score=args.min_score, hearing_impaired=args.hearing_impaired)
downloaded_subtitles = defaultdict(list)
with ProviderPool(providers=provider, provider_configs=obj['provider_configs']) as pool:
with click.progressbar(videos, label='Downloading subtitles',
item_show_func=lambda v: os.path.split(v.name)[1] if v is not None else '') as bar:
for v in bar:
subtitles = pool.download_best_subtitles(pool.list_subtitles(v, language - v.subtitle_languages),
v, language, min_score=v.scores['hash'] * min_score / 100,
hearing_impaired=hearing_impaired, only_one=single)
downloaded_subtitles[v] = subtitles
# result output
if not subtitles:
if not args.quiet:
sys.stderr.write('No subtitles downloaded\n')
exit(1)
if not args.quiet:
subtitles_count = sum([len(s) for s in subtitles.values()])
if subtitles_count == 1:
print('%d subtitle downloaded' % subtitles_count)
else:
print('%d subtitles downloaded' % subtitles_count)
# save subtitles
total_subtitles = 0
for v, subtitles in downloaded_subtitles.items():
saved_subtitles = save_subtitles(v, subtitles, single=single, directory=directory, encoding=encoding)
total_subtitles += len(saved_subtitles)
if verbose > 0:
click.echo('%s subtitle%s downloaded for %s' % (click.style(str(len(saved_subtitles)), bold=True),
's' if len(saved_subtitles) > 1 else '',
os.path.split(v.name)[1]))
if verbose > 1:
for s in saved_subtitles:
matches = s.get_matches(v, hearing_impaired=hearing_impaired)
score = compute_score(matches, v)
# score color
score_color = None
if isinstance(v, Movie):
if score < v.scores['title']:
score_color = 'red'
elif score < v.scores['title'] + v.scores['year'] + v.scores['release_group']:
score_color = 'yellow'
else:
score_color = 'green'
elif isinstance(v, Episode):
if score < v.scores['series'] + v.scores['season'] + v.scores['episode']:
score_color = 'red'
elif score < (v.scores['series'] + v.scores['season'] + v.scores['episode'] +
v.scores['release_group']):
score_color = 'yellow'
else:
score_color = 'green'
# scale score from 0 to 100 taking out preferences
scaled_score = score
if s.hearing_impaired == hearing_impaired:
scaled_score -= v.scores['hearing_impaired']
scaled_score *= 100 / v.scores['hash']
# echo some nice colored output
click.echo(' - [{score}] {language} subtitle from {provider_name} (match on {matches})'.format(
score=click.style('{:5.1f}'.format(scaled_score), fg=score_color, bold=score >= v.scores['hash']),
language=s.language.name if s.language.country is None else '%s (%s)' % (s.language.name,
s.language.country.name),
provider_name=s.provider_name,
matches=', '.join(sorted(matches, key=v.scores.get, reverse=True))
))
if verbose == 0:
click.echo('Downloaded %s subtitle%s' % (click.style(str(total_subtitles), bold=True),
's' if total_subtitles > 1 else ''))
+4 -2
View File
@@ -1,11 +1,11 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from babelfish import LanguageReverseConverter, get_language_converter
from babelfish import LanguageReverseConverter, language_converters
class Addic7edConverter(LanguageReverseConverter):
def __init__(self):
self.name_converter = get_language_converter('name')
self.name_converter = language_converters['name']
self.from_addic7ed = {'Català': ('cat',), 'Chinese (Simplified)': ('zho',), 'Chinese (Traditional)': ('zho',),
'Euskera': ('eus',), 'Galego': ('glg',), 'Greek': ('ell',), 'Malay': ('msa',),
'Portuguese (Brazilian)': ('por', 'BR'), 'Serbian (Cyrillic)': ('srp', None, 'Cyrl'),
@@ -23,9 +23,11 @@ class Addic7edConverter(LanguageReverseConverter):
return self.to_addic7ed[(alpha3, country)]
if (alpha3,) in self.to_addic7ed:
return self.to_addic7ed[(alpha3,)]
return self.name_converter.convert(alpha3, country, script)
def reverse(self, addic7ed):
if addic7ed in self.from_addic7ed:
return self.from_addic7ed[addic7ed]
return self.name_converter.reverse(addic7ed)
-32
View File
@@ -1,32 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from babelfish import LanguageReverseConverter, LanguageConvertError, LanguageReverseError
class PodnapisiConverter(LanguageReverseConverter):
def __init__(self):
self.from_podnapisi = {2: ('eng',), 28: ('spa',), 26: ('pol',), 36: ('srp',), 1: ('slv',), 38: ('hrv',),
9: ('ita',), 8: ('fra',), 48: ('por', 'BR'), 23: ('nld',), 12: ('ara',), 13: ('ron',),
33: ('bul',), 32: ('por',), 16: ('ell',), 15: ('hun',), 31: ('fin',), 30: ('tur',),
7: ('ces',), 25: ('swe',), 27: ('rus',), 24: ('dan',), 22: ('heb',), 51: ('vie',),
52: ('fas',), 5: ('deu',), 14: ('spa', 'AR'), 54: ('ind',), 47: ('srp', None, 'Cyrl'),
3: ('nor',), 20: ('est',), 10: ('bos',), 17: ('zho',), 37: ('slk',), 35: ('mkd',),
11: ('jpn',), 4: ('kor',), 29: ('sqi',), 6: ('isl',), 19: ('lit',), 46: ('ukr',),
44: ('tha',), 53: ('cat',), 56: ('sin',), 21: ('lav',), 40: ('cmn',), 55: ('msa',),
42: ('hin',), 50: ('bel',)}
self.to_podnapisi = {v: k for k, v in self.from_podnapisi.items()}
self.codes = set(self.from_podnapisi.keys())
def convert(self, alpha3, country=None, script=None):
if (alpha3,) in self.to_podnapisi:
return self.to_podnapisi[(alpha3,)]
if (alpha3, country) in self.to_podnapisi:
return self.to_podnapisi[(alpha3, country)]
if (alpha3, country, script) in self.to_podnapisi:
return self.to_podnapisi[(alpha3, country, script)]
raise LanguageConvertError(alpha3, country, script)
def reverse(self, podnapisi):
if podnapisi not in self.from_podnapisi:
raise LanguageReverseError(podnapisi)
return self.from_podnapisi[podnapisi]
+5 -3
View File
@@ -1,14 +1,14 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from babelfish import LanguageReverseConverter, get_language_converter
from babelfish import LanguageReverseConverter, language_converters
class TVsubtitlesConverter(LanguageReverseConverter):
def __init__(self):
self.alpha2_converter = get_language_converter('alpha2')
self.alpha2_converter = language_converters['alpha2']
self.from_tvsubtitles = {'br': ('por', 'BR'), 'ua': ('ukr',), 'gr': ('ell',), 'cn': ('zho',), 'jp': ('jpn',),
'cz': ('ces',)}
self.to_tvsubtitles = {v: k for k, v in self.from_tvsubtitles}
self.to_tvsubtitles = {v: k for k, v in self.from_tvsubtitles.items()}
self.codes = self.alpha2_converter.codes | set(self.from_tvsubtitles.keys())
def convert(self, alpha3, country=None, script=None):
@@ -16,9 +16,11 @@ class TVsubtitlesConverter(LanguageReverseConverter):
return self.to_tvsubtitles[(alpha3, country)]
if (alpha3,) in self.to_tvsubtitles:
return self.to_tvsubtitles[(alpha3,)]
return self.alpha2_converter.convert(alpha3, country, script)
def reverse(self, tvsubtitles):
if tvsubtitles in self.from_tvsubtitles:
return self.from_tvsubtitles[tvsubtitles]
return self.alpha2_converter.reverse(tvsubtitles)
+8 -8
View File
@@ -3,25 +3,25 @@ from __future__ import unicode_literals
class Error(Exception):
"""Base class for exceptions in subliminal"""
"""Base class for exceptions in subliminal."""
pass
class ProviderError(Error):
"""Exception raised by providers"""
"""Exception raised by providers."""
pass
class ProviderConfigurationError(ProviderError):
"""Exception raised by providers when badly configured"""
class ConfigurationError(ProviderError):
"""Exception raised by providers when badly configured."""
pass
class ProviderNotAvailable(ProviderError):
"""Exception raised by providers when unavailable"""
class AuthenticationError(ProviderError):
"""Exception raised by providers when authentication failed."""
pass
class InvalidSubtitle(ProviderError):
"""Exception raised by providers when the downloaded subtitle is invalid"""
class DownloadLimitExceeded(ProviderError):
"""Exception raised by providers when download limit is exceeded."""
pass
+95 -53
View File
@@ -1,19 +1,77 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import babelfish
import logging
from bs4 import BeautifulSoup, FeatureNotFound
from six.moves.xmlrpc_client import SafeTransport
from ..video import Episode, Movie
logger = logging.getLogger(__name__)
def get_version(version):
"""Put the `version` in the major.minor form.
:param str version: the full version.
:return: the major.minor form of the `version`.
:rtype: str
"""
return '.'.join(version.split('.')[:2])
class TimeoutSafeTransport(SafeTransport):
"""Timeout support for ``xmlrpc.client.SafeTransport``."""
def __init__(self, timeout, *args, **kwargs):
SafeTransport.__init__(self, *args, **kwargs)
self.timeout = timeout
def make_connection(self, host):
c = SafeTransport.make_connection(self, host)
c.timeout = self.timeout
return c
class ParserBeautifulSoup(BeautifulSoup):
"""A ``bs4.BeautifulSoup`` that picks the first parser available in `parsers`.
:param markup: markup for the ``bs4.BeautifulSoup``.
:param list parsers: parser names, in order of preference
"""
def __init__(self, markup, parsers, **kwargs):
# reject features
if set(parsers).intersection({'fast', 'permissive', 'strict', 'xml', 'html', 'html5'}):
raise ValueError('Features not allowed, only parser names')
# reject some kwargs
if 'features' in kwargs:
raise ValueError('Cannot use features kwarg')
if 'builder' in kwargs:
raise ValueError('Cannot use builder kwarg')
# pick the first parser available
for parser in parsers:
try:
super(ParserBeautifulSoup, self).__init__(markup, parser, **kwargs)
return
except FeatureNotFound:
pass
raise FeatureNotFound
class Provider(object):
"""Base class for providers
"""Base class for providers.
If any configuration is possible for the provider, like credentials, it must take place during instantiation
If any configuration is possible for the provider, like credentials, it must take place during instantiation.
:param \*\*kwargs: configuration
:raise: :class:`~subliminal.exceptions.ProviderConfigurationError` if there is a configuration error
:raise: :class:`~subliminal.exceptions.ConfigurationError` if there is a configuration error
"""
#: Supported BabelFish languages
#: Supported set of :class:`~babelfish.language.Language`
languages = set()
#: Supported video types
@@ -22,53 +80,46 @@ class Provider(object):
#: Required hash, if any
required_hash = None
def __init__(self, **kwargs):
pass
def __enter__(self):
self.initialize()
return self
def __exit__(self, *args):
def __exit__(self, exc_type, exc_value, traceback):
self.terminate()
def initialize(self):
"""Initialize the provider
"""Initialize the provider.
Must be called when starting to work with the provider. This is the place for network initialization
or login operations.
.. note:
This is called automatically if you use the :keyword:`with` statement
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
.. note::
This is called automatically when entering the :keyword:`with` statement
"""
pass
raise NotImplementedError
def terminate(self):
"""Terminate the provider
"""Terminate the provider.
Must be called when done with the provider. This is the place for network shutdown or logout operations.
.. note:
This is called automatically if you use the :keyword:`with` statement
.. note::
This is called automatically when exiting the :keyword:`with` statement
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
"""
pass
raise NotImplementedError
@classmethod
def check(cls, video):
"""Check if the `video` can be processed
"""Check if the `video` can be processed.
The video is considered invalid if not an instance of :attr:`video_types` or if the :attr:`required_hash` is
not present in :attr:`~subliminal.video.Video`'s `hashes` attribute.
The `video` is considered invalid if not an instance of :attr:`video_types` or if the :attr:`required_hash` is
not present in :attr:`~subliminal.video.Video.hashes` attribute of the `video`.
:param video: the video to check
:param video: the video to check.
:type video: :class:`~subliminal.video.Video`
:return: `True` if the `video` and `languages` are valid, `False` otherwise
:return: `True` if the `video` is valid, `False` otherwise.
:rtype: bool
"""
@@ -76,53 +127,44 @@ class Provider(object):
return False
if cls.required_hash is not None and cls.required_hash not in video.hashes:
return False
return True
def query(self, languages, *args, **kwargs):
"""Query the provider for subtitles
def query(self, *args, **kwargs):
"""Query the provider for subtitles.
This method arguments match as much as possible the actual parameters for querying the provider
Arguments should match as much as possible the actual parameters for querying the provider
:param languages: languages to search for
:type languages: set of :class:`babelfish.Language`
:param \*args: other required arguments
:param \*\*kwargs: other optional arguments
:return: the subtitles
:return: found subtitles.
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
:raise: :class:`~subliminal.exceptions.ProviderError` if something unexpected occured
:raise: :class:`~subliminal.exceptions.ProviderError`
"""
raise NotImplementedError
def list_subtitles(self, video, languages):
"""List subtitles for the `video` with the given `languages`
"""List subtitles for the `video` with the given `languages`.
This is a proxy for the :meth:`query` method. The parameters passed to the :meth:`query` method may
vary depending on the amount of information available in the `video`
This will call the :meth:`query` method internally. The parameters passed to the :meth:`query` method may
vary depending on the amount of information available in the `video`.
:param video: video to list subtitles for
:param video: video to list subtitles for.
:type video: :class:`~subliminal.video.Video`
:param languages: languages to search for
:type languages: set of :class:`babelfish.Language`
:return: the subtitles
:param languages: languages to search for.
:type languages: set of :class:`~babelfish.language.Language`
:return: found subtitles.
:rtype: list of :class:`~subliminal.subtitle.Subtitle`
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
:raise: :class:`~subliminal.exceptions.ProviderError` if something unexpected occured
:raise: :class:`~subliminal.exceptions.ProviderError`
"""
raise NotImplementedError
def download_subtitle(self, subtitle):
"""Download the `subtitle`
"""Download `subtitle`'s :attr:`~subliminal.subtitle.Subtitle.content`.
:param subtitle: subtitle to download
:param subtitle: subtitle to download.
:type subtitle: :class:`~subliminal.subtitle.Subtitle`
:return: the subtitle text
:rtype: string
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable` if the provider is unavailable
:raise: :class:`~subliminal.exceptions.InvalidSubtitle` if the downloaded subtitle is invalid
:raise: :class:`~subliminal.exceptions.ProviderError` if something unexpected occured
:raise: :class:`~subliminal.exceptions.ProviderError`
"""
raise NotImplementedError
+191 -114
View File
@@ -1,38 +1,46 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import logging
import babelfish
import bs4
import charade
import requests
from . import Provider
import re
from babelfish import Language
from requests import Session
from . import ParserBeautifulSoup, Provider, get_version
from .. import __version__
from ..cache import region
from ..exceptions import ProviderConfigurationError, ProviderNotAvailable, InvalidSubtitle
from ..subtitle import Subtitle, is_valid_subtitle
from ..cache import SHOW_EXPIRATION_TIME, region
from ..exceptions import AuthenticationError, ConfigurationError, DownloadLimitExceeded
from ..subtitle import Subtitle, fix_line_ending, guess_matches, guess_properties
from ..video import Episode
logger = logging.getLogger(__name__)
series_year_re = re.compile('^(?P<series>[ \w]+)(?: \((?P<year>\d{4})\))?$')
class Addic7edSubtitle(Subtitle):
provider_name = 'addic7ed'
def __init__(self, language, series, season, episode, title, version, hearing_impaired, download_link, referer):
super(Addic7edSubtitle, self).__init__(language, hearing_impaired)
def __init__(self, language, hearing_impaired, page_link, series, season, episode, title, year, version,
download_link):
super(Addic7edSubtitle, self).__init__(language, hearing_impaired, page_link)
self.series = series
self.season = season
self.episode = episode
self.title = title
self.year = year
self.version = version
self.download_link = download_link
self.referer = referer
def compute_matches(self, video):
matches = set()
@property
def id(self):
return self.download_link
def get_matches(self, video, hearing_impaired=False):
matches = super(Addic7edSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
# series
if video.series and self.series == video.series:
if video.series and self.series.lower() == video.series.lower():
matches.add('series')
# season
if video.season and self.season == video.season:
@@ -43,152 +51,221 @@ class Addic7edSubtitle(Subtitle):
# title
if video.title and self.title.lower() == video.title.lower():
matches.add('title')
# year
if video.year == self.year:
matches.add('year')
# release_group
if video.release_group and self.version and video.release_group.lower() in self.version.lower():
matches.add('release_group')
# resolution
if video.resolution and self.version and video.resolution in self.version.lower():
matches.add('resolution')
# format
if video.format and self.version and video.format.lower() in self.version.lower():
matches.add('format')
# other properties
matches |= guess_matches(video, guess_properties(self.version), partial=True)
return matches
class Addic7edProvider(Provider):
languages = {babelfish.Language('por', 'BR')} | {babelfish.Language(l)
for l in ['ara', 'aze', 'ben', 'bos', 'bul', 'cat', 'ces', 'dan', 'deu', 'ell', 'eng', 'eus', 'fas',
'fin', 'fra', 'glg', 'heb', 'hrv', 'hun', 'hye', 'ind', 'ita', 'jpn', 'kor', 'mkd', 'msa',
'nld', 'nor', 'pol', 'por', 'ron', 'rus', 'slk', 'slv', 'spa', 'sqi', 'srp', 'swe', 'tha',
'tur', 'ukr', 'vie', 'zho']}
languages = {Language('por', 'BR')} | {Language(l) for l in [
'ara', 'aze', 'ben', 'bos', 'bul', 'cat', 'ces', 'dan', 'deu', 'ell', 'eng', 'eus', 'fas', 'fin', 'fra', 'glg',
'heb', 'hrv', 'hun', 'hye', 'ind', 'ita', 'jpn', 'kor', 'mkd', 'msa', 'nld', 'nor', 'pol', 'por', 'ron', 'rus',
'slk', 'slv', 'spa', 'sqi', 'srp', 'swe', 'tha', 'tur', 'ukr', 'vie', 'zho'
]}
video_types = (Episode,)
server = 'http://www.addic7ed.com'
server_url = 'http://www.addic7ed.com/'
def __init__(self, username=None, password=None):
if username is not None and password is None or username is None and password is not None:
raise ProviderConfigurationError('Username and password must be specified')
raise ConfigurationError('Username and password must be specified')
self.username = username
self.password = password
self.logged_in = False
def initialize(self):
self.session = requests.Session()
self.session.headers = {'User-Agent': 'Subliminal/%s' % __version__}
self.session = Session()
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
# login
if self.username is not None and self.password is not None:
logger.debug('Logging in')
logger.info('Logging in')
data = {'username': self.username, 'password': self.password, 'Submit': 'Log in'}
try:
r = self.session.post(self.server + '/dologin.php', data, timeout=10, allow_redirects=False)
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code == 302:
logger.info('Logged in')
self.logged_in = True
else:
logger.error('Failed to login')
r = self.session.post(self.server_url + 'dologin.php', data, allow_redirects=False, timeout=10)
if r.status_code != 302:
raise AuthenticationError(self.username)
logger.debug('Logged in')
self.logged_in = True
def terminate(self):
# logout
if self.logged_in:
try:
r = self.session.get(self.server + '/logout.php', timeout=10)
logger.info('Logged out')
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code != 200:
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
logger.info('Logging out')
r = self.session.get(self.server_url + 'logout.php', timeout=10)
r.raise_for_status()
logger.debug('Logged out')
self.logged_in = False
self.session.close()
def get(self, url, params=None):
"""Make a GET request on `url` with the given parameters
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
def _get_show_ids(self):
"""Get the ``dict`` of show ids per series by querying the `shows.php` page.
:param string url: part of the URL to reach with the leading slash
:param params: params of the request
:return: the response
:rtype: :class:`bs4.BeautifulSoup`
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable`
"""
try:
r = self.session.get(self.server + url, params=params, timeout=10)
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code != 200:
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
return bs4.BeautifulSoup(r.content, ['permissive'])
@region.cache_on_arguments()
def get_show_ids(self):
"""Load the shows page with default series to show ids mapping
:return: series to show ids
:return: show id per series, lower case and without quotes.
:rtype: dict
"""
soup = self.get('/shows.php')
# get the show page
logger.info('Getting show ids')
r = self.session.get(self.server_url + 'shows.php', timeout=10)
r.raise_for_status()
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
# populate the show ids
show_ids = {}
for html_show in soup.select('td.version > h3 > a[href^="/show/"]'):
show_ids[html_show.string.lower()] = int(html_show['href'][6:])
for show in soup.select('td.version > h3 > a[href^="/show/"]'):
show_ids[show.text.lower().replace('\'', '')] = int(show['href'][6:])
logger.debug('Found %d show ids', len(show_ids))
return show_ids
@region.cache_on_arguments()
def find_show_id(self, series):
"""Find a show id from the series
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
def _search_show_id(self, series, year=None):
"""Search the show id from the `series` and `year`.
Use this only if the series is not in the dict returned by :meth:`get_show_ids`
:param string series: series of the episode
:return: the show id, if any
:param string series: series of the episode.
:param year: year of the series, if any.
:type year: int or None
:return: the show id, if found.
:rtype: int or None
"""
params = {'search': series, 'Submit': 'Search'}
logger.debug('Searching series %r', params)
suggested_shows = self.get('/search.php', params).select('span.titulo > a[href^="/show/"]')
if not suggested_shows:
logger.info('Series %r not found', series)
return None
return int(suggested_shows[0]['href'][6:])
# build the params
series_year = '%s (%d)' % (series, year) if year is not None else series
params = {'search': series_year, 'Submit': 'Search'}
def query(self, series, season):
show_ids = self.get_show_ids()
if series.lower() in show_ids:
show_id = show_ids[series.lower()]
else:
show_id = self.find_show_id(series.lower())
if show_id is None:
return []
params = {'show_id': show_id, 'season': season}
logger.debug('Searching subtitles %r', params)
link = '/show/{show_id}&season={season}'.format(**params)
soup = self.get(link)
# make the search
logger.info('Searching show ids with %r', params)
r = self.session.get(self.server_url + 'search.php', params=params, timeout=10)
r.raise_for_status()
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
# get the suggestion
suggestion = soup.select('span.titulo > a[href^="/show/"]')
if not suggestion:
logger.warning('Show id not found: no suggestion')
return None
if not suggestion[0].i.text.lower() == series_year.lower():
logger.warning('Show id not found: suggestion does not match')
return None
show_id = int(suggestion[0]['href'][6:])
logger.debug('Found show id %d', show_id)
return show_id
def get_show_id(self, series, year=None, country_code=None):
"""Get the best matching show id for `series`, `year` and `country_code`.
First search in the result of :meth:`_get_show_ids` and fallback on a search with :meth:`_search_show_id`
:param str series: series of the episode.
:param year: year of the series, if any.
:type year: int or None
:param country_code: country code of the series, if any.
:type country_code: str or None
:return: the show id, if found.
:rtype: int or None
"""
series_clean = series.lower().replace('\'', '')
show_ids = self._get_show_ids()
show_id = None
# attempt with country
if not show_id and country_code:
logger.debug('Getting show id with country')
show_id = show_ids.get('%s (%s)' % (series_clean, country_code.lower()))
# attempt with year
if not show_id and year:
logger.debug('Getting show id with year')
show_id = show_ids.get('%s (%d)' % (series_clean, year))
# attempt clean
if not show_id:
logger.debug('Getting show id')
show_id = show_ids.get(series_clean)
# search as last resort
if not show_id:
logger.warning('Series not found in show ids')
show_id = self._search_show_id(series)
return show_id
def query(self, series, season, year=None, country=None):
# get the show id
show_id = self.get_show_id(series, year, country)
if show_id is None:
logger.error('No show id found for %r (%r)', series, {'year': year, 'country': country})
return []
# get the page of the season of the show
logger.info('Getting the page of show id %d, season %d', show_id, season)
r = self.session.get(self.server_url + 'show/%d' % show_id, params={'season': season}, timeout=10)
r.raise_for_status()
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
# loop over subtitle rows
match = series_year_re.match(soup.select('#header font')[0].text.strip()[:-10])
series = match.group('series')
year = int(match.group('year')) if match.group('year') else None
subtitles = []
for row in soup('tr', class_='epeven completed'):
for row in soup.select('tr.epeven'):
cells = row('td')
if cells[5].string != 'Completed':
logger.debug('Skipping incomplete subtitle')
# ignore incomplete subtitles
status = cells[5].text
if status != 'Completed':
logger.debug('Ignoring subtitle with status %s', status)
continue
if not cells[3].string:
logger.debug('Skipping empty language')
continue
subtitles.append(Addic7edSubtitle(babelfish.Language.fromaddic7ed(cells[3].string), series, season,
int(cells[1].string), cells[2].string, cells[4].string,
bool(cells[6].string), cells[9].a['href'], link))
# read the item
language = Language.fromaddic7ed(cells[3].text)
hearing_impaired = bool(cells[6].text)
page_link = self.server_url + cells[2].a['href'][1:]
season = int(cells[0].text)
episode = int(cells[1].text)
title = cells[2].text
version = cells[4].text
download_link = cells[9].a['href'][1:]
subtitle = Addic7edSubtitle(language, hearing_impaired, page_link, series, season, episode, title, year,
version, download_link)
logger.debug('Found subtitle %r', subtitle)
subtitles.append(subtitle)
return subtitles
def list_subtitles(self, video, languages):
return [s for s in self.query(video.series, video.season)
return [s for s in self.query(video.series, video.season, video.year)
if s.language in languages and s.episode == video.episode]
def download_subtitle(self, subtitle):
try:
r = self.session.get(self.server + subtitle.download_link, timeout=10,
headers={'Referer': self.server + subtitle.referer})
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code != 200:
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
# download the subtitle
logger.info('Downloading subtitle %r', subtitle)
r = self.session.get(self.server_url + subtitle.download_link, headers={'Referer': subtitle.page_link},
timeout=10)
r.raise_for_status()
# detect download limit exceeded
if r.headers['Content-Type'] == 'text/html':
raise ProviderNotAvailable('Download limit exceeded')
subtitle_text = r.content.decode(charade.detect(r.content)['encoding'], 'replace')
if not is_valid_subtitle(subtitle_text):
raise InvalidSubtitle
return subtitle_text
raise DownloadLimitExceeded
subtitle.content = fix_line_ending(r.content)
-135
View File
@@ -1,135 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import logging
import urllib
import babelfish
import charade
import guessit
import requests
import xml.etree.ElementTree
from . import Provider
from .. import __version__
from ..cache import region
from ..exceptions import InvalidSubtitle, ProviderNotAvailable, ProviderError
from ..subtitle import Subtitle, is_valid_subtitle, compute_guess_matches
from ..video import Episode
logger = logging.getLogger(__name__)
class BierDopjeSubtitle(Subtitle):
provider_name = 'bierdopje'
def __init__(self, language, season, episode, tvdb_id, series, filename, download_link):
super(BierDopjeSubtitle, self).__init__(language)
self.season = season
self.episode = episode
self.tvdb_id = tvdb_id
self.series = series
self.filename = filename
self.download_link = download_link
def compute_matches(self, video):
matches = set()
# tvdb_id
if video.tvdb_id and self.tvdb_id == video.tvdb_id:
matches.add('tvdb_id')
# series
if video.series and self.series == video.series:
matches.add('series')
# season
if video.season and self.season == video.season:
matches.add('season')
# episode
if video.episode and self.episode == video.episode:
matches.add('episode')
matches |= compute_guess_matches(video, guessit.guess_episode_info(self.filename + '.mkv'))
return matches
class BierDopjeProvider(Provider):
languages = {babelfish.Language(l) for l in ['eng', 'nld']}
video_types = (Episode,)
def initialize(self):
self.session = requests.Session()
self.session.headers = {'User-Agent': 'Subliminal/%s' % __version__}
def terminate(self):
self.session.close()
def get(self, url, **params):
"""Make a GET request on the `url` formatted with `**params`
:param string url: API part of the URL to reach without the leading slash
:param \*\*params: format specs for the `url`
:return: the response
:rtype: :class:`xml.etree.ElementTree.Element`
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable`
"""
try:
r = self.session.get('http://api.bierdopje.com/A2B638AC5D804C2E/' + url.format(**params), timeout=10)
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code == 429:
raise ProviderNotAvailable('Too Many Requests')
elif r.status_code != 200:
raise ProviderError('Request failed with status code %d' % r.status_code)
return xml.etree.ElementTree.fromstring(r.content)
@region.cache_on_arguments()
def find_show_id(self, series):
"""Find the show id from series name
:param string series: series of the episode
:return: show id
:rtype: int
"""
logger.debug('Searching for series %r', series)
root = self.get('FindShowByName/{series}', series=urllib.quote(series))
if root.find('response/status').text == 'false':
logger.info('Series %r not found', series)
return None
return int(root.find('response/results/result[1]/showid').text)
def query(self, language, season, episode, tvdb_id=None, series=None):
params = {'language': language.alpha2, 'season': season, 'episode': episode}
if tvdb_id is not None:
params['showid'] = tvdb_id
params['istvdbid'] = 'true'
elif series is not None:
show_id = self.find_show_id(series)
if show_id is None:
return []
params['showid'] = show_id
params['istvdbid'] = 'false'
else:
raise ValueError('Missing parameter tvdb_id or series')
logger.debug('Searching subtitles %r', params)
root = self.get('GetAllSubsFor/{showid}/{season}/{episode}/{language}/{istvdbid}', **params)
if root.find('response/status').text == 'false':
logger.debug('No subtitle found')
return []
logger.debug('Found subtitles %r', root.find('response/results'))
return [BierDopjeSubtitle(language, season, episode, tvdb_id, series, result.find('filename').text,
result.find('downloadlink').text) for result in root.find('response/results')]
def list_subtitles(self, video, languages):
return [s for l in languages for s in self.query(l, video.season, video.episode, video.tvdb_id, video.series)]
def download_subtitle(self, subtitle):
try:
r = self.session.get(subtitle.download_link, timeout=10)
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code == 429:
raise ProviderNotAvailable('Too Many Requests')
elif r.status_code != 200:
raise ProviderError('Request failed with status code %d' % r.status_code)
subtitle_text = r.content.decode(charade.detect(r.content)['encoding'], 'replace')
if not is_valid_subtitle(subtitle_text):
raise InvalidSubtitle
return subtitle_text
+173 -77
View File
@@ -4,17 +4,17 @@ import base64
import logging
import os
import re
import xmlrpclib
import zlib
import babelfish
import charade
import guessit
from . import Provider
from .. import __version__
from ..exceptions import ProviderError, ProviderNotAvailable, InvalidSubtitle
from ..subtitle import Subtitle, is_valid_subtitle, compute_guess_matches
from ..video import Episode, Movie
from babelfish import Language, language_converters
from guessit import guess_episode_info, guess_movie_info
from six.moves.xmlrpc_client import ServerProxy
from . import Provider, TimeoutSafeTransport, get_version
from .. import __version__
from ..exceptions import AuthenticationError, DownloadLimitExceeded, ProviderError
from ..subtitle import Subtitle, fix_line_ending, guess_matches
from ..video import Episode, Movie
logger = logging.getLogger(__name__)
@@ -23,10 +23,10 @@ class OpenSubtitlesSubtitle(Subtitle):
provider_name = 'opensubtitles'
series_re = re.compile('^"(?P<series_name>.*)" (?P<series_title>.*)$')
def __init__(self, language, hearing_impaired, id, matched_by, movie_kind, hash, movie_name, movie_release_name, # @ReservedAssignment
movie_year, movie_imdb_id, series_season, series_episode):
super(OpenSubtitlesSubtitle, self).__init__(language, hearing_impaired)
self.id = id
def __init__(self, language, hearing_impaired, page_link, subtitle_id, matched_by, movie_kind, hash, movie_name,
movie_release_name, movie_year, movie_imdb_id, series_season, series_episode):
super(OpenSubtitlesSubtitle, self).__init__(language, hearing_impaired, page_link)
self.subtitle_id = subtitle_id
self.matched_by = matched_by
self.movie_kind = movie_kind
self.hash = hash
@@ -37,6 +37,10 @@ class OpenSubtitlesSubtitle(Subtitle):
self.series_season = series_season
self.series_episode = series_episode
@property
def id(self):
return str(self.subtitle_id)
@property
def series_name(self):
return self.series_re.match(self.movie_name).group('series_name')
@@ -45,8 +49,9 @@ class OpenSubtitlesSubtitle(Subtitle):
def series_title(self):
return self.series_re.match(self.movie_name).group('series_title')
def compute_matches(self, video):
matches = set()
def get_matches(self, video, hearing_impaired=False):
matches = super(OpenSubtitlesSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
# episode
if isinstance(video, Episode) and self.movie_kind == 'episode':
# series
@@ -58,102 +63,193 @@ class OpenSubtitlesSubtitle(Subtitle):
# episode
if video.episode and self.series_episode == video.episode:
matches.add('episode')
# title
if video.title and self.series_title.lower() == video.title.lower():
matches.add('title')
# guess
matches |= compute_guess_matches(video, guessit.guess_episode_info(self.movie_release_name + '.mkv'))
matches |= guess_matches(video, guess_episode_info(self.movie_release_name + '.mkv'))
# movie
elif isinstance(video, Movie) and self.movie_kind == 'movie':
# title
if video.title and self.movie_name.lower() == video.title.lower():
matches.add('title')
# year
if video.year and self.movie_year == video.year:
matches.add('year')
# guess
matches |= compute_guess_matches(video, guessit.guess_movie_info(self.movie_release_name + '.mkv'))
matches |= guess_matches(video, guess_movie_info(self.movie_release_name + '.mkv'))
else:
logger.info('%r is not a valid movie_kind for %r', self.movie_kind, video)
logger.info('%r is not a valid movie_kind', self.movie_kind)
return matches
# hash
if 'opensubtitles' in video.hashes and self.hash == video.hashes['opensubtitles']:
matches.add('hash')
# imdb_id
if video.imdb_id and self.movie_imdb_id == video.imdb_id:
matches.add('imdb_id')
# title
if video.title and self.movie_name.lower() == video.title.lower():
matches.add('title')
return matches
class OpenSubtitlesProvider(Provider):
languages = {babelfish.Language.fromopensubtitles(l) for l in babelfish.get_language_converter('opensubtitles').codes}
languages = {Language.fromopensubtitles(l) for l in language_converters['opensubtitles'].codes}
def __init__(self):
self.server = xmlrpclib.ServerProxy('http://api.opensubtitles.org/xml-rpc')
self.server = ServerProxy('https://api.opensubtitles.org/xml-rpc', TimeoutSafeTransport(10))
self.token = None
def initialize(self):
try:
response = self.server.LogIn('', '', 'eng', 'subliminal v%s' % __version__)
except xmlrpclib.ProtocolError:
raise ProviderNotAvailable
if response['status'] != '200 OK':
raise ProviderError('Login failed with status %r' % response['status'])
logger.info('Logging in')
response = checked(self.server.LogIn('', '', 'eng', 'subliminal v%s' % get_version(__version__)))
self.token = response['token']
logger.debug('Logged in with token %r', self.token)
def terminate(self):
try:
response = self.server.LogOut(self.token)
except xmlrpclib.ProtocolError:
raise ProviderNotAvailable
if response['status'] != '200 OK':
raise ProviderError('Logout failed with status %r' % response['status'])
logger.info('Logging out')
checked(self.server.LogOut(self.token))
self.server.close()
logger.debug('Logged out')
def query(self, languages, hash=None, size=None, imdb_id=None, query=None): # @ReservedAssignment
searches = []
def no_operation(self):
logger.debug('No operation')
checked(self.server.NoOperation(self.token))
def query(self, languages, hash=None, size=None, imdb_id=None, query=None, season=None, episode=None):
# fill the search criteria
criteria = []
if hash and size:
searches.append({'moviehash': hash, 'moviebytesize': str(size)})
criteria.append({'moviehash': hash, 'moviebytesize': str(size)})
if imdb_id:
searches.append({'imdbid': imdb_id})
if query:
searches.append({'query': query})
if not searches:
raise ValueError('One or more parameter missing')
for search in searches:
search['sublanguageid'] = ','.join(l.opensubtitles for l in languages)
logger.debug('Searching subtitles %r', searches)
try:
response = self.server.SearchSubtitles(self.token, searches)
except xmlrpclib.ProtocolError:
raise ProviderNotAvailable
if response['status'] != '200 OK':
raise ProviderError('Search failed with status %r' % response['status'])
criteria.append({'imdbid': imdb_id})
if query and season and episode:
criteria.append({'query': query, 'season': season, 'episode': episode})
elif query:
criteria.append({'query': query})
if not criteria:
raise ValueError('Not enough information')
# add the language
for criterion in criteria:
criterion['sublanguageid'] = ','.join(sorted(l.opensubtitles for l in languages))
# query the server
logger.info('Searching subtitles %r', criteria)
response = checked(self.server.SearchSubtitles(self.token, criteria))
subtitles = []
# exit if no data
if not response['data']:
logger.debug('No subtitle found')
return []
return [OpenSubtitlesSubtitle(babelfish.Language.fromopensubtitles(r['SubLanguageID']),
bool(int(r['SubHearingImpaired'])), r['IDSubtitleFile'], r['MatchedBy'],
r['MovieKind'], r['MovieHash'], r['MovieName'], r['MovieReleaseName'],
int(r['MovieYear']) if r['MovieYear'] else None, int(r['IDMovieImdb']),
int(r['SeriesSeason']) if r['SeriesSeason'] else None,
int(r['SeriesEpisode']) if r['SeriesEpisode'] else None)
for r in response['data']]
logger.info('No subtitles found')
return subtitles
# loop over subtitle items
for subtitle_item in response['data']:
# read the item
language = Language.fromopensubtitles(subtitle_item['SubLanguageID'])
hearing_impaired = bool(int(subtitle_item['SubHearingImpaired']))
page_link = subtitle_item['SubtitlesLink']
subtitle_id = int(subtitle_item['IDSubtitleFile'])
matched_by = subtitle_item['MatchedBy']
movie_kind = subtitle_item['MovieKind']
hash = subtitle_item['MovieHash']
movie_name = subtitle_item['MovieName']
movie_release_name = subtitle_item['MovieReleaseName']
movie_year = int(subtitle_item['MovieYear']) if subtitle_item['MovieYear'] else None
movie_imdb_id = int(subtitle_item['IDMovieImdb'])
series_season = int(subtitle_item['SeriesSeason']) if subtitle_item['SeriesSeason'] else None
series_episode = int(subtitle_item['SeriesEpisode']) if subtitle_item['SeriesEpisode'] else None
subtitle = OpenSubtitlesSubtitle(language, hearing_impaired, page_link, subtitle_id, matched_by, movie_kind,
hash, movie_name, movie_release_name, movie_year, movie_imdb_id,
series_season, series_episode)
logger.debug('Found subtitle %r', subtitle)
subtitles.append(subtitle)
return subtitles
def list_subtitles(self, video, languages):
query = None
if ('opensubtitles' not in video.hashes or not video.size) and not video.imdb_id:
query = season = episode = None
if isinstance(video, Episode):
query = video.series
season = video.season
episode = video.episode
elif ('opensubtitles' not in video.hashes or not video.size) and not video.imdb_id:
query = video.name.split(os.sep)[-1]
return self.query(languages, hash=video.hashes.get('opensubtitles'), size=video.size, imdb_id=video.imdb_id,
query=query)
query=query, season=season, episode=episode)
def download_subtitle(self, subtitle):
try:
response = self.server.DownloadSubtitles(self.token, [subtitle.id])
except xmlrpclib.ProtocolError:
raise ProviderNotAvailable
if response['status'] != '200 OK':
raise ProviderError('Download failed with status %r' % response['status'])
if not response['data']:
raise ProviderError('Nothing to download')
subtitle_bytes = zlib.decompress(base64.b64decode(response['data'][0]['data']), 47)
subtitle_text = subtitle_bytes.decode(charade.detect(subtitle_bytes)['encoding'], 'replace')
if not is_valid_subtitle(subtitle_text):
raise InvalidSubtitle
return subtitle_text
logger.info('Downloading subtitle %r', subtitle)
response = checked(self.server.DownloadSubtitles(self.token, [str(subtitle.subtitle_id)]))
subtitle.content = fix_line_ending(zlib.decompress(base64.b64decode(response['data'][0]['data']), 47))
class OpenSubtitlesError(ProviderError):
"""Base class for non-generic :class:`OpenSubtitlesProvider` exceptions."""
pass
class Unauthorized(OpenSubtitlesError, AuthenticationError):
"""Exception raised when status is '401 Unauthorized'."""
pass
class NoSession(OpenSubtitlesError, AuthenticationError):
"""Exception raised when status is '406 No session'."""
pass
class DownloadLimitReached(OpenSubtitlesError, DownloadLimitExceeded):
"""Exception raised when status is '407 Download limit reached'."""
pass
class InvalidImdbid(OpenSubtitlesError):
"""Exception raised when status is '413 Invalid ImdbID'."""
pass
class UnknownUserAgent(OpenSubtitlesError, AuthenticationError):
"""Exception raised when status is '414 Unknown User Agent'."""
pass
class DisabledUserAgent(OpenSubtitlesError, AuthenticationError):
"""Exception raised when status is '415 Disabled user agent'."""
pass
class ServiceUnavailable(OpenSubtitlesError):
"""Exception raised when status is '503 Service Unavailable'."""
pass
def checked(response):
"""Check a response status before returning it.
:param response: a response from a XMLRPC call to OpenSubtitles.
:return: the response.
:raise: :class:`OpenSubtitlesError`
"""
status_code = int(response['status'][:3])
if status_code == 401:
raise Unauthorized
if status_code == 406:
raise NoSession
if status_code == 407:
raise DownloadLimitReached
if status_code == 413:
raise InvalidImdbid
if status_code == 414:
raise UnknownUserAgent
if status_code == 415:
raise DisabledUserAgent
if status_code == 503:
raise ServiceUnavailable
if status_code != 200:
raise OpenSubtitlesError(response['status'])
return response
+110 -100
View File
@@ -3,19 +3,24 @@ from __future__ import unicode_literals
import io
import logging
import re
import xml.etree.ElementTree
import zipfile
import babelfish
import bs4
import charade
import guessit
import requests
from . import Provider
from .. import __version__
from ..exceptions import InvalidSubtitle, ProviderNotAvailable, ProviderError
from ..subtitle import Subtitle, is_valid_subtitle, compute_guess_matches
from ..video import Episode, Movie
from babelfish import Language, language_converters
from guessit import guess_episode_info, guess_movie_info
try:
from lxml import etree
except ImportError:
try:
import xml.etree.cElementTree as etree
except ImportError:
import xml.etree.ElementTree as etree
from requests import Session
from zipfile import ZipFile
from . import Provider, get_version
from .. import __version__
from ..exceptions import ProviderError
from ..subtitle import Subtitle, fix_line_ending, guess_matches
from ..video import Episode, Movie
logger = logging.getLogger(__name__)
@@ -23,25 +28,27 @@ logger = logging.getLogger(__name__)
class PodnapisiSubtitle(Subtitle):
provider_name = 'podnapisi'
def __init__(self, language, id, releases, hearing_impaired, link, series=None, season=None, episode=None, # @ReservedAssignment
title=None, year=None):
super(PodnapisiSubtitle, self).__init__(language, hearing_impaired)
self.id = id
def __init__(self, language, hearing_impaired, page_link, pid, releases, title, season=None, episode=None,
year=None):
super(PodnapisiSubtitle, self).__init__(language, hearing_impaired, page_link)
self.pid = pid
self.releases = releases
self.hearing_impaired = hearing_impaired
self.link = link
self.series = series
self.title = title
self.season = season
self.episode = episode
self.title = title
self.year = year
def compute_matches(self, video):
matches = set()
@property
def id(self):
return self.pid
def get_matches(self, video, hearing_impaired=False):
matches = super(PodnapisiSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
# episode
if isinstance(video, Episode):
# series
if video.series and self.series.lower() == video.series.lower():
if video.series and self.title.lower() == video.series.lower():
matches.add('series')
# season
if video.season and self.season == video.season:
@@ -51,113 +58,116 @@ class PodnapisiSubtitle(Subtitle):
matches.add('episode')
# guess
for release in self.releases:
matches |= compute_guess_matches(video, guessit.guess_episode_info(release + '.mkv'))
matches |= guess_matches(video, guess_episode_info(release + '.mkv'))
# movie
elif isinstance(video, Movie):
# title
if video.title and self.title.lower() == video.title.lower():
matches.add('title')
# year
if video.year and self.year == video.year:
matches.add('year')
# guess
for release in self.releases:
matches |= compute_guess_matches(video, guessit.guess_movie_info(release + '.mkv'))
matches |= guess_matches(video, guess_movie_info(release + '.mkv'))
# year
if video.year and self.year == video.year:
matches.add('year')
return matches
class PodnapisiProvider(Provider):
languages = {babelfish.Language.frompodnapisi(l) for l in babelfish.get_language_converter('podnapisi').codes}
languages = ({Language('por', 'BR'), Language('srp', script='Latn')} |
{Language.fromalpha2(l) for l in language_converters['alpha2'].codes})
video_types = (Episode, Movie)
server = 'http://simple.podnapisi.net'
link_re = re.compile('^.*(?P<link>/ppodnapisi/download/i/\d+/k/.*$)')
server_url = 'http://podnapisi.net/subtitles/'
def initialize(self):
self.session = requests.Session()
self.session.headers = {'User-Agent': 'Subliminal/%s' % __version__}
self.session = Session()
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
def terminate(self):
self.session.close()
def get(self, url, params=None, is_xml=True):
"""Make a GET request on `url` with the given parameters
:param string url: part of the URL to reach with the leading slash
:param dict params: params of the request
:param bool xml: whether the response content is XML or not
:return: the response
:rtype: :class:`xml.etree.ElementTree.Element` or :class:`bs4.BeautifulSoup`
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable`
"""
try:
r = self.session.get(self.server + '/ppodnapisi' + url, params=params, timeout=10)
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code != 200:
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
if is_xml:
return xml.etree.ElementTree.fromstring(r.content)
else:
return bs4.BeautifulSoup(r.content, ['permissive'])
def query(self, language, series=None, season=None, episode=None, title=None, year=None):
params = {'sXML': 1, 'sJ': language.podnapisi}
if series and season and episode:
params['sK'] = series
def query(self, language, keyword, season=None, episode=None, year=None):
# set parameters, see http://www.podnapisi.net/forum/viewtopic.php?f=62&t=26164#p212652
params = {'sXML': 1, 'sL': str(language), 'sK': keyword}
is_episode = False
if season and episode:
is_episode = True
params['sTS'] = season
params['sTE'] = episode
elif title:
params['sK'] = title
if year:
params['sY'] = year
else:
raise ValueError('Missing parameters series and season and episode or title')
logger.debug('Searching episode %r', params)
if year:
params['sY'] = year
# loop over paginated results
logger.info('Searching subtitles %r', params)
subtitles = []
pids = set()
while True:
root = self.get('/search', params)
if not int(root.find('pagination/results').text):
logger.debug('No subtitle found')
# query the server
xml = etree.fromstring(self.session.get(self.server_url + 'search/old', params=params, timeout=10).content)
# exit if no results
if not int(xml.find('pagination/results').text):
logger.debug('No subtitles found')
break
if series and season and episode:
subtitles.extend([PodnapisiSubtitle(language, int(s.find('id').text), s.find('release').text.split(),
'h' in (s.find('flags').text or ''), s.find('url').text[38:],
series=series, season=season, episode=episode)
for s in root.findall('subtitle')])
elif title:
subtitles.extend([PodnapisiSubtitle(language, int(s.find('id').text), s.find('release').text.split(),
'h' in (s.find('flags').text or ''), s.find('url').text[38:],
title=title, year=year)
for s in root.findall('subtitle')])
if int(root.find('pagination/current').text) >= int(root.find('pagination/count').text):
# loop over subtitles
for subtitle_xml in xml.findall('subtitle'):
# read xml elements
language = Language.fromietf(subtitle_xml.find('language').text)
hearing_impaired = 'n' in (subtitle_xml.find('flags').text or '')
page_link = subtitle_xml.find('url').text
pid = subtitle_xml.find('pid').text
releases = []
if subtitle_xml.find('release').text:
for release in subtitle_xml.find('release').text.split():
releases.append(re.sub(r'\.+$', '', release)) # remove trailing dots
title = subtitle_xml.find('title').text
season = int(subtitle_xml.find('tvSeason').text)
episode = int(subtitle_xml.find('tvEpisode').text)
year = int(subtitle_xml.find('year').text)
if is_episode:
subtitle = PodnapisiSubtitle(language, hearing_impaired, page_link, pid, releases, title,
season=season, episode=episode, year=year)
else:
subtitle = PodnapisiSubtitle(language, hearing_impaired, page_link, pid, releases, title,
year=year)
# ignore duplicates, see http://www.podnapisi.net/forum/viewtopic.php?f=62&t=26164&start=10#p213321
if pid in pids:
continue
logger.debug('Found subtitle %r', subtitle)
subtitles.append(subtitle)
pids.add(pid)
# stop on last page
if int(xml.find('pagination/current').text) >= int(xml.find('pagination/count').text):
break
params['page'] = int(root.find('pagination/current').text) + 1
# increment current page
params['page'] = int(xml.find('pagination/current').text) + 1
logger.debug('Getting page %d', params['page'])
return subtitles
def list_subtitles(self, video, languages):
if isinstance(video, Episode):
return [s for l in languages for s in self.query(l, series=video.series, season=video.season,
episode=video.episode)]
return [s for l in languages for s in self.query(l, video.series, season=video.season,
episode=video.episode, year=video.year)]
elif isinstance(video, Movie):
return [s for l in languages for s in self.query(l, title=video.title, year=video.year)]
return [s for l in languages for s in self.query(l, video.title, year=video.year)]
def download_subtitle(self, subtitle):
soup = self.get(subtitle.link, is_xml=False)
link = soup.find('a', href=self.link_re)
if not link:
raise ProviderError('Cannot find the download link')
try:
r = self.session.get(self.server + self.link_re.match(link['href']).group('link'), timeout=10)
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code != 200:
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
with zipfile.ZipFile(io.BytesIO(r.content)) as zf:
# download as a zip
logger.info('Downloading subtitle %r')
r = self.session.get(self.server_url + subtitle.pid + '/download', params={'container': 'zip'}, timeout=10)
r.raise_for_status()
# open the zip
with ZipFile(io.BytesIO(r.content)) as zf:
if len(zf.namelist()) > 1:
raise ProviderError('More than one file to unzip')
subtitle_bytes = zf.read(zf.namelist()[0])
subtitle_text = subtitle_bytes.decode(charade.detect(subtitle_bytes)['encoding'], 'replace')
if not is_valid_subtitle(subtitle_text):
raise InvalidSubtitle
return subtitle_text
subtitle.content = fix_line_ending(zf.read(zf.namelist()[0]))
+43 -42
View File
@@ -1,13 +1,13 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import logging
import babelfish
import charade
import requests
from . import Provider
from babelfish import Language
from requests import Session
from . import Provider, get_version
from .. import __version__
from ..exceptions import InvalidSubtitle, ProviderNotAvailable, ProviderError
from ..subtitle import Subtitle, is_valid_subtitle
from ..subtitle import Subtitle, fix_line_ending
logger = logging.getLogger(__name__)
@@ -16,66 +16,67 @@ logger = logging.getLogger(__name__)
class TheSubDBSubtitle(Subtitle):
provider_name = 'thesubdb'
def __init__(self, language, hash): # @ReservedAssignment
def __init__(self, language, hash):
super(TheSubDBSubtitle, self).__init__(language)
self.hash = hash
def compute_matches(self, video):
matches = set()
@property
def id(self):
return self.hash
def get_matches(self, video, hearing_impaired=False):
matches = super(TheSubDBSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
# hash
if 'thesubdb' in video.hashes and video.hashes['thesubdb'] == self.hash:
matches.add('hash')
return matches
class TheSubDBProvider(Provider):
languages = {babelfish.Language.fromalpha2(l) for l in ['en', 'es', 'fr', 'it', 'nl', 'pl', 'pt', 'ro', 'sv', 'tr']}
languages = {Language.fromalpha2(l) for l in ['en', 'es', 'fr', 'it', 'nl', 'pl', 'pt', 'ro', 'sv', 'tr']}
required_hash = 'thesubdb'
server_url = 'http://api.thesubdb.com/'
def initialize(self):
self.session = requests.Session()
self.session = Session()
self.session.headers = {'User-Agent': 'SubDB/1.0 (subliminal/%s; https://github.com/Diaoul/subliminal)' %
__version__}
get_version(__version__)}
def terminate(self):
self.session.close()
def get(self, params):
"""Make a GET request on the server with the given parameters
:param params: params of the request
:return: the response
:rtype: :class:`requests.Response`
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable`
"""
try:
r = self.session.get('http://api.thesubdb.com', params=params, timeout=10)
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
return r
def query(self, hash): # @ReservedAssignment
def query(self, hash):
# make the query
params = {'action': 'search', 'hash': hash}
logger.debug('Searching subtitles %r', params)
r = self.get(params)
logger.info('Searching subtitles %r', params)
r = self.session.get(self.server_url, params=params, timeout=10)
# handle subtitles not found and errors
if r.status_code == 404:
logger.debug('No subtitle found')
logger.debug('No subtitles found')
return []
elif r.status_code != 200:
raise ProviderError('Request failed with status code %d' % r.status_code)
return [TheSubDBSubtitle(language, hash) for language in
{babelfish.Language.fromalpha2(l) for l in r.content.split(',')}]
r.raise_for_status()
# loop over languages
subtitles = []
for language_code in r.text.split(','):
language = Language.fromalpha2(language_code)
subtitle = TheSubDBSubtitle(language, hash)
logger.info('Found subtitle %r', subtitle)
subtitles.append(subtitle)
return subtitles
def list_subtitles(self, video, languages):
return [s for s in self.query(video.hashes['thesubdb']) if s.language in languages]
def download_subtitle(self, subtitle):
logger.info('Downloading subtitle %r')
params = {'action': 'download', 'hash': subtitle.hash, 'language': subtitle.language.alpha2}
r = self.get(params)
if r.status_code != 200:
raise ProviderError('Request failed with status code %d' % r.status_code)
subtitle_text = r.content.decode(charade.detect(r.content)['encoding'], 'replace')
if not is_valid_subtitle(subtitle_text):
raise InvalidSubtitle
return subtitle_text
r = self.session.get(self.server_url, params=params, timeout=10)
r.raise_for_status()
subtitle.content = fix_line_ending(r.content)
+133 -106
View File
@@ -3,38 +3,46 @@ from __future__ import unicode_literals
import io
import logging
import re
import zipfile
import babelfish
import bs4
import charade
import requests
from . import Provider
from zipfile import ZipFile
from babelfish import Language
from requests import Session
from . import ParserBeautifulSoup, Provider, get_version
from .. import __version__
from ..cache import region
from ..exceptions import InvalidSubtitle, ProviderNotAvailable, ProviderError
from ..subtitle import Subtitle, is_valid_subtitle
from ..cache import EPISODE_EXPIRATION_TIME, SHOW_EXPIRATION_TIME, region
from ..exceptions import ProviderError
from ..subtitle import Subtitle, fix_line_ending, guess_matches, guess_properties
from ..video import Episode
logger = logging.getLogger(__name__)
link_re = re.compile('^(?P<series>.+?)(?: \(?\d{4}\)?| \((?:US|UK)\))? \((?P<first_year>\d{4})-\d{4}\)$')
episode_id_re = re.compile('^episode-\d+\.html$')
class TVsubtitlesSubtitle(Subtitle):
provider_name = 'tvsubtitles'
def __init__(self, language, series, season, episode, id, rip, release): # @ReservedAssignment
super(TVsubtitlesSubtitle, self).__init__(language)
def __init__(self, language, page_link, subtitle_id, series, season, episode, year, rip, release):
super(TVsubtitlesSubtitle, self).__init__(language, page_link=page_link)
self.subtitle_id = subtitle_id
self.series = series
self.season = season
self.episode = episode
self.id = id
self.year = year
self.rip = rip
self.release = release
def compute_matches(self, video):
matches = set()
@property
def id(self):
return str(self.subtitle_id)
def get_matches(self, video, hearing_impaired=False):
matches = super(TVsubtitlesSubtitle, self).get_matches(video, hearing_impaired=hearing_impaired)
# series
if video.series and self.series == video.series:
if video.series and self.series.lower() == video.series.lower():
matches.add('series')
# season
if video.season and self.season == video.season:
@@ -42,134 +50,153 @@ class TVsubtitlesSubtitle(Subtitle):
# episode
if video.episode and self.episode == video.episode:
matches.add('episode')
# year
if self.year == video.year:
matches.add('year')
# release_group
if video.release_group and self.release and video.release_group.lower() in self.release.lower():
matches.add('release_group')
# video_codec
if video.video_codec and self.release and (video.video_codec in self.release.lower()
or video.video_codec == 'h264' and 'x264' in self.release.lower()):
matches.add('video_codec')
# resolution
if video.resolution and self.rip and video.resolution in self.rip.lower():
matches.add('resolution')
# other properties
if self.release:
matches |= guess_matches(video, guess_properties(self.release), partial=True)
if self.rip:
matches |= guess_matches(video, guess_properties(self.rip), partial=True)
return matches
class TVsubtitlesProvider(Provider):
languages = {babelfish.Language('por', 'BR')} | {babelfish.Language(l)
for l in ['ara', 'bul', 'ces', 'dan', 'deu', 'ell', 'eng', 'fin', 'fra', 'hun', 'ita', 'jpn', 'kor',
'nld', 'pol', 'por', 'ron', 'rus', 'spa', 'swe', 'tur', 'ukr', 'zho']}
languages = {Language('por', 'BR')} | {Language(l) for l in [
'ara', 'bul', 'ces', 'dan', 'deu', 'ell', 'eng', 'fin', 'fra', 'hun', 'ita', 'jpn', 'kor', 'nld', 'pol', 'por',
'ron', 'rus', 'spa', 'swe', 'tur', 'ukr', 'zho'
]}
video_types = (Episode,)
server = 'http://www.tvsubtitles.net'
episode_id_re = re.compile('^episode-\d+\.html$')
subtitle_re = re.compile('^\/subtitle-\d+\.html$')
link_re = re.compile('^(?P<series>.+) \(\d{4}-\d{4}\)$')
server_url = 'http://www.tvsubtitles.net/'
def initialize(self):
self.session = requests.Session()
self.session.headers = {'User-Agent': 'Subliminal/%s' % __version__}
self.session = Session()
self.session.headers = {'User-Agent': 'Subliminal/%s' % get_version(__version__)}
def terminate(self):
self.session.close()
def request(self, url, params=None, data=None, method='GET'):
"""Make a `method` request on `url` with the given parameters
@region.cache_on_arguments(expiration_time=SHOW_EXPIRATION_TIME)
def search_show_id(self, series, year=None):
"""Search the show id from the `series` and `year`.
:param string url: part of the URL to reach with the leading slash
:param dict params: params of the request
:param dict data: data of the request
:param string method: method of the request
:return: the response
:rtype: :class:`bs4.BeautifulSoup`
:raise: :class:`~subliminal.exceptions.ProviderNotAvailable`
"""
try:
r = self.session.request(method, self.server + url, params=params, data=data, timeout=10)
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code != 200:
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
return bs4.BeautifulSoup(r.content, ['permissive'])
@region.cache_on_arguments()
def find_show_id(self, series):
"""Find a show id from the series
:param string series: series of the episode
:return: the show id, if any
:param string series: series of the episode.
:param year: year of the series, if any.
:type year: int or None
:return: the show id, if any.
:rtype: int or None
"""
data = {'q': series}
logger.debug('Searching series %r', data)
soup = self.request('/search.php', data=data, method='POST')
links = soup.select('div.left li div a[href^="/tvshow-"]')
if not links:
logger.info('Series %r not found', series)
return None
for link in links:
match = self.link_re.match(link.string)
# make the search
logger.info('Searching show id for %r', series)
r = self.session.post(self.server_url + 'search.php', data={'q': series}, timeout=10)
r.raise_for_status()
# get the series out of the suggestions
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
show_id = None
for suggestion in soup.select('div.left li div a[href^="/tvshow-"]'):
match = link_re.match(suggestion.text)
if not match:
logger.warning('Could not parse %r', link.string)
logger.error('Failed to match %s', suggestion.text)
continue
if match.group('series').lower().replace('.', ' ').strip() == series.lower():
return int(link['href'][8:-5])
return int(links[0]['href'][8:-5])
@region.cache_on_arguments()
def find_episode_ids(self, show_id, season):
"""Find episode ids from the show id and the season
if match.group('series').lower() == series.lower():
if year is not None and int(match.group('first_year')) != year:
logger.debug('Year does not match')
continue
show_id = int(suggestion['href'][8:-5])
logger.debug('Found show id %d', show_id)
break
:param int show_id: show id
:param int season: season of the episode
:return: episode ids per episode number
return show_id
@region.cache_on_arguments(expiration_time=EPISODE_EXPIRATION_TIME)
def get_episode_ids(self, show_id, season):
"""Get episode ids from the show id and the season.
:param int show_id: show id.
:param int season: season of the episode.
:return: episode ids per episode number.
:rtype: dict
"""
params = {'show_id': show_id, 'season': season}
logger.debug('Searching episodes %r', params)
soup = self.request('/tvshow-{show_id}-{season}.html'.format(**params))
# get the page of the season of the show
logger.info('Getting the page of show id %d, season %d', show_id, season)
r = self.session.get(self.server_url + 'tvshow-%d-%d.html' % (show_id, season), timeout=10)
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
# loop over episode rows
episode_ids = {}
for row in soup.select('table#table5 tr'):
if not row('a', href=self.episode_id_re):
# skip rows that do not have a link to the episode page
if not row('a', href=episode_id_re):
continue
# extract data from the cells
cells = row('td')
episode_ids[int(cells[0].string.split('x')[1])] = int(cells[1].a['href'][8:-5])
episode = int(cells[0].text.split('x')[1])
episode_id = int(cells[1].a['href'][8:-5])
episode_ids[episode] = episode_id
if episode_ids:
logger.debug('Found episode ids %r', episode_ids)
else:
logger.warning('No episode ids found')
return episode_ids
def query(self, series, season, episode):
show_id = self.find_show_id(series.lower())
def query(self, series, season, episode, year=None):
# search the show id
show_id = self.search_show_id(series, year)
if show_id is None:
logger.error('No show id found for %r (%r)', series, {'year': year})
return []
episode_ids = self.find_episode_ids(show_id, season)
# get the episode ids
episode_ids = self.get_episode_ids(show_id, season)
if episode not in episode_ids:
logger.info('Episode %d not found', episode)
logger.error('Episode %d not found', episode)
return []
params = {'episode_id': episode_ids[episode]}
logger.debug('Searching episode %r', params)
soup = self.request('/episode-{episode_id}.html'.format(**params))
return [TVsubtitlesSubtitle(babelfish.Language.fromtvsubtitles(row.h5.img['src'][13:-4]), series, season,
episode, row['href'][10:-5], row.find('p', title='rip').text.strip() or None,
row.find('p', title='release').text.strip() or None)
for row in soup('a', href=self.subtitle_re)]
# get the episode page
logger.info('Getting the page for episode %d', episode_ids[episode])
r = self.session.get(self.server_url + 'episode-%d.html' % episode_ids[episode], timeout=10)
soup = ParserBeautifulSoup(r.content, ['lxml', 'html.parser'])
# loop over subtitles rows
subtitles = []
for row in soup.select('.subtitlen'):
# read the item
language = Language.fromtvsubtitles(row.h5.img['src'][13:-4])
subtitle_id = int(row.parent['href'][10:-5])
page_link = self.server_url + 'subtitle-%d.html' % subtitle_id
rip = row.find('p', title='rip').text.strip() or None
release = row.find('p', title='release').text.strip() or None
subtitle = TVsubtitlesSubtitle(language, page_link, subtitle_id, series, season, episode, year, rip,
release)
logger.info('Found subtitle %s', subtitle)
subtitles.append(subtitle)
return subtitles
def list_subtitles(self, video, languages):
return [s for s in self.query(video.series, video.season, video.episode) if s.language in languages]
return [s for s in self.query(video.series, video.season, video.episode, video.year) if s.language in languages]
def download_subtitle(self, subtitle):
try:
r = self.session.get(self.server + '/download-{subtitle_id}.html'.format(subtitle_id=subtitle.id),
timeout=10)
except requests.Timeout:
raise ProviderNotAvailable('Timeout after 10 seconds')
if r.status_code != 200:
raise ProviderNotAvailable('Request failed with status code %d' % r.status_code)
with zipfile.ZipFile(io.BytesIO(r.content)) as zf:
# download as a zip
logger.info('Downloading subtitle %r', subtitle)
r = self.session.get(self.server_url + 'download-%d.html' % subtitle.subtitle_id, timeout=10)
r.raise_for_status()
# open the zip
with ZipFile(io.BytesIO(r.content)) as zf:
if len(zf.namelist()) > 1:
raise ProviderError('More than one file to unzip')
subtitle_bytes = zf.read(zf.namelist()[0])
subtitle_text = subtitle_bytes.decode(charade.detect(subtitle_bytes)['encoding'], 'replace')
if not is_valid_subtitle(subtitle_text):
raise InvalidSubtitle
return subtitle_text
subtitle.content = fix_line_ending(zf.read(zf.namelist()[0]))
+101 -60
View File
@@ -1,84 +1,125 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import print_function, unicode_literals
from sympy import Eq, symbols, solve
"""
This module is responsible for calculating the :attr:`~subliminal.video.Video.scores` dicts
(:attr:`Episode.scores <subliminal.video.Episode.scores>` and :attr:`Movie.scores <subliminal.video.Movie.scores>`)
by assigning a score to a match.
.. note::
To avoid unnecessary dependency on `sympy <http://www.sympy.org/>`_ and boost subliminal's import time, the
resulting scores are hardcoded in their respective classes and manually updated when the set of equations change.
Available matches:
* hearing_impaired
* format
* release_group
* resolution
* video_codec
* audio_codec
* imdb_id
* hash
* title
* year
* series
* season
* episode
* tvdb_id
The :meth:`Subtitle.get_matches <subliminal.subtitle.Subtitle.get_matches>` method get the matches between the
:class:`~subliminal.subtitle.Subtitle` and the :class:`~subliminal.video.Video` and
:func:`~subliminal.subtitle.compute_score` computes the score.
"""
from __future__ import unicode_literals, print_function
from sympy import Eq, solve, symbols
# Symbols
release_group, resolution, video_codec, audio_codec = symbols('release_group resolution video_codec audio_codec')
imdb_id, hash, title, series, tvdb_id, season, episode = symbols('imdb_id hash title series tvdb_id season episode') # @ReservedAssignment
year = symbols('year')
hearing_impaired, format, release_group, resolution = symbols('hearing_impaired format release_group resolution')
video_codec, audio_codec, imdb_id, hash, title, year = symbols('video_codec audio_codec imdb_id hash title year')
series, season, episode, tvdb_id = symbols('series season episode tvdb_id')
def get_episode_equations():
"""Get the score equations for a :class:`~subliminal.video.Episode`
def solve_episode_equations():
"""Solve the score equations for an :class:`~subliminal.video.Episode`.
The equations are the following:
1. hash = resolution + video_codec + audio_codec + series + season + episode + release_group
2. series = resolution + video_codec + audio_codec + season + episode + 1
3. tvdb_id = series
4. season = resolution + video_codec + audio_codec + 1
5. imdb_id = series + season + episode
6. resolution = video_codec
7. video_codec = 2 * audio_codec
8. title = season + episode
9. season = episode
10. release_group = season
11. audio_codec = 1
1. hash = resolution + format + video_codec + audio_codec + series + season + episode + year + release_group
2. series = resolution + video_codec + audio_codec + season + episode + release_group + 1
3. year = series
4. tvdb_id = series + year
5. season = resolution + video_codec + audio_codec + 1
6. imdb_id = series + season + episode + year
7. format = video_codec + audio_codec
8. resolution = video_codec
9. video_codec = 2 * audio_codec
10. title = season + episode
11. season = episode
12. release_group = season
13. audio_codec = 2 * hearing_impaired
14. hearing_impaired = 1
:return: the score equations for an episode
:rtype: list of :class:`sympy.Eq`
:return: the result of the equations.
:rtype: dict
"""
equations = []
equations.append(Eq(hash, resolution + video_codec + audio_codec + series + season + episode + release_group))
equations.append(Eq(series, resolution + video_codec + audio_codec + season + episode + release_group))
equations.append(Eq(tvdb_id, series))
equations.append(Eq(season, resolution + video_codec + audio_codec + 1))
equations.append(Eq(imdb_id, series + season + episode))
equations.append(Eq(resolution, video_codec))
equations.append(Eq(video_codec, 2 * audio_codec))
equations.append(Eq(title, season + episode))
equations.append(Eq(season, episode))
equations.append(Eq(release_group, season))
equations.append(Eq(audio_codec, 1))
return equations
equations = [
Eq(hash, resolution + format + video_codec + audio_codec + series + season + episode + year + release_group),
Eq(series, resolution + video_codec + audio_codec + season + episode + release_group + 1),
Eq(year, series),
Eq(tvdb_id, series + year),
Eq(season, resolution + video_codec + audio_codec + 1),
Eq(imdb_id, series + season + episode + year),
Eq(format, video_codec + audio_codec),
Eq(resolution, video_codec),
Eq(video_codec, 2 * audio_codec),
Eq(title, season + episode),
Eq(season, episode),
Eq(release_group, season),
Eq(audio_codec, 2 * hearing_impaired),
Eq(hearing_impaired, 1)
]
return solve(equations, [hearing_impaired, format, release_group, resolution, video_codec, audio_codec, imdb_id,
hash, series, season, episode, title, year, tvdb_id])
def get_movie_equations():
"""Get the score equations for a :class:`~subliminal.video.Movie`
def solve_movie_equations():
"""Solve the score equations for a :class:`~subliminal.video.Movie`.
The equations are the following:
1. hash = resolution + video_codec + audio_codec + title + year + release_group
1. hash = resolution + format + video_codec + audio_codec + title + year + release_group
2. imdb_id = hash
3. resolution = video_codec
4. video_codec = 2 * audio_codec
5. title = resolution + video_codec + audio_codec + year + 1
6. release_group = resolution + video_codec + audio_codec + 1
7. year = release_group + 1
8. audio_codec = 1
5. format = video_codec + audio_codec
6. title = resolution + video_codec + audio_codec + year + 1
7. release_group = resolution + video_codec + audio_codec + 1
8. year = release_group + 1
9. audio_codec = 2 * hearing_impaired
10. hearing_impaired = 1
:return: the score equations for a movie
:rtype: list of :class:`sympy.Eq`
:return: the result of the equations.
:rtype: dict
"""
equations = []
equations.append(Eq(hash, resolution + video_codec + audio_codec + title + year + release_group))
equations.append(Eq(imdb_id, hash))
equations.append(Eq(resolution, video_codec))
equations.append(Eq(video_codec, 2 * audio_codec))
equations.append(Eq(title, resolution + video_codec + audio_codec + year + 1))
equations.append(Eq(video_codec, 2 * audio_codec))
equations.append(Eq(release_group, resolution + video_codec + audio_codec + 1))
equations.append(Eq(year, release_group + 1))
equations.append(Eq(audio_codec, 1))
return equations
equations = [
Eq(hash, resolution + format + video_codec + audio_codec + title + year + release_group),
Eq(imdb_id, hash),
Eq(resolution, video_codec),
Eq(video_codec, 2 * audio_codec),
Eq(format, video_codec + audio_codec),
Eq(title, resolution + video_codec + audio_codec + year + 1),
Eq(release_group, resolution + video_codec + audio_codec + 1),
Eq(year, release_group + 1),
Eq(audio_codec, 2 * hearing_impaired),
Eq(hearing_impaired, 1)
]
if __name__ == '__main__':
print(solve(get_episode_equations(), [release_group, resolution, video_codec, audio_codec, imdb_id,
hash, series, tvdb_id, season, episode, title]))
print(solve(get_movie_equations(), [release_group, resolution, video_codec, audio_codec, imdb_id,
hash, title, year]))
return solve(equations, [hearing_impaired, format, release_group, resolution, video_codec, audio_codec, imdb_id,
hash, title, year])
+247 -102
View File
@@ -1,157 +1,302 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import logging
import os.path
import babelfish
import pysrt
from .video import Episode, Movie
import os
import chardet
from guessit.matchtree import MatchTree
from guessit.plugins.transformers import get_transformer
import pysrt
from .video import Episode, Movie
logger = logging.getLogger(__name__)
class Subtitle(object):
"""Base class for subtitle
"""Base class for subtitle.
:param language: language of the subtitle
:type language: :class:`babelfish.Language`
:param bool hearing_impaired: `True` if the subtitle is hearing impaired, `False` otherwise
:param language: language of the subtitle.
:type language: :class:`~babelfish.language.Language`
:param bool hearing_impaired: whether or not the subtitle is hearing impaired.
:param page_link: URL of the web page from which the subtitle can be downloaded.
:type page_link: str
"""
def __init__(self, language, hearing_impaired=False):
#: Name of the provider that returns that class of subtitle
provider_name = ''
def __init__(self, language, hearing_impaired=False, page_link=None):
#: Language of the subtitle
self.language = language
#: Whether or not the subtitle is hearing impaired
self.hearing_impaired = hearing_impaired
def compute_matches(self, video):
"""Compute the matches of the subtitle against the `video`
#: URL of the web page from which the subtitle can be downloaded
self.page_link = page_link
:param video: the video to compute the matches against
#: Content as bytes
self.content = None
#: Encoding to decode with when accessing :attr:`text`
self.encoding = None
@property
def id(self):
"""Unique identifier of the subtitle."""
raise NotImplementedError
@property
def text(self):
"""Content as string.
If :attr:`encoding` is None, the encoding is guessed with :meth:`guess_encoding`
"""
if not self.content:
return
return self.content.decode(self.encoding or self.guess_encoding(), errors='replace')
def is_valid(self):
"""Check if a :attr:`text` is a valid SubRip format.
:return: whether or not the subtitle is valid.
:rtype: bool
"""
if not self.text:
return False
try:
pysrt.from_string(self.text, error_handling=pysrt.ERROR_RAISE)
except pysrt.Error as e:
if e.args[0] < 80:
return False
return True
def guess_encoding(self):
"""Guess encoding using the language, falling back on chardet.
:return: the guessed encoding.
:rtype: str
"""
logger.info('Guessing encoding for language %s', self.language)
# always try utf-8 first
encodings = ['utf-8']
# add language-specific encodings
if self.language.alpha3 == 'zho':
encodings.extend(['gb18030', 'big5'])
elif self.language.alpha3 == 'jpn':
encodings.append('shift-jis')
elif self.language.alpha3 == 'ara':
encodings.append('windows-1256')
elif self.language.alpha3 == 'heb':
encodings.append('windows-1255')
elif self.language.alpha3 == 'tur':
encodings.extend(['iso-8859-9', 'windows-1254'])
elif self.language.alpha3 == 'pol':
# Eastern European Group 1
encodings.extend(['windows-1250'])
elif self.language.alpha3 == 'bul':
# Eastern European Group 2
encodings.extend(['windows-1251'])
else:
# Western European (windows-1252)
encodings.append('latin-1')
# try to decode
logger.debug('Trying encodings %r', encodings)
for encoding in encodings:
try:
self.content.decode(encoding)
except UnicodeDecodeError:
pass
else:
logger.info('Guessed encoding %s', encoding)
return encoding
logger.warning('Could not guess encoding from language')
# fallback on chardet
encoding = chardet.detect(self.content)['encoding']
logger.info('Chardet found encoding %s', encoding)
return encoding
def get_matches(self, video, hearing_impaired=False):
"""Get the matches against the `video`.
:param video: the video to get the matches with.
:type video: :class:`~subliminal.video.Video`
:return: matches of the subtitle
:param bool hearing_impaired: hearing impaired preference.
:return: matches of the subtitle.
:rtype: set
"""
raise NotImplementedError
matches = set()
def compute_score(self, video):
"""Compute the score of the subtitle against the `video`
# hearing_impaired
if self.hearing_impaired == hearing_impaired:
matches.add('hearing_impaired')
There are equivalent matches so that a provider can match one element or its equivalent. This is
to give all provider a chance to have a score in the same range without hurting quality.
return matches
* Matching :class:`~subliminal.video.Video`'s `hashes` is equivalent to matching everything else
* Matching :class:`~subliminal.video.Episode`'s `season` and `episode`
is equivalent to matching :class:`~subliminal.video.Episode`'s `title`
* Matching :class:`~subliminal.video.Episode`'s `tvdb_id` is equivalent to matching
:class:`~subliminal.video.Episode`'s `series`
:param video: the video to compute the score against
:type video: :class:`~subliminal.video.Video`
:return: score of the subtitle
:rtype: int
"""
score = 0
# compute matches
initial_matches = self.compute_matches(video)
matches = initial_matches.copy()
# hash is the perfect match
if 'hash' in matches:
score = video.scores['hash']
else:
# remove equivalences
if isinstance(video, Episode):
if 'imdb_id' in matches:
matches -= {'series', 'tvdb_id', 'season', 'episode', 'title'}
if 'tvdb_id' in matches:
matches -= {'series'}
if 'title' in matches:
matches -= {'season', 'episode'}
# add other scores
score += sum((video.scores[match] for match in matches))
logger.info('Computed score %d with matches %r', score, initial_matches)
return score
def __hash__(self):
return hash(self.provider_name + '-' + self.id)
def __repr__(self):
return '<%s [%s]>' % (self.__class__.__name__, self.language)
return '<%s %r [%s]>' % (self.__class__.__name__, self.id, self.language)
def get_subtitle_path(video_path, language=None):
"""Create the subtitle path from the given `video_path` and `language`
def compute_score(matches, video, scores=None):
"""Compute the score of the `matches` against the `video`.
:param string video_path: path to the video
:param language: language of the subtitle to put in the path
:type language: :class:`babelfish.Language` or None
:return: path of the subtitle
:rtype: string
Some matches count as much as a combination of others in order to level the final score:
"""
subtitle_path = os.path.splitext(video_path)[0]
if language is not None:
try:
return subtitle_path + '.%s.%s' % (language.alpha2, 'srt')
except babelfish.LanguageConvertError:
return subtitle_path + '.%s.%s' % (language.alpha3, 'srt')
return subtitle_path + '.srt'
* `hash` removes everything else
* For :class:`~subliminal.video.Episode`
* `imdb_id` removes `series`, `tvdb_id`, `season`, `episode`, `title` and `year`
* `tvdb_id` removes `series` and `year`
* `title` removes `season` and `episode`
def is_valid_subtitle(subtitle_text):
"""Check if a subtitle text is a valid SubRip format
:return: `True` if the subtitle is valid, `False` otherwise
:rtype: bool
"""
try:
pysrt.from_string(subtitle_text, error_handling=pysrt.ERROR_RAISE)
return True
except pysrt.Error as e:
if e.args[0] > 80:
return True
except:
logger.exception('Unexpected error when validating subtitle')
return False
def compute_guess_matches(video, guess):
"""Compute matches between a `video` and a `guess`
:param video: the video to compute the matches on
:param video: the video to get the score with.
:type video: :class:`~subliminal.video.Video`
:param guess: the guess to compute the matches on
:type guess: :class:`guessit.Guess`
:return: matches of the `guess`
:param dict scores: scores to use, if `None`, the :attr:`~subliminal.video.Video.scores` from the video are used.
:return: score of the subtitle.
:rtype: int
"""
final_matches = matches.copy()
scores = scores or video.scores
logger.info('Computing score for matches %r and %r', matches, video)
# remove equivalent match combinations
if 'hash' in final_matches:
final_matches &= {'hash', 'hearing_impaired'}
elif isinstance(video, Episode):
if 'imdb_id' in final_matches:
final_matches -= {'series', 'tvdb_id', 'season', 'episode', 'title', 'year'}
if 'tvdb_id' in final_matches:
final_matches -= {'series', 'year'}
if 'title' in final_matches:
final_matches -= {'season', 'episode'}
# compute score
logger.debug('Final matches: %r', final_matches)
score = sum((scores[match] for match in final_matches))
logger.info('Computed score %d', score)
# ensure score is capped by the best possible score (hash + preferences)
assert score <= scores['hash'] + scores['hearing_impaired']
return score
def get_subtitle_path(video_path, language=None, extension='.srt'):
"""Get the subtitle path using the `video_path` and `language`.
:param str video_path: path to the video.
:param language: language of the subtitle to put in the path.
:type language: :class:`~babelfish.language.Language`
:param str extension: extension of the subtitle.
:return: path of the subtitle.
:rtype: str
"""
subtitle_root = os.path.splitext(video_path)[0]
if language:
subtitle_root += '.' + str(language)
return subtitle_root + extension
def guess_matches(video, guess, partial=False):
"""Get matches between a `video` and a `guess`.
If a guess is `partial`, the absence information won't be counted as a match.
:param video: the video.
:type video: :class:`~subliminal.video.Video`
:param guess: the guess.
:type guess: dict
:param bool partial: whether or not the guess is partial.
:return: matches between the `video` and the `guess`.
:rtype: set
"""
matches = set()
if isinstance(video, Episode):
# Series
# series
if video.series and 'series' in guess and guess['series'].lower() == video.series.lower():
matches.add('series')
# Season
if video.season and 'seasonNumber' in guess and guess['seasonNumber'] == video.season:
# season
if video.season and 'season' in guess and guess['season'] == video.season:
matches.add('season')
# Episode
# episode
if video.episode and 'episodeNumber' in guess and guess['episodeNumber'] == video.episode:
matches.add('episode')
elif isinstance(video, Movie):
# Year
# year
if video.year and 'year' in guess and guess['year'] == video.year:
matches.add('year')
# Title
# count "no year" as an information
if not partial and video.year is None and 'year' not in guess:
matches.add('year')
elif isinstance(video, Movie):
# year
if video.year and 'year' in guess and guess['year'] == video.year:
matches.add('year')
# title
if video.title and 'title' in guess and guess['title'].lower() == video.title.lower():
matches.add('title')
# Release group
# release_group
if video.release_group and 'releaseGroup' in guess and guess['releaseGroup'].lower() == video.release_group.lower():
matches.add('release_group')
# Screen size
# resolution
if video.resolution and 'screenSize' in guess and guess['screenSize'] == video.resolution:
matches.add('resolution')
# Video codec
# format
if video.format and 'format' in guess and guess['format'].lower() == video.format.lower():
matches.add('format')
# video_codec
if video.video_codec and 'videoCodec' in guess and guess['videoCodec'] == video.video_codec:
matches.add('video_codec')
# Audio codec
# audio_codec
if video.audio_codec and 'audioCodec' in guess and guess['audioCodec'] == video.audio_codec:
matches.add('audio_codec')
return matches
def guess_properties(string):
"""Extract properties from `string` using guessit's `guess_properties` transformer.
:param str string: the string potentially containing properties.
:return: the guessed properties.
:rtype: dict
"""
mtree = MatchTree(string)
get_transformer('guess_properties').process(mtree)
return mtree.matched()
def fix_line_ending(content):
"""Fix line ending of `content` by changing it to \n.
:param bytes content: content of the subtitle.
:return: the content with fixed line endings.
:rtype: bytes
"""
return content.replace(b'\r\n', b'\n').replace(b'\r', b'\n')
-14
View File
@@ -1,14 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from unittest import TextTestRunner, TestSuite
from subliminal import cache_region
from . import test_providers, test_subliminal
cache_region.configure('dogpile.cache.memory', expiration_time=60 * 30) # @UndefinedVariable
suite = TestSuite([test_providers.suite(), test_subliminal.suite()])
if __name__ == '__main__':
TextTestRunner().run(suite)
-19
View File
@@ -1,19 +0,0 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from subliminal import Movie, Episode
MOVIES = [Movie('Man of Steel (2013)/man.of.steel.2013.720p.bluray.x264-felony.mkv', 'Man of Steel',
release_group='felony', resolution='720p', video_codec='h264', audio_codec='DTS', imdb_id=770828,
size=7033732714, year=2013,
hashes={'opensubtitles': '5b8f8f4e41ccb21e', 'thesubdb': 'ad32876133355929d814457537e12dc2'})]
EPISODES = [Episode('The Big Bang Theory/Season 07/The.Big.Bang.Theory.S07E05.720p.HDTV.X264-DIMENSION.mkv',
'The Big Bang Theory', 7, 5, release_group='DIMENSION', resolution='720p', video_codec='h264',
audio_codec='AC3', imdb_id=3229392, size=501910737, title='The Workplace Proximity',
tvdb_id=80379,
hashes={'opensubtitles': '6878b3ef7c1bd19e', 'thesubdb': '9dbbfb7ba81c9a6237237dae8589fccc'}),
Episode('Game of Thrones/Season 03/Game.of.Thrones.S03E10.Mhysa.720p.WEB-DL.DD5.1.H.264-NTb.mkv',
'Game of Thrones', 3, 10, release_group='NTb', resolution='720p', video_codec='h264',
audio_codec='AC3', imdb_id=2178796, size=2142810931, title='Mhysa', tvdb_id=121361,
hashes={'opensubtitles': 'b850baa096976c22', 'thesubdb': 'b1f899c77f4c960b84b8dbf840d4e42d'})]
-453
View File
@@ -1,453 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os
from unittest import TestCase, TestSuite, TestLoader, TextTestRunner
from babelfish import Language
from pkg_resources import iter_entry_points
from subliminal import PROVIDERS_ENTRY_POINT
from subliminal.subtitle import is_valid_subtitle
from subliminal.tests.common import MOVIES, EPISODES
class ProviderTestCase(TestCase):
provider_name = ''
def setUp(self):
for provider_entry_point in iter_entry_points(PROVIDERS_ENTRY_POINT, self.provider_name):
self.Provider = provider_entry_point.load()
break
class Addic7edProviderTestCase(ProviderTestCase):
provider_name = 'addic7ed'
def test_find_show_id(self):
with self.Provider() as provider:
show_id = provider.find_show_id('The Big Bang')
self.assertEqual(show_id, 126)
def test_find_show_id_error(self):
with self.Provider() as provider:
show_id = provider.find_show_id('the big how i met your mother')
self.assertIsNone(show_id)
def test_get_show_ids(self):
with self.Provider() as provider:
show_ids = provider.get_show_ids()
self.assertIn('the big bang theory', show_ids)
self.assertEqual(show_ids['the big bang theory'], 126)
def test_query_episode_0(self):
video = EPISODES[0]
languages = {Language('tur'), Language('rus'), Language('heb'), Language('ita'), Language('fra'),
Language('ron'), Language('nld'), Language('eng'), Language('deu'), Language('ell'),
Language('por', 'BR'), Language('bul')}
matches = {frozenset(['episode', 'release_group', 'title', 'series', 'resolution', 'season']),
frozenset(['series', 'resolution', 'season']),
frozenset(['series', 'episode', 'season', 'title']),
frozenset(['series', 'release_group', 'season']),
frozenset(['series', 'episode', 'season', 'release_group', 'title']),
frozenset(['series', 'season'])}
with self.Provider() as provider:
subtitles = provider.query(video.series, video.season)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_query_episode_1(self):
video = EPISODES[1]
languages = {Language('ind'), Language('spa'), Language('hrv'), Language('ita'), Language('fra'),
Language('cat'), Language('ell'), Language('nld'), Language('eng'), Language('fas'),
Language('por'), Language('nor'), Language('deu'), Language('ron'), Language('por', 'BR'),
Language('bul')}
matches = {frozenset(['series', 'episode', 'resolution', 'season', 'title']),
frozenset(['series', 'resolution', 'season']),
frozenset(['series', 'episode', 'season', 'title']),
frozenset(['series', 'release_group', 'season']),
frozenset(['series', 'resolution', 'release_group', 'season']),
frozenset(['series', 'episode', 'season', 'release_group', 'title']),
frozenset(['series', 'season'])}
with self.Provider() as provider:
subtitles = provider.query(video.series, video.season)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_list_subtitles(self):
video = EPISODES[0]
languages = {Language('eng'), Language('fra')}
matches = {frozenset(['series', 'episode', 'season', 'release_group', 'title']),
frozenset(['series', 'episode', 'season', 'title'])}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_download_subtitle(self):
video = EPISODES[0]
languages = {Language('eng'), Language('fra')}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
subtitle_text = provider.download_subtitle(subtitles[0])
self.assertTrue(is_valid_subtitle(subtitle_text))
class BierDopjeProviderTestCase(ProviderTestCase):
provider_name = 'bierdopje'
def test_find_show_id(self):
with self.Provider() as provider:
show_id = provider.find_show_id('The Big Bang')
self.assertEqual(show_id, 9203)
def test_find_show_id_error(self):
with self.Provider() as provider:
show_id = provider.find_show_id('the big how i met your mother')
self.assertIsNone(show_id)
def test_query_episode_0(self):
video = EPISODES[0]
language = Language('eng')
matches = {frozenset(['series', 'video_codec', 'resolution', 'episode', 'season']),
frozenset(['season', 'video_codec', 'episode', 'series']),
frozenset(['episode', 'video_codec', 'season', 'series', 'resolution', 'release_group'])}
with self.Provider() as provider:
subtitles = provider.query(language, video.season, video.episode, series=video.series)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, {language})
def test_query_episode_1(self):
video = EPISODES[1]
language = Language('nld')
matches = {frozenset(['series', 'video_codec', 'resolution', 'episode', 'season']),
frozenset(['season', 'video_codec', 'episode', 'series']),
frozenset(['series', 'episode', 'season']),
frozenset(['season', 'video_codec', 'episode', 'release_group', 'series']),
frozenset(['episode', 'video_codec', 'season', 'series', 'resolution', 'release_group'])}
with self.Provider() as provider:
subtitles = provider.query(language, video.season, video.episode, series=video.series)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, {language})
def test_query_episode_0_tvdb_id(self):
video = EPISODES[0]
language = Language('eng')
matches = {frozenset(['video_codec', 'tvdb_id', 'episode', 'season', 'series']),
frozenset(['episode', 'video_codec', 'series', 'season', 'tvdb_id', 'resolution', 'release_group']),
frozenset(['episode', 'series', 'video_codec', 'tvdb_id', 'resolution', 'season'])}
with self.Provider() as provider:
subtitles = provider.query(language, video.season, video.episode, tvdb_id=video.tvdb_id)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, {language})
def test_list_subtitles(self):
video = EPISODES[1]
languages = {Language('eng'), Language('nld')}
matches = {frozenset(['series', 'video_codec', 'tvdb_id', 'episode', 'season']),
frozenset(['episode', 'video_codec', 'season', 'series', 'tvdb_id', 'resolution', 'release_group']),
frozenset(['season', 'tvdb_id', 'episode', 'series']),
frozenset(['episode', 'video_codec', 'season', 'series', 'tvdb_id', 'resolution']),
frozenset(['episode', 'video_codec', 'season', 'series', 'tvdb_id', 'release_group'])}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_download_subtitle(self):
video = EPISODES[0]
languages = {Language('eng'), Language('nld')}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
subtitle_text = provider.download_subtitle(subtitles[0])
self.assertTrue(is_valid_subtitle(subtitle_text))
class OpenSubtitlesProviderTestCase(ProviderTestCase):
provider_name = 'opensubtitles'
def test_query_movie_0_query(self):
video = MOVIES[0]
languages = {Language('eng')}
matches = {frozenset([]), frozenset(['imdb_id', 'resolution', 'title', 'year']),
frozenset(['imdb_id', 'title', 'year']),
frozenset(['imdb_id', 'video_codec', 'title', 'year']),
frozenset(['imdb_id', 'resolution', 'title', 'video_codec', 'year']),
frozenset(['imdb_id', 'title', 'year', 'video_codec', 'resolution', 'release_group'])}
with self.Provider() as provider:
subtitles = provider.query(languages, query=video.title)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_query_episode_0_query(self):
video = EPISODES[0]
languages = {Language('eng')}
matches = {frozenset(['series', 'episode', 'season', 'imdb_id']),
frozenset(['series', 'imdb_id', 'video_codec', 'episode', 'season']),
frozenset(['episode', 'title', 'series', 'imdb_id', 'video_codec', 'season'])}
with self.Provider() as provider:
subtitles = provider.query(languages, query=video.name.split(os.sep)[-1])
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_query_episode_1_query(self):
video = EPISODES[1]
languages = {Language('eng'), Language('fra')}
matches = {frozenset(['episode', 'title', 'series', 'imdb_id', 'video_codec', 'season']),
frozenset(['series', 'imdb_id', 'title', 'episode', 'season']),
frozenset(['series', 'imdb_id', 'video_codec', 'episode', 'season']),
frozenset(['episode', 'video_codec', 'series', 'imdb_id', 'resolution', 'season']),
frozenset(['series', 'imdb_id', 'resolution', 'episode', 'season']),
frozenset(['series', 'episode', 'season', 'imdb_id'])}
with self.Provider() as provider:
subtitles = provider.query(languages, query=video.name.split(os.sep)[-1])
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_query_movie_0_imdb_id(self):
video = MOVIES[0]
languages = {Language('eng'), Language('fra')}
matches = {frozenset(['imdb_id', 'video_codec', 'title', 'year']),
frozenset(['imdb_id', 'resolution', 'title', 'video_codec', 'year']),
frozenset(['imdb_id', 'title', 'year', 'video_codec', 'resolution', 'release_group']),
frozenset(['imdb_id', 'title', 'year']),
frozenset(['imdb_id', 'resolution', 'title', 'year'])}
with self.Provider() as provider:
subtitles = provider.query(languages, imdb_id=video.imdb_id)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_query_episode_0_imdb_id(self):
video = EPISODES[0]
languages = {Language('eng'), Language('fra')}
matches = {frozenset(['series', 'episode', 'season', 'imdb_id']),
frozenset(['episode', 'release_group', 'video_codec', 'series', 'imdb_id', 'resolution', 'season']),
frozenset(['series', 'imdb_id', 'video_codec', 'episode', 'season']),
frozenset(['episode', 'title', 'series', 'imdb_id', 'video_codec', 'season'])}
with self.Provider() as provider:
subtitles = provider.query(languages, imdb_id=video.imdb_id)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_query_movie_0_hash(self):
video = MOVIES[0]
languages = {Language('eng')}
matches = {frozenset(['hash', 'title', 'video_codec', 'year', 'resolution', 'imdb_id']),
frozenset(['hash', 'title', 'video_codec', 'year', 'resolution', 'release_group', 'imdb_id']),
frozenset(['year', 'video_codec', 'imdb_id', 'hash', 'title']),
frozenset([]),
frozenset(['year', 'resolution', 'imdb_id', 'hash', 'title']),
frozenset(['year', 'imdb_id', 'hash', 'title'])}
with self.Provider() as provider:
subtitles = provider.query(languages, hash=video.hashes['opensubtitles'], size=video.size)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_query_episode_0_hash(self):
video = EPISODES[0]
languages = {Language('eng')}
matches = {frozenset(['series', 'hash']),
frozenset(['episode', 'season', 'series', 'imdb_id', 'video_codec', 'hash']),
frozenset(['series', 'episode', 'season', 'hash', 'imdb_id']),
frozenset(['series', 'resolution', 'hash', 'video_codec'])}
with self.Provider() as provider:
subtitles = provider.query(languages, hash=video.hashes['opensubtitles'], size=video.size)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_list_subtitles(self):
video = MOVIES[0]
languages = {Language('eng'), Language('fra')}
matches = {frozenset(['title', 'video_codec', 'year', 'resolution', 'release_group', 'imdb_id']),
frozenset(['imdb_id', 'year', 'title']),
frozenset(['year', 'video_codec', 'imdb_id', 'resolution', 'title']),
frozenset(['hash', 'title', 'video_codec', 'year', 'resolution', 'release_group', 'imdb_id']),
frozenset(['year', 'video_codec', 'imdb_id', 'hash', 'title']),
frozenset([]),
frozenset(['year', 'resolution', 'imdb_id', 'hash', 'title']),
frozenset(['hash', 'title', 'video_codec', 'year', 'resolution', 'imdb_id']),
frozenset(['year', 'imdb_id', 'hash', 'title']),
frozenset(['video_codec', 'imdb_id', 'year', 'title']),
frozenset(['year', 'imdb_id', 'resolution', 'title'])}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_download_subtitle(self):
video = MOVIES[0]
languages = {Language('eng'), Language('fra')}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
subtitle_text = provider.download_subtitle(subtitles[0])
self.assertTrue(is_valid_subtitle(subtitle_text))
class PodnapisiProviderTestCase(ProviderTestCase):
provider_name = 'podnapisi'
def test_query_movie_0(self):
video = MOVIES[0]
language = Language('eng')
matches = {frozenset(['video_codec', 'title', 'resolution', 'year']),
frozenset(['title', 'resolution', 'year']),
frozenset(['video_codec', 'title', 'year']),
frozenset(['title', 'year']),
frozenset(['video_codec', 'title', 'resolution', 'release_group', 'year']),
frozenset(['video_codec', 'title', 'resolution', 'audio_codec', 'year'])}
with self.Provider() as provider:
subtitles = provider.query(language, title=video.title, year=video.year)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, {language})
def test_query_episode_0(self):
video = EPISODES[0]
language = Language('eng')
matches = {frozenset(['episode', 'series', 'season', 'video_codec', 'resolution', 'release_group']),
frozenset(['season', 'video_codec', 'episode', 'resolution', 'series'])}
with self.Provider() as provider:
subtitles = provider.query(language, series=video.series, season=video.season, episode=video.episode)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, {language})
def test_list_subtitles(self):
video = MOVIES[0]
languages = {Language('eng'), Language('fra')}
matches = {frozenset(['video_codec', 'title', 'resolution', 'year']),
frozenset(['title', 'resolution', 'year']),
frozenset(['video_codec', 'title', 'year']),
frozenset(['title', 'year']),
frozenset(['video_codec', 'title', 'resolution', 'release_group', 'year']),
frozenset(['video_codec', 'title', 'resolution', 'audio_codec', 'year'])}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_download_subtitle(self):
video = MOVIES[0]
languages = {Language('eng'), Language('fra')}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
subtitle_text = provider.download_subtitle(subtitles[0])
self.assertTrue(is_valid_subtitle(subtitle_text))
class TheSubDBProviderTestCase(ProviderTestCase):
provider_name = 'thesubdb'
def test_query_episode_0(self):
video = EPISODES[0]
languages = {Language('eng'), Language('spa'), Language('por')}
matches = {frozenset(['hash'])}
with self.Provider() as provider:
subtitles = provider.query(video.hashes['thesubdb'])
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_query_episode_1(self):
video = EPISODES[1]
languages = {Language('eng'), Language('por')}
matches = {frozenset(['hash'])}
with self.Provider() as provider:
subtitles = provider.query(video.hashes['thesubdb'])
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_list_subtitles(self):
video = MOVIES[0]
languages = {Language('eng'), Language('por')}
matches = {frozenset(['hash'])}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_download_subtitle(self):
video = MOVIES[0]
languages = {Language('eng'), Language('por')}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
subtitle_text = provider.download_subtitle(subtitles[0])
self.assertTrue(is_valid_subtitle(subtitle_text))
class TVsubtitlesProviderTestCase(ProviderTestCase):
provider_name = 'tvsubtitles'
def test_find_show_id(self):
with self.Provider() as provider:
show_id = provider.find_show_id('The Big Bang')
self.assertEqual(show_id, 154)
def test_find_show_id_ambiguous(self):
with self.Provider() as provider:
show_id = provider.find_show_id('New Girl')
self.assertEqual(show_id, 977)
def test_find_show_id_no_dots(self):
with self.Provider() as provider:
show_id = provider.find_show_id('Marvel\'s Agents of S H I E L D')
self.assertEqual(show_id, 1340)
def test_find_show_id_error(self):
with self.Provider() as provider:
show_id = provider.find_show_id('the big gaming')
self.assertIsNone(show_id)
def test_find_episode_ids(self):
with self.Provider() as provider:
episode_ids = provider.find_episode_ids(154, 5)
self.assertEqual(set(episode_ids.keys()), set(range(1, 25)))
def test_query_episode_0(self):
video = EPISODES[0]
languages = {Language('fra'), Language('por'), Language('hun'), Language('ron'), Language('eng')}
matches = {frozenset(['series', 'episode', 'season', 'video_codec']),
frozenset(['series', 'episode', 'season'])}
with self.Provider() as provider:
subtitles = provider.query(video.series, video.season, video.episode)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_query_episode_1(self):
video = EPISODES[1]
languages = {Language('fra'), Language('ell'), Language('ron'), Language('eng'), Language('hun'),
Language('por'), Language('por', 'BR')}
matches = {frozenset(['series', 'episode', 'resolution', 'season']),
frozenset(['series', 'episode', 'season', 'video_codec']),
frozenset(['series', 'episode', 'season'])}
with self.Provider() as provider:
subtitles = provider.query(video.series, video.season, video.episode)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_list_subtitles(self):
video = EPISODES[0]
languages = {Language('eng'), Language('fra')}
matches = {frozenset(['series', 'episode', 'season'])}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
self.assertEqual({frozenset(subtitle.compute_matches(video)) for subtitle in subtitles}, matches)
self.assertEqual({subtitle.language for subtitle in subtitles}, languages)
def test_download_subtitle(self):
video = EPISODES[0]
languages = {Language('hun')}
with self.Provider() as provider:
subtitles = provider.list_subtitles(video, languages)
subtitle_text = provider.download_subtitle(subtitles[0])
self.assertTrue(is_valid_subtitle(subtitle_text))
def suite():
suite = TestSuite()
suite.addTest(TestLoader().loadTestsFromTestCase(Addic7edProviderTestCase))
suite.addTest(TestLoader().loadTestsFromTestCase(BierDopjeProviderTestCase))
suite.addTest(TestLoader().loadTestsFromTestCase(OpenSubtitlesProviderTestCase))
suite.addTest(TestLoader().loadTestsFromTestCase(PodnapisiProviderTestCase))
suite.addTest(TestLoader().loadTestsFromTestCase(TheSubDBProviderTestCase))
suite.addTest(TestLoader().loadTestsFromTestCase(TVsubtitlesProviderTestCase))
return suite
if __name__ == '__main__':
TextTestRunner().run(suite())
-174
View File
@@ -1,174 +0,0 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os
import shutil
from unittest import TestCase, TestSuite, TestLoader, TextTestRunner
from babelfish import Language
from subliminal import list_subtitles, download_subtitles, download_best_subtitles, scan_video
from subliminal.tests.common import MOVIES, EPISODES
TEST_DIR = 'test_data'
class ApiTestCase(TestCase):
def setUp(self):
os.mkdir(TEST_DIR)
def tearDown(self):
shutil.rmtree(TEST_DIR)
def test_list_subtitles_movie_0(self):
videos = [MOVIES[0]]
languages = {Language('eng')}
subtitles = list_subtitles(videos, languages)
self.assertEqual(len(subtitles), len(videos))
self.assertGreater(len(subtitles[videos[0]]), 0)
def test_list_subtitles_movie_0_por_br(self):
videos = [MOVIES[0]]
languages = {Language('por', 'BR')}
subtitles = list_subtitles(videos, languages)
self.assertEqual(len(subtitles), len(videos))
self.assertGreater(len(subtitles[videos[0]]), 0)
def test_list_subtitles_episodes(self):
videos = [EPISODES[0], EPISODES[1]]
languages = {Language('eng'), Language('fra')}
subtitles = list_subtitles(videos, languages)
self.assertEqual(len(subtitles), len(videos))
self.assertGreater(len(subtitles[videos[0]]), 0)
def test_download_subtitles(self):
videos = [EPISODES[0], EPISODES[1]]
for video in videos:
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
languages = {Language('eng'), Language('fra')}
subtitles = list_subtitles(videos, languages)
download_subtitles(subtitles)
for video in videos:
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.en.srt'))
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.fr.srt'))
def test_download_subtitles_single(self):
videos = [EPISODES[0], EPISODES[1]]
for video in videos:
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
languages = {Language('eng'), Language('fra')}
subtitles = list_subtitles(videos, languages)
download_subtitles(subtitles, single=True)
for video in videos:
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.srt'))
def test_download_best_subtitles(self):
videos = [EPISODES[0], EPISODES[1]]
for video in videos:
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
languages = {Language('eng'), Language('fra')}
subtitles = download_best_subtitles(videos, languages)
for video in videos:
self.assertEqual(video in subtitles and len(subtitles[video]), 2)
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.en.srt'))
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.fr.srt'))
def test_download_best_subtitles_single(self):
videos = [EPISODES[0], EPISODES[1]]
for video in videos:
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
languages = {Language('eng'), Language('fra')}
subtitles = download_best_subtitles(videos, languages, single=True)
for video in videos:
self.assertIn(video, subtitles)
self.assertEqual(len(subtitles[video]), 1)
self.assertTrue(os.path.exists(os.path.splitext(video.name)[0] + '.srt'))
def test_download_best_subtitles_min_score(self):
videos = [MOVIES[0]]
for video in videos:
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
languages = {Language('eng'), Language('fra')}
subtitles = download_best_subtitles(videos, languages, min_score=1000)
self.assertEqual(len(subtitles), 0)
def test_download_best_subtitles_hearing_impaired(self):
videos = [MOVIES[0]]
for video in videos:
video.name = os.path.join(TEST_DIR, video.name.split(os.sep)[-1])
languages = {Language('eng')}
subtitles = download_best_subtitles(videos, languages, hearing_impaired=True)
self.assertTrue(subtitles[videos[0]][0].hearing_impaired)
class VideoTestCase(TestCase):
def setUp(self):
os.mkdir(TEST_DIR)
for video in MOVIES + EPISODES:
open(os.path.join(TEST_DIR, os.path.split(video.name)[1]), 'w').close()
def tearDown(self):
shutil.rmtree(TEST_DIR)
def test_scan_video_movie(self):
video = MOVIES[0]
scanned_video = scan_video(os.path.join(TEST_DIR, os.path.split(video.name)[1]))
self.assertEqual(scanned_video.name, os.path.join(TEST_DIR, os.path.split(video.name)[1]))
self.assertEqual(scanned_video.title.lower(), video.title.lower())
self.assertEqual(scanned_video.year, video.year)
self.assertEqual(scanned_video.video_codec, video.video_codec)
self.assertEqual(scanned_video.resolution, video.resolution)
self.assertEqual(scanned_video.release_group, video.release_group)
self.assertEqual(scanned_video.subtitle_languages, set())
self.assertEqual(scanned_video.hashes, {})
self.assertIsNone(scanned_video.audio_codec)
self.assertIsNone(scanned_video.imdb_id)
self.assertEqual(scanned_video.size, 0)
def test_scan_video_episode(self):
video = EPISODES[0]
scanned_video = scan_video(os.path.join(TEST_DIR, os.path.split(video.name)[1]))
self.assertEqual(scanned_video.name, os.path.join(TEST_DIR, os.path.split(video.name)[1]))
self.assertEqual(scanned_video.series, video.series)
self.assertEqual(scanned_video.season, video.season)
self.assertEqual(scanned_video.episode, video.episode)
self.assertEqual(scanned_video.video_codec, video.video_codec)
self.assertEqual(scanned_video.resolution, video.resolution)
self.assertEqual(scanned_video.release_group, video.release_group)
self.assertEqual(scanned_video.subtitle_languages, set())
self.assertEqual(scanned_video.hashes, {})
self.assertIsNone(scanned_video.title)
self.assertIsNone(scanned_video.tvdb_id)
self.assertIsNone(scanned_video.imdb_id)
self.assertIsNone(scanned_video.audio_codec)
self.assertEqual(scanned_video.size, 0)
def test_scan_video_subtitle_language_und(self):
video = EPISODES[0]
open(os.path.join(TEST_DIR, os.path.splitext(os.path.split(video.name)[1])[0]) + '.srt', 'w').close()
scanned_video = scan_video(os.path.join(TEST_DIR, os.path.split(video.name)[1]))
self.assertEqual(scanned_video.subtitle_languages, {Language('und')})
def test_scan_video_subtitles_language_eng(self):
video = EPISODES[0]
open(os.path.join(TEST_DIR, os.path.splitext(os.path.split(video.name)[1])[0]) + '.en.srt', 'w').close()
scanned_video = scan_video(os.path.join(TEST_DIR, os.path.split(video.name)[1]))
self.assertEqual(scanned_video.subtitle_languages, {Language('eng')})
def test_scan_video_subtitles_languages(self):
video = EPISODES[0]
open(os.path.join(TEST_DIR, os.path.splitext(os.path.split(video.name)[1])[0]) + '.en.srt', 'w').close()
open(os.path.join(TEST_DIR, os.path.splitext(os.path.split(video.name)[1])[0]) + '.fr.srt', 'w').close()
open(os.path.join(TEST_DIR, os.path.splitext(os.path.split(video.name)[1])[0]) + '.srt', 'w').close()
scanned_video = scan_video(os.path.join(TEST_DIR, os.path.split(video.name)[1]))
self.assertEqual(scanned_video.subtitle_languages, {Language('eng'), Language('fra'), Language('und')})
def suite():
suite = TestSuite()
suite.addTest(TestLoader().loadTestsFromTestCase(ApiTestCase))
suite.addTest(TestLoader().loadTestsFromTestCase(VideoTestCase))
return suite
if __name__ == '__main__':
TextTestRunner().run(suite())
+298 -163
View File
@@ -1,14 +1,14 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import datetime
from __future__ import unicode_literals, division
from datetime import datetime, timedelta
import hashlib
import logging
import os
import struct
import babelfish
import enzyme
import guessit
from babelfish import Error as BabelfishError, Language
from enzyme import Error as EnzymeError, MKV
from guessit import guess_episode_info, guess_file_info, guess_movie_info
logger = logging.getLogger(__name__)
@@ -26,45 +26,97 @@ SUBTITLE_EXTENSIONS = ('.srt', '.sub', '.smi', '.txt', '.ssa', '.ass', '.mpl')
class Video(object):
"""Base class for videos
"""Base class for videos.
Represent a video, existing or not, with various properties that defines it.
Each property has an associated score based on equations that are described in
subclasses.
Represent a video, existing or not. Attributes have an associated score based on equations defined in
:mod:`~subliminal.score`.
:param string name: name or path of the video
:param string release_group: release group of the video
:param string resolution: screen size of the video stream (480p, 720p, 1080p or 1080i)
:param string video_codec: codec of the video stream
:param string audio_codec: codec of the main audio stream
:param int imdb_id: IMDb id of the video
:param dict hashes: hashes of the video file by provider names
:param int size: byte size of the video file
:param str name: name or path of the video.
:param str format: format of the video (HDTV, WEB-DL, BluRay, ...).
:param str release_group: release group of the video.
:param str resolution: resolution of the video stream (480p, 720p, 1080p or 1080i).
:param str video_codec: codec of the video stream.
:param str audio_codec: codec of the main audio stream.
:param int imdb_id: IMDb id of the video.
:param dict hashes: hashes of the video file by provider names.
:param int size: size of the video file in bytes.
:param set subtitle_languages: existing subtitle languages
"""
#: Score by match property
scores = {}
def __init__(self, name, release_group=None, resolution=None, video_codec=None, audio_codec=None, imdb_id=None,
hashes=None, size=None, subtitle_languages=None):
def __init__(self, name, format=None, release_group=None, resolution=None, video_codec=None, audio_codec=None,
imdb_id=None, hashes=None, size=None, subtitle_languages=None):
#: Name or path of the video
self.name = name
#: Format of the video (HDTV, WEB-DL, BluRay, ...)
self.format = format
#: Release group of the video
self.release_group = release_group
#: Resolution of the video stream (480p, 720p, 1080p or 1080i)
self.resolution = resolution
#: Codec of the video stream
self.video_codec = video_codec
#: Codec of the main audio stream
self.audio_codec = audio_codec
#: IMDb id of the video
self.imdb_id = imdb_id
#: Hashes of the video file by provider names
self.hashes = hashes or {}
#: Size of the video file in bytes
self.size = size
#: Existing subtitle languages
self.subtitle_languages = subtitle_languages or set()
@property
def exists(self):
"""Test whether the video exists."""
return os.path.exists(self.name)
@property
def age(self):
"""Age of the video."""
if self.exists:
return datetime.utcnow() - datetime.utcfromtimestamp(os.path.getmtime(self.name))
return timedelta()
@classmethod
def fromguess(cls, name, guess):
"""Create an :class:`Episode` or a :class:`Movie` with the given `name` based on the `guess`.
:param str name: name of the video.
:param dict guess: guessed data, like a :class:`~guessit.guess.Guess` instance.
:raise: :class:`ValueError` if the `type` of the `guess` is invalid
"""
if guess['type'] == 'episode':
return Episode.fromguess(name, guess)
if guess['type'] == 'movie':
return Movie.fromguess(name, guess)
raise ValueError('The guess must be an episode or a movie guess')
@classmethod
def fromname(cls, name):
"""Shortcut for :meth:`fromguess` with a `guess` guessed from the `name`.
:param str name: name of the video.
"""
return cls.fromguess(name, guess_file_info(name))
def __repr__(self):
return '<%s [%r]>' % (self.__class__.__name__, self.name)
@@ -73,116 +125,183 @@ class Video(object):
class Episode(Video):
"""Episode :class:`Video`
"""Episode :class:`Video`.
Scores are defined by a set of equations, see :func:`~subliminal.score.get_episode_equations`
Scores are defined by a set of equations, see :func:`~subliminal.score.solve_episode_equations`
:param string series: series of the episode
:param int season: season number of the episode
:param int episode: episode number of the episode
:param string title: title of the episode
:param int tvdb_id: TheTVDB id of the episode
:param str series: series of the episode.
:param int season: season number of the episode.
:param int episode: episode number of the episode.
:param str title: title of the episode.
:param int year: year of series.
:param int tvdb_id: TVDB id of the episode
"""
scores = {'title': 12, 'video_codec': 2, 'imdb_id': 35, 'audio_codec': 1, 'tvdb_id': 23, 'resolution': 2,
'season': 6, 'release_group': 6, 'series': 23, 'episode': 6, 'hash': 46}
#: Score by match property
scores = {'hash': 137, 'imdb_id': 110, 'tvdb_id': 88, 'series': 44, 'year': 44, 'title': 22, 'season': 11,
'episode': 11, 'release_group': 11, 'format': 6, 'video_codec': 4, 'resolution': 4, 'audio_codec': 2,
'hearing_impaired': 1}
def __init__(self, name, series, season, episode, release_group=None, resolution=None, video_codec=None,
audio_codec=None, imdb_id=None, hashes=None, size=None, subtitle_languages=None, title=None,
tvdb_id=None):
super(Episode, self).__init__(name, release_group, resolution, video_codec, audio_codec, imdb_id, hashes,
size, subtitle_languages)
def __init__(self, name, series, season, episode, format=None, release_group=None, resolution=None,
video_codec=None, audio_codec=None, imdb_id=None, hashes=None, size=None, subtitle_languages=None,
title=None, year=None, tvdb_id=None):
super(Episode, self).__init__(name, format, release_group, resolution, video_codec, audio_codec, imdb_id,
hashes, size, subtitle_languages)
#: Series of the episode
self.series = series
#: Season number of the episode
self.season = season
#: Episode number of the episode
self.episode = episode
#: Title of the episode
self.title = title
#: Year of series
self.year = year
#: TVDB id of the episode
self.tvdb_id = tvdb_id
@classmethod
def fromguess(cls, name, guess):
if guess['type'] != 'episode':
raise ValueError('The guess must be an episode guess')
if 'series' not in guess or 'season' not in guess or 'episodeNumber' not in guess:
raise ValueError('Insufficient data to process the guess')
return cls(name, guess['series'], guess['season'], guess['episodeNumber'],
return cls(name, guess['series'], guess['season'], guess['episodeNumber'], format=guess.get('format'),
release_group=guess.get('releaseGroup'), resolution=guess.get('screenSize'),
video_codec=guess.get('videoCodec'), audio_codec=guess.get('audioCodec'),
title=guess.get('title'))
title=guess.get('title'), year=guess.get('year'))
@classmethod
def fromname(cls, name):
return cls.fromguess(name, guess_episode_info(name))
def __repr__(self):
return '<%s [%r, %rx%r]>' % (self.__class__.__name__, self.series, self.season, self.episode)
if self.year is None:
return '<%s [%r, %dx%d]>' % (self.__class__.__name__, self.series, self.season, self.episode)
return '<%s [%r, %d, %dx%d]>' % (self.__class__.__name__, self.series, self.year, self.season, self.episode)
class Movie(Video):
"""Movie :class:`Video`
"""Movie :class:`Video`.
Scores are defined by a set of equations, see :func:`~subliminal.score.get_movie_equations`
Scores are defined by a set of equations, see :func:`~subliminal.score.solve_movie_equations`
:param string title: title of the movie
:param str title: title of the movie.
:param int year: year of the movie
"""
scores = {'title': 13, 'video_codec': 2, 'resolution': 2, 'audio_codec': 1, 'year': 7, 'imdb_id': 31,
'release_group': 6, 'hash': 31}
#: Score by match property
scores = {'hash': 62, 'imdb_id': 62, 'title': 23, 'year': 12, 'release_group': 11, 'format': 6, 'video_codec': 4,
'resolution': 4, 'audio_codec': 2, 'hearing_impaired': 1}
def __init__(self, name, title, release_group=None, resolution=None, video_codec=None, audio_codec=None,
imdb_id=None, hashes=None, size=None, subtitle_languages=None, year=None):
super(Movie, self).__init__(name, release_group, resolution, video_codec, audio_codec, imdb_id, hashes,
def __init__(self, name, title, format=None, release_group=None, resolution=None, video_codec=None,
audio_codec=None, imdb_id=None, hashes=None, size=None, subtitle_languages=None, year=None):
super(Movie, self).__init__(name, format, release_group, resolution, video_codec, audio_codec, imdb_id, hashes,
size, subtitle_languages)
#: Title of the movie
self.title = title
#: Year of the movie
self.year = year
@classmethod
def fromguess(cls, name, guess):
if guess['type'] != 'movie':
raise ValueError('The guess must be a movie guess')
if 'title' not in guess:
raise ValueError('Insufficient data to process the guess')
return cls(name, guess['title'], release_group=guess.get('releaseGroup'), resolution=guess.get('screenSize'),
video_codec=guess.get('videoCodec'), audio_codec=guess.get('audioCodec'),
year=guess.get('year'))
return cls(name, guess['title'], format=guess.get('format'), release_group=guess.get('releaseGroup'),
resolution=guess.get('screenSize'), video_codec=guess.get('videoCodec'),
audio_codec=guess.get('audioCodec'), year=guess.get('year'))
@classmethod
def fromname(cls, name):
return cls.fromguess(name, guess_movie_info(name))
def __repr__(self):
if self.year is None:
return '<%s [%r]>' % (self.__class__.__name__, self.title)
return '<%s [%r, %r]>' % (self.__class__.__name__, self.title, self.year)
return '<%s [%r, %d]>' % (self.__class__.__name__, self.title, self.year)
def scan_subtitle_languages(path):
"""Search for subtitles with alpha2 extension from a video `path` and return their language
def search_external_subtitles(path):
"""Search for external subtitles from a video `path` and their associated language.
:param string path: path to the video
:return: found subtitle languages
:rtype: set
:param str path: path to the video.
:return: found subtitles with their languages.
:rtype: dict
"""
language_extensions = tuple('.' + c for c in babelfish.get_language_converter('alpha2').codes)
dirpath, filename = os.path.split(path)
subtitles = set()
dirpath = dirpath or '.'
fileroot, fileext = os.path.splitext(filename)
subtitles = {}
for p in os.listdir(dirpath):
if not isinstance(p, bytes) and p.startswith(os.path.splitext(filename)[0]) and p.endswith(SUBTITLE_EXTENSIONS):
if os.path.splitext(p)[0].endswith(language_extensions):
subtitles.add(babelfish.Language.fromalpha2(os.path.splitext(p)[0][-2:]))
else:
subtitles.add(babelfish.Language('und'))
# skip badly encoded filenames
if isinstance(p, bytes): # pragma: no cover
logger.error('Skipping badly encoded filename %r in %r', p.decode('utf-8', errors='replace'), dirpath)
continue
# keep only valid subtitle filenames
if not p.startswith(fileroot) or not p.endswith(SUBTITLE_EXTENSIONS):
continue
# extract the potential language code
language_code = p[len(fileroot):-len(os.path.splitext(p)[1])].replace(fileext, '').replace('_', '-')[1:]
# default language is undefined
language = Language('und')
# attempt to parse
if language_code:
try:
language = Language.fromietf(language_code)
except ValueError:
logger.error('Cannot parse language code %r', language_code)
subtitles[p] = language
logger.debug('Found subtitles %r', subtitles)
return subtitles
def scan_video(path, subtitles=True, embedded_subtitles=True):
"""Scan a video and its subtitle languages from a video `path`
"""Scan a video and its subtitle languages from a video `path`.
:param string path: absolute path to the video
:param bool subtitles: scan for subtitles with the same name
:param bool embedded_subtitles: scan for embedded subtitles
:return: the scanned video
:param str path: existing path to the video.
:param bool subtitles: scan for subtitles with the same name.
:param bool embedded_subtitles: scan for embedded subtitles.
:return: the scanned video.
:rtype: :class:`Video`
:raise: ValueError if cannot guess enough information from the path
"""
# check for non-existing path
if not os.path.exists(path):
raise ValueError('Path does not exist')
# check video extension
if not path.endswith(VIDEO_EXTENSIONS):
raise ValueError('%s is not a valid video extension' % os.path.splitext(path)[1])
dirpath, filename = os.path.split(path)
logger.info('Scanning video %r in %r', filename, dirpath)
video = Video.fromguess(path, guessit.guess_file_info(path, 'autodetect'))
# guess
video = Video.fromguess(path, guess_file_info(path))
# size and hashes
video.size = os.path.getsize(path)
if video.size > 10485760:
logger.debug('Size is %d', video.size)
@@ -191,23 +310,29 @@ def scan_video(path, subtitles=True, embedded_subtitles=True):
logger.debug('Computed hashes %r', video.hashes)
else:
logger.warning('Size is lower than 10MB: hashes not computed')
# external subtitles
if subtitles:
video.subtitle_languages |= scan_subtitle_languages(path)
# enzyme
video.subtitle_languages |= set(search_external_subtitles(path).values())
# video metadata with enzyme
try:
if filename.endswith('.mkv'):
with open(path, 'rb') as f:
mkv = enzyme.MKV(f)
mkv = MKV(f)
# main video track
if mkv.video_tracks:
video_track = mkv.video_tracks[0]
# resolution
if video_track.height in (480, 720, 1080):
if video_track.interlaced:
video.resolution = '%di' % video_track.height
logger.debug('Found resolution %s with enzyme', video.resolution)
else:
video.resolution = '%dp' % video_track.height
logger.debug('Found resolution %s with enzyme', video.resolution)
logger.debug('Found resolution %s with enzyme', video.resolution)
# video codec
if video_track.codec_id == 'V_MPEG4/ISO/AVC':
video.video_codec = 'h264'
@@ -220,6 +345,8 @@ def scan_video(path, subtitles=True, embedded_subtitles=True):
logger.debug('Found video_codec %s with enzyme', video.video_codec)
else:
logger.warning('MKV has no video track')
# main audio track
if mkv.audio_tracks:
audio_track = mkv.audio_tracks[0]
# audio codec
@@ -234,148 +361,156 @@ def scan_video(path, subtitles=True, embedded_subtitles=True):
logger.debug('Found audio_codec %s with enzyme', video.audio_codec)
else:
logger.warning('MKV has no audio track')
# subtitle tracks
if mkv.subtitle_tracks:
# embedded subtitles
if embedded_subtitles:
embedded_subtitle_languages = set()
for st in mkv.subtitle_tracks:
if st.language:
try:
embedded_subtitle_languages.add(babelfish.Language.fromalpha3b(st.language))
except babelfish.Error:
embedded_subtitle_languages.add(Language.fromalpha3b(st.language))
except BabelfishError:
logger.error('Embedded subtitle track language %r is not a valid language', st.language)
embedded_subtitle_languages.add(babelfish.Language('und'))
embedded_subtitle_languages.add(Language('und'))
elif st.name:
try:
embedded_subtitle_languages.add(babelfish.Language.fromname(st.name))
except babelfish.Error:
logger.error('Embedded subtitle track name %r is not a valid language', st.name)
embedded_subtitle_languages.add(babelfish.Language('und'))
embedded_subtitle_languages.add(Language.fromname(st.name))
except BabelfishError:
logger.debug('Embedded subtitle track name %r is not a valid language', st.name)
embedded_subtitle_languages.add(Language('und'))
else:
embedded_subtitle_languages.add(babelfish.Language('und'))
embedded_subtitle_languages.add(Language('und'))
logger.debug('Found embedded subtitle %r with enzyme', embedded_subtitle_languages)
video.subtitle_languages |= embedded_subtitle_languages
else:
logger.debug('MKV has no subtitle track')
except enzyme.Error:
logger.error('Parsing video metadata with enzyme failed')
except EnzymeError:
logger.exception('Parsing video metadata with enzyme failed')
return video
def scan_videos(paths, subtitles=True, embedded_subtitles=True, age=None):
"""Scan `paths` for videos and their subtitle languages
def scan_videos(path, subtitles=True, embedded_subtitles=True):
"""Scan `path` for videos and their subtitles.
:params paths: absolute paths to scan for videos
:type paths: list of string
:param bool subtitles: scan for subtitles with the same name
:param bool embedded_subtitles: scan for embedded subtitles
:param age: age of the video, if any
:type age: datetime.timedelta or None
:return: the scanned videos
:param str path: existing directory path to scan.
:param bool subtitles: scan for subtitles with the same name.
:param bool embedded_subtitles: scan for embedded subtitles.
:return: the scanned videos.
:rtype: list of :class:`Video`
"""
# check for non-existing path
if not os.path.exists(path):
raise ValueError('Path does not exist')
# check for non-directory path
if not os.path.isdir(path):
raise ValueError('Path is not a directory')
# walk the path
videos = []
# scan files
for filepath in [p for p in paths if os.path.isfile(p)]:
if age and datetime.datetime.now() - datetime.datetime.fromtimestamp(os.path.getmtime(filepath)) > age:
logger.info('Skipping video %r: older than %r', filepath, age)
for dirpath, dirnames, filenames in os.walk(path):
# skip badly encoded directory names
if isinstance(dirpath, bytes): # pragma: no cover
logger.error('Skipping badly encoded directory %r', dirpath.decode('utf-8', errors='replace'))
continue
try:
videos.append(scan_video(filepath, subtitles, embedded_subtitles))
except ValueError as e:
logger.error('Skipping video: %s', e)
continue
# scan directories
for path in [p for p in paths if os.path.isdir(p)]:
logger.info('Scanning directory %r', path)
for dirpath, dirnames, filenames in os.walk(path):
# skip badly encoded directories
if isinstance(dirpath, bytes):
logger.error('Skipping badly encoded directory %r', dirpath.decode('utf-8', errors='replace'))
logger.debug('Walking directory %s', dirpath)
# remove badly encoded and hidden dirnames
for dirname in list(dirnames):
if isinstance(dirname, bytes): # pragma: no cover
logger.error('Skipping badly encoded dirname %r in %r', dirname.decode('utf-8', errors='replace'),
dirpath)
dirnames.remove(dirname)
elif dirname.startswith('.'):
logger.debug('Skipping hidden dirname %r in %r', dirname, dirpath)
dirnames.remove(dirname)
# scan for videos
for filename in filenames:
# skip badly encoded filenames
if isinstance(filename, bytes): # pragma: no cover
logger.error('Skipping badly encoded filename %r in %r', filename.decode('utf-8', errors='replace'),
dirpath)
continue
# skip badly encoded and hidden sub directories
for dirname in list(dirnames):
if isinstance(dirname, bytes):
logger.error('Skipping badly encoded dirname %r in %r', dirname.decode('utf-8', errors='replace'),
dirpath)
dirnames.remove(dirname)
elif dirname.startswith('.'):
logger.debug('Skipping hidden dirname %r in %r', dirname, dirpath)
dirnames.remove(dirname)
# scan for videos
for filename in filenames:
# skip badly encoded files
if isinstance(filename, bytes):
logger.error('Skipping badly encoded filename %r in %r', filename.decode('utf-8', errors='replace'),
dirpath)
continue
# filter videos
if not filename.endswith(VIDEO_EXTENSIONS):
continue
# skip hidden files
if filename.startswith('.'):
logger.debug('Skipping hidden filename %r in %r', filename, dirpath)
continue
filepath = os.path.join(dirpath, filename)
# skip links
if os.path.islink(filepath):
logger.debug('Skipping link %r in %r', filename, dirpath)
continue
if age and datetime.datetime.now() - datetime.datetime.fromtimestamp(os.path.getmtime(filepath)) > age:
logger.info('Skipping video %r: older than %r', filepath, age)
continue
try:
video = scan_video(filepath, subtitles, embedded_subtitles)
except ValueError as e:
logger.error('Skipping video: %s', e)
continue
videos.append(video)
# filter on videos
if not filename.endswith(VIDEO_EXTENSIONS):
continue
# skip hidden files
if filename.startswith('.'):
logger.debug('Skipping hidden filename %r in %r', filename, dirpath)
continue
# reconstruct the file path
filepath = os.path.join(dirpath, filename)
# skip links
if os.path.islink(filepath):
logger.debug('Skipping link %r in %r', filename, dirpath)
continue
# scan video
try:
video = scan_video(filepath, subtitles=subtitles, embedded_subtitles=embedded_subtitles)
except ValueError: # pragma: no cover
logger.exception('Error scanning video')
continue
videos.append(video)
return videos
def hash_opensubtitles(video_path):
"""Compute a hash using OpenSubtitles' algorithm
"""Compute a hash using OpenSubtitles' algorithm.
:param string video_path: path of the video
:return: the hash
:rtype: string
:param str video_path: path of the video.
:return: the hash.
:rtype: str
"""
bytesize = struct.calcsize(b'q')
bytesize = struct.calcsize(b'<q')
with open(video_path, 'rb') as f:
filesize = os.path.getsize(video_path)
filehash = filesize
if filesize < 65536 * 2:
return None
for _ in range(65536 / bytesize):
return
for _ in range(65536 // bytesize):
filebuffer = f.read(bytesize)
(l_value,) = struct.unpack(b'q', filebuffer)
(l_value,) = struct.unpack(b'<q', filebuffer)
filehash += l_value
filehash = filehash & 0xFFFFFFFFFFFFFFFF # to remain as 64bit number
filehash &= 0xFFFFFFFFFFFFFFFF # to remain as 64bit number
f.seek(max(0, filesize - 65536), 0)
for _ in range(65536 / bytesize):
for _ in range(65536 // bytesize):
filebuffer = f.read(bytesize)
(l_value,) = struct.unpack(b'q', filebuffer)
(l_value,) = struct.unpack(b'<q', filebuffer)
filehash += l_value
filehash = filehash & 0xFFFFFFFFFFFFFFFF
filehash &= 0xFFFFFFFFFFFFFFFF
returnedhash = '%016x' % filehash
return returnedhash
def hash_thesubdb(video_path):
"""Compute a hash using TheSubDB's algorithm
"""Compute a hash using TheSubDB's algorithm.
:param string video_path: path of the video
:return: the hash
:rtype: string
:param str video_path: path of the video.
:return: the hash.
:rtype: str
"""
readsize = 64 * 1024
if os.path.getsize(video_path) < readsize:
return None
return
with open(video_path, 'rb') as f:
data = f.read(readsize)
f.seek(-readsize, os.SEEK_END)
data += f.read(readsize)
return hashlib.md5(data).hexdigest().decode('ascii')
return hashlib.md5(data).hexdigest()
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+333
View File
@@ -0,0 +1,333 @@
interactions:
- request:
body: password=subliminal&username=subliminal&Submit=Log+in
headers:
Content-Length: ['53']
Content-Type: [application/x-www-form-urlencoded]
User-Agent: [Subliminal/0.8.0]
method: POST
uri: http://www.addic7ed.com/dologin.php
response:
body: {string: "\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>Addic7ed.com
- For all those TV Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum
and more -</title>\n<link href=\"css/wikisubtitles.css\" rel=\"stylesheet\"
title=\"default\" type=\"text/css\" media=\"screen\"/>\n</head>\n\n<body>\n<center><br
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
Shows and Movies.</small>&nbsp; \n<select name=\"applang\" class=\"inputCool\"
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
colspan=\"2\">\n\n<script language=\"javascript\">\nvar url=\"/msgspopup.php?count=1\";\t\teditwin
= window.open(url, \"msgswin\", 'height=200,width=350,toolbar=0,location=0,statusbar=0,menubar=0');
\n\t\tif (editwin.focus) {editwin.focus()}\n</script>\n<div id=\"hBar\">\n\t\t\t
\ <ul>\n\t\t\t\t<li><a class=\"button white\" href=\"/panel.php\">My Panel</a></li><li><a
class=\"button white\" href=\"/newsub.php\">Upload</a></li>\t\t\t<li><a class=\"button
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/logout.php\">Logout</a></li>\n\t\t\t </ul>\n\t\t\t </div>\n</td></tr>
\n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n <a
href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\" height=\"32\"
src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\" border=\"0\"
/></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img width=\"32\"
height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\" alt=\"IRC\"
border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=tahoma&amp;height=21&amp;appId=121322186712\"
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
}\n </style>\n<![endif]-->\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
\ \n</body>\n</html>\n"}
headers:
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:11:36 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Location: [/]
Pragma: [no-cache]
Server: [nginx]
Set-Cookie: [PHPSESSID=sji8d1inpflpb64eg1ahge4f74; path=/]
X-Powered-By: [PHP/5.3.3]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
Cookie: [PHPSESSID=sji8d1inpflpb64eg1ahge4f74]
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.addic7ed.com/panel.php
response:
body: {string: " \n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n\n<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>Addic7ed.com
- For all those TV Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum
and more -</title>\n<link href=\"css/wikisubtitles.css\" rel=\"stylesheet\"
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
/> \n<link rel=\"stylesheet\" type=\"text/css\" href=\"css/panel.css\" >\n</head>\n<body>\n\n<center><br
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
Shows and Movies.</small>&nbsp; \n<select name=\"applang\" class=\"inputCool\"
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
colspan=\"2\">\n\n<script language=\"javascript\">\nvar url=\"/msgspopup.php?count=1\";\t\teditwin
= window.open(url, \"msgswin\", 'height=200,width=350,toolbar=0,location=0,statusbar=0,menubar=0');
\n\t\tif (editwin.focus) {editwin.focus()}\n</script>\n<div id=\"hBar\">\n\t\t\t
\ <ul>\n\t\t\t\t<li><a class=\"button white\" href=\"/panel.php\">My Panel</a></li><li><a
class=\"button white\" href=\"/newsub.php\">Upload</a></li>\t\t\t<li><a class=\"button
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/logout.php\">Logout</a></li>\n\t\t\t </ul>\n\t\t\t </div>\n</td></tr>
\n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n <a
href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\" height=\"32\"
src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\" border=\"0\"
/></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img width=\"32\"
height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\" alt=\"IRC\"
border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=tahoma&amp;height=21&amp;appId=121322186712\"
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
}\n </style>\n<![endif]-->\n\n\n<table width=\"94%\" border=\"0\" cellpadding=\"0\"
cellspacing=\"0\">\n <tr bgcolor=\"#FFFFFF\">\n <th width=\"14%\" height=\"37\"
bgcolor=\"#009BCA\" scope=\"row\"></th>\n \n <td width=\"83%\" height=\"37\"><center>\n<div
id=\"container\"> \n \t<table class=\"tabel\" border=\"0\">\n \t<tr>
<!-- table header -->\n \t<td class=\"tablecorner\"><img src=\"images/tl.gif\"
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
src=\"images/tr.gif\" /></td>\n </tr>\n <tr>\n \t<td></td>\n
\ <td><div class=\"subItem\"><big><center>subliminal - </center></div>\n</td>\n
\ <td></td>\n </tr>\n <tr> <!-- table
footer -->\n \t<td class=\"tablecorner\"><img src=\"images/bl.gif\"
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
src=\"images/br.gif\" /></td>\n </tr>\n </table>\n </div></td>\n
\ </tr>\n<tr><td><img src=\"images/invisible.gif\"></td></tr>\n <tr>\n<th
height=\"58\" bgcolor=\"#009BCA\" scope=\"row\"><div class=\"navbar\">\r\n<!--
*********************************Start Menu******************************
-->\r\n<div class=\"mainDiv\" >\r\n<div class=\"topItem\" >Personal</div>\r\n<div
class=\"dropMenu\" ><!-- -->\r\n <div class=\"subMenu\" style=\"display:inline;\">\r\n
\ <div class=\"subItem\"><a href=\"/panel_edit_profile.php\">Edit
Profile</a></div>\r\n <div class=\"subItem\"><a href=\"/mydownloads.php\">My
Downloads</a></div>\r\n <div class=\"subItem\"><a href=\"/following.php\">I'm
Following</a></div>\r\n <div class=\"subItem\"><a href=\"/myviews.php\">I've
Viewed</a></div>\r\n </div>\r\n</div>\r\n</div>\r\n<!-- *********************************End
Menu****************************** --></th>\r\n <td bgcolor=\"#009BCA\"
align=\"center\">\n<div id=\"container\"> \n \t<table class=\"tabel70\"
border=0\">\n \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
src=\"/images/tl.gif\" /></td>\n <td></td>\n <td
class=\"tablecorner\"><img src=\"/images/tr.gif\" /></td>\n </tr>\n
\ <tr>\n \t<td></td>\n <td>\n<table class=\"tabel\"
border=\"0\" align=\"center\">\n <tr>\n <td align=\"center\" rowspan=\"10\"><img
src=\"http://www.gravatar.com/avatar.php?gravatar_id=db74435d70e361342a19ce6de59db4ff&size=100&rating=X&border=FF0000\"
width=\"100\" height=\"100\" /></td>\n <td></td>\n </tr>\n <tr>\n
\ <td class=\"topItem\">Addict Since</td>\n <td>2015-06-30 16:35:35</td>\n
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\">Web
site</td>\n <td></td>\n <td></td>\n </tr>\n <tr>\n
\ <td class=\"topItem\">Signature</td>\n <td></td>\n <td></td>\n
\ </tr>\n <tr>\n <td class=\"topItem\">Gender</td>\n <td>Male</td>\n
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\">Downloads
by User Today</td>\n <td><a href='mydownloads.php'>0 of 40</a></td>\n
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\">Downloads
from IP Today</td>\n <td><a href='log.php?mode=ip&ip=5.51.3.145'>5</a></td>\n
\ <td></td>\n </tr>\n <tr>\n <td class=\"topItem\">Class</td>\n
\ \t<td>Regular</td>\n <td></td>\n </tr>\n <tr>\n <td
class=\"topItem\">Last Seen</td>\n <td>2015-07-04 19:11:36</td>\n <td></td>\n
\ </tr>\n <tr>\n <td class=\"topItem\">Last IP</td>\n <td><a
href='log.php?mode=ip&ip=5.51.3.145'>5.51.3.145</a></td>\n <td></td>\n
\ </tr>\n <tr>\n <td class=\"topItem\">Episodes created</td>\n
\ <td>0</td>\n <td></td>\n </tr>\n </table>\n</td>\n
\ <td></td>\n </tr>\n <tr> <!-- table
footer -->\n \t<td class=\"tablecorner\"><img src=\"/images/bl.gif\"
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
src=\"/images/br.gif\" /></td>\n </tr>\n </table>\n </div>\n</td>\n
\ \n<tr bgcolor=\"#009BCA\">\n <th height=\"80\" scope=\"row\"><div
class=\"navbar\">\n<!-- *********************************Start Menu******************************
-->\n<div class=\"mainDiv\" >\n<div class=\"topItem\" >Messages</div> \n<div
class=\"dropMenu\" ><!-- -->\n\t<div class=\"subMenu\" style=\"display:inline;\">\n\t\t<div
class=\"subItem\"><a href=\"msginbox.php\">Inbox</a></div>\n\t <div
class=\"subItem\"><a href=\"msgoutbox.php\">Outbox</a></div>\n\t\t<div class=\"subItem\"><a
href=\"msgcreate.php\">Compose</a></div>\n\t</div>\n</div>\n</div>\n<!-- *********************************End
Menu****************************** --></th>\n <td colspan=\"2\" bgcolor=\"#009BCA\"></td>\n
\ </tr>\n <tr bgcolor=\"#009BCA\">\n <th height=\"74\" bgcolor=\"#009BCA\"
scope=\"row\"><div class=\"navbar\">\n<!-- *********************************Start
Menu****************************** -->\n<div class=\"mainDiv\" >\n<div class=\"topItem\"
>RSS Feeds</div> \n<div class=\"dropMenu\" ><!-- -->\n\t<div class=\"subMenu\"
style=\"display:inline;\">\n\t\t<div class=\"subItem\"><a href=\"/log.php?mode=news\">Latest
News</a></div>\n\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=hotspot\">New
Releases</a></div>\n\t <div class=\"subItem\"><a href=\"/rss.php?mode=completed\">Latest
Files</a></div>\n\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=edited\">Latest
Edited Files</a></div>\n\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=translated\">Latest
Started Translations</a></div>\n\t\t<div class=\"subItem\"><a href=\"/rss.php?mode=versions\">Latest
New Versions</a></div>\n\t</div>\n</div>\n</div>\n<!-- *********************************End
Menu****************************** --></th>\n <td colspan=\"2\" rowspan=\"5\"></td>\n
\ </tr>\n <tr bgcolor=\"#FFFFFF\">\n <th height=\"75\" bgcolor=\"#009BCA\"
scope=\"row\"><div class=\"navbar\">\n <!-- *********************************Start
Menu****************************** -->\n <div class=\"mainDiv\" >\n <div
class=\"topItem\" >Support Addic7ed</div> \n <div class=\"dropMenu\"
><!-- -->\n <div class=\"subMenu\" style=\"display:inline;\">\n <div
class=\"subItem\"><a href=\"/contact.php\">Donations</a></div>\n </div>\n
\ </div>\n </div>\n <!-- *********************************End Menu******************************
--></th>\n </tr>\n <tr bgcolor=\"#009BCA\">\n <th height=\"70\" scope=\"row\"><div
class=\"navbar\">\n <!-- *********************************Start Menu******************************
-->\n <div class=\"mainDiv\" >\n <div class=\"topItem\" >Help & Contact</div>
\ \n <div class=\"dropMenu\" ><!-- -->\n <div class=\"subMenu\"
style=\"display:inline;\">\n <div class=\"subItem\"><a href=\"http://www.sub-talk.net/\">Forums</a></div>\n
\ <div class=\"subItem\"><a href=\"/contact.php\">Contact</a></div> \n
\ </div>\n </div>\n </div>\n <!-- *********************************End
Menu****************************** --></th>\n </tr>\n <tr bgcolor=\"#009BCA\">\n
\ <th height=\"98\" scope=\"row\"><div class=\"navbar\">\n <!-- *********************************Start
Menu****************************** -->\n <div class=\"mainDiv\" >\n <div
class=\"topItem\" >Miscellaneous</div> \n <div class=\"dropMenu\"
><!-- -->\n <div class=\"subMenu\" style=\"display:inline;\">\n <div
class=\"subItem\"><a href=\"/shows-schedule\">Shows Schedule</a></div>\n <div
class=\"subItem\"><a href=\"http://www.twitter.com/addic7ed\">Addic7ed@Twitter</a></div>\n
\ <div class=\"subItem\"><a href=\"irc://irc.efnet.net/addic7ed\">Addic7ed
on IRC</a></div>\n <div class=\"subItem\"><a href=\"http://chat.mibbit.com/?server=irc.umich.edu&channel=%23addic7ed\">Addic7ed
- IRC (WebChat)</a></div>\n <div class=\"subItem\"><a href=\"http://www.facebook.com/pages/Addic7ed-Subtitles/103460216722?ref=nf\">Addic7ed
on Facebook</a></div>\n </div>\n </div>\n </div>\n <!-- *********************************End
Menu****************************** --></th>\n </tr>\n \n\n</table>\n<script
type=\"text/javascript\" src=\"/xpmenuv21.js\"></script>\n</div>\n\n<center><table
border=\"0\" width=\"90%\">\n<tr>\n<td class=\"NewsTitle\"><img width=\"20\"
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Addic7ed</td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
\ \n</body>\n</html>\n"}
headers:
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:11:36 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [nginx]
X-Powered-By: [PHP/5.3.3]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,116 @@
interactions:
- request:
body: password=lanimilbus&username=subliminal&Submit=Log+in
headers:
Content-Length: ['53']
Content-Type: [application/x-www-form-urlencoded]
User-Agent: [Subliminal/0.8.0]
method: POST
uri: http://www.addic7ed.com/dologin.php
response:
body: {string: "\n<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>Addic7ed.com
- For all those TV Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum
and more -</title>\n<link href=\"css/wikisubtitles.css\" rel=\"stylesheet\"
title=\"default\" type=\"text/css\" media=\"screen\"/>\n</head>\n\n<body>\n<center><br
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
Shows and Movies.</small>&nbsp; \n<select name=\"applang\" class=\"inputCool\"
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=tahoma&amp;height=21&amp;appId=121322186712\"
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
}\n </style>\n<![endif]-->\n<p align=\"center\">Wrong password </p>\n<center><table
border=\"0\" width=\"90%\">\n<tr>\n<td class=\"NewsTitle\"><img width=\"20\"
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Addic7ed</td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Useful</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
\ \n</body>\n</html>\n"}
headers:
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:11:36 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [nginx]
Set-Cookie: [PHPSESSID=d3o4eeisg08alu7niut1m3oh04; path=/]
X-Powered-By: [PHP/5.3.3]
status: {code: 200, message: OK}
version: 1
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,527 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.addic7ed.com/search.php?Submit=Search&search=The+Big+Bang+Theory
response:
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
\"The Big Bang Theory\" Subtitle Download - Addic7ed.com - For all those TV
Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link
href=\"http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\"
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
/> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
Shows and Movies.</small>&nbsp; \n<select name=\"applang\" class=\"inputCool\"
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=tahoma&amp;height=21&amp;appId=121322186712\"
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
\ window.MGWidgetTitle13385 = \"Promoted
Content\"; (function(){\n var
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
c=iw[b];}\n catch(e){var
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
\ var
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
\ </script>\n
\ </div>\n
\ <!--
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
type=\"text\" id=\"search\" size=\"50\" value=\"The Big Bang Theory\" class=\"inputCool\"/>&nbsp;\n
<input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"Search\"
/></form><br />\n\n<b>187 results found</b> </div><br />\n\n<br />\n\t<center>\n\n</center>\n<br
/>\n<center>&nbsp;&nbsp;<img src=\"http://www.addic7ed.com/images/database.png\"
/> <span class=\"titulo\">\nAre you looking for <a href=\"/show/126\" >Show
<i>The Big Bang Theory</i></a>&nbsp;?</span></center><br /><br />\n\n<table
class=\"tabel\" align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/0/Unaired_Pilot\"
debug=\"27979\">The Big Bang Theory - 01x00 - Unaired Pilot</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/1/Pilot\"
debug=\"2354\">The Big Bang Theory - 01x01 - Pilot</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/2/The_big_bran_hypothesis\"
debug=\"2420\">The Big Bang Theory - 01x02 - The big bran hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/3/The_fuzzy_boots_collorary\"
debug=\"2563\">The Big Bang Theory - 01x03 - The fuzzy boots collorary</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/4/The_luminous_fish_effect\"
debug=\"2795\">The Big Bang Theory - 01x04 - The luminous fish effect</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/5/The_hamburger_postulate\"
debug=\"2937\">The Big Bang Theory - 01x05 - The hamburger postulate</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/6/The_middle_earth_paradigm\"
debug=\"3025\">The Big Bang Theory - 01x06 - The middle earth paradigm</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/7/The_dumpling_paradox\"
debug=\"3161\">The Big Bang Theory - 01x07 - The dumpling paradox</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/8/The_grasshopper_experiment\"
debug=\"3365\">The Big Bang Theory - 01x08 - The grasshopper experiment</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/9/The_Cooper_Hofstadter_polarization\"
debug=\"7863\">The Big Bang Theory - 01x09 - The Cooper Hofstadter polarization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/10/The_Loobenfeld_decay\"
debug=\"7943\">The Big Bang Theory - 01x10 - The Loobenfeld decay</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/11/The_pancake_batter_anomaly\"
debug=\"8069\">The Big Bang Theory - 01x11 - The pancake batter anomaly</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/12/The_Jerusalem_duality\"
debug=\"8415\">The Big Bang Theory - 01x12 - The Jerusalem duality</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/13/The_Bat_Jar_Conjceture\"
debug=\"8561\">The Big Bang Theory - 01x13 - The Bat Jar Conjceture</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/14/The_Nerdvana_Annihilation\"
debug=\"8672\">The Big Bang Theory - 01x14 - The Nerdvana Annihilation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/15/The_Shiksa_Indeterminacy\"
debug=\"8792\">The Big Bang Theory - 01x15 - The Shiksa Indeterminacy</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/16/The_Peanut_Reaction\"
debug=\"8979\">The Big Bang Theory - 01x16 - The Peanut Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/17/The_Tangerine_Factor\"
debug=\"11375\">The Big Bang Theory - 01x17 - The Tangerine Factor</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/1/The_Bad_Fish_Paradigm\"
debug=\"9593\">The Big Bang Theory - 02x01 - The Bad Fish Paradigm</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/2/The_Codpiece_Topology\"
debug=\"9596\">The Big Bang Theory - 02x02 - The Codpiece Topology</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/3/The_Barbarian_Sublimation\"
debug=\"10093\">The Big Bang Theory - 02x03 - The Barbarian Sublimation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/4/The_Griffin_Equivalency\"
debug=\"10094\">The Big Bang Theory - 02x04 - The Griffin Equivalency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/5/The_Euclid_Alternative\"
debug=\"10095\">The Big Bang Theory - 02x05 - The Euclid Alternative</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/6/The_Cooper-Nowitzki_Theorem\"
debug=\"10096\">The Big Bang Theory - 02x06 - The Cooper-Nowitzki Theorem</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/7/The_Panty_Pi%C3%B1ata_Polarization\"
debug=\"9600\">The Big Bang Theory - 02x07 - The Panty Pi\xF1ata Polarization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/8/The_Lizard-Spock_Expansion\"
debug=\"10099\">The Big Bang Theory - 02x08 - The Lizard-Spock Expansion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/9/The_White_Asparagus_Triangulation\"
debug=\"9602\">The Big Bang Theory - 02x09 - The White Asparagus Triangulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/10/The_Vartabedian_Conundrum\"
debug=\"9605\">The Big Bang Theory - 02x10 - The Vartabedian Conundrum</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/11/The_Bath_Item_Gift_Hypothesis\"
debug=\"9608\">The Big Bang Theory - 02x11 - The Bath Item Gift Hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/12/The_Killer_Robot_Instability\"
debug=\"10100\">The Big Bang Theory - 02x12 - The Killer Robot Instability</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/13/The_Friendship_Algorithm\"
debug=\"10102\">The Big Bang Theory - 02x13 - The Friendship Algorithm</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/14/The_Financial_Permeability\"
debug=\"10552\">The Big Bang Theory - 02x14 - The Financial Permeability</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/15/The_Maternal_Capacitance\"
debug=\"10631\">The Big Bang Theory - 02x15 - The Maternal Capacitance</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/16/The_Cushion_Saturation\"
debug=\"11144\">The Big Bang Theory - 02x16 - The Cushion Saturation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/17/The_Terminator_Decoupling\"
debug=\"11339\">The Big Bang Theory - 02x17 - The Terminator Decoupling</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/18/The_Work_Song_Nanocluster\"
debug=\"11418\">The Big Bang Theory - 02x18 - The Work Song Nanocluster</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/19/The_Dead_Hooker_Juxtaposition\"
debug=\"11809\">The Big Bang Theory - 02x19 - The Dead Hooker Juxtaposition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/20/The_Hofstadter_Isotope\"
debug=\"11989\">The Big Bang Theory - 02x20 - The Hofstadter Isotope</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/21/The_Vegas_Renormalization\"
debug=\"12156\">The Big Bang Theory - 02x21 - The Vegas Renormalization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/22/The_Classified_Materials_Turbulence\"
debug=\"12320\">The Big Bang Theory - 02x22 - The Classified Materials Turbulence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/23/The_Monopolar_Expedition\"
debug=\"12769\">The Big Bang Theory - 02x23 - The Monopolar Expedition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/1/The_Electric_Can_Opener_Fluctuation\"
debug=\"20679\">The Big Bang Theory - 03x01 - The Electric Can Opener Fluctuation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/2/The_Jiminy_Conjecture\"
debug=\"20792\">The Big Bang Theory - 03x02 - The Jiminy Conjecture</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/3/The_Gothowitz_Deviation\"
debug=\"21229\">The Big Bang Theory - 03x03 - The Gothowitz Deviation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/4/The_Pirate_Solution\"
debug=\"21404\">The Big Bang Theory - 03x04 - The Pirate Solution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/5/The_Creepy_Candy_Coating_Corollary\"
debug=\"22031\">The Big Bang Theory - 03x05 - The Creepy Candy Coating Corollary</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/6/The_Cornhusker_Vortex\"
debug=\"22315\">The Big Bang Theory - 03x06 - The Cornhusker Vortex</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/7/The_Guitarist_Amplification\"
debug=\"22479\">The Big Bang Theory - 03x07 - The Guitarist Amplification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/8/The_Adhesive_Duck_Deficiency\"
debug=\"22733\">The Big Bang Theory - 03x08 - The Adhesive Duck Deficiency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/9/The_Vengeance_Formulation\"
debug=\"23240\">The Big Bang Theory - 03x09 - The Vengeance Formulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/10/The_Gorilla_Experiment\"
debug=\"23507\">The Big Bang Theory - 03x10 - The Gorilla Experiment</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/11/The_Maternal_Congruence\"
debug=\"23645\">The Big Bang Theory - 03x11 - The Maternal Congruence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/12/The_Psychic_Vortex\"
debug=\"23974\">The Big Bang Theory - 03x12 - The Psychic Vortex</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/13/The_Bozeman_Reaction\"
debug=\"24082\">The Big Bang Theory - 03x13 - The Bozeman Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/14/The_Einstein_Approximation\"
debug=\"24334\">The Big Bang Theory - 03x14 - The Einstein Approximation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/15/The_Large_Hadron_Collision\"
debug=\"24335\">The Big Bang Theory - 03x15 - The Large Hadron Collision</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/16/The_Excelsior_Acquisition\"
debug=\"24337\">The Big Bang Theory - 03x16 - The Excelsior Acquisition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/17/The_Precious_Fragmentation\"
debug=\"24352\">The Big Bang Theory - 03x17 - The Precious Fragmentation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/18/The_Pants_Alternative\"
debug=\"24339\">The Big Bang Theory - 03x18 - The Pants Alternative</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/19/The_Wheaton_Recurrence\"
debug=\"25230\">The Big Bang Theory - 03x19 - The Wheaton Recurrence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/20/The_Spaghetti_Catalyst\"
debug=\"26996\">The Big Bang Theory - 03x20 - The Spaghetti Catalyst</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/21/The_Plimpton_Stimulation\"
debug=\"27303\">The Big Bang Theory - 03x21 - The Plimpton Stimulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/22/The_Staircase_Implementation\"
debug=\"27531\">The Big Bang Theory - 03x22 - The Staircase Implementation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/23/The_Lunar_Excitation\"
debug=\"27712\">The Big Bang Theory - 03x23 - The Lunar Excitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/1/The_Robotic_Manipulation\"
debug=\"32678\">The Big Bang Theory - 04x01 - The Robotic Manipulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/2/The_Cruciferous_Vegetable_Amplification\"
debug=\"33395\">The Big Bang Theory - 04x02 - The Cruciferous Vegetable Amplification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/3/The_Zazzy_Substitution\"
debug=\"33712\">The Big Bang Theory - 04x03 - The Zazzy Substitution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/4/The_Hot_Troll_Deviation\"
debug=\"33944\">The Big Bang Theory - 04x04 - The Hot Troll Deviation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/5/The_Desperation_Emanation\"
debug=\"34325\">The Big Bang Theory - 04x05 - The Desperation Emanation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/6/The_Irish_Pub_Formulation\"
debug=\"34542\">The Big Bang Theory - 04x06 - The Irish Pub Formulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/7/The_Apology_Insufficiency\"
debug=\"34799\">The Big Bang Theory - 04x07 - The Apology Insufficiency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/8/The_21_Second_Excitation\"
debug=\"35076\">The Big Bang Theory - 04x08 - The 21 Second Excitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/9/The_Boyfriend_Complexity\"
debug=\"35418\">The Big Bang Theory - 04x09 - The Boyfriend Complexity</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/10/The_Alien_Parasite_Hypothesis\"
debug=\"36421\">The Big Bang Theory - 04x10 - The Alien Parasite Hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/11/The_Justice_League_Recombination\"
debug=\"36591\">The Big Bang Theory - 04x11 - The Justice League Recombination</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/12/The_Bus_Pants_Utilization\"
debug=\"37789\">The Big Bang Theory - 04x12 - The Bus Pants Utilization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/13/The_Love_Car_Displacement\"
debug=\"38686\">The Big Bang Theory - 04x13 - The Love Car Displacement</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/14/The_Thespian_Catalyst\"
debug=\"39279\">The Big Bang Theory - 04x14 - The Thespian Catalyst</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/15/The_Benefactor_Factor\"
debug=\"39696\">The Big Bang Theory - 04x15 - The Benefactor Factor</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/16/The_Cohabitation_Formulation\"
debug=\"40060\">The Big Bang Theory - 04x16 - The Cohabitation Formulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/17/The_Toast_Derivation\"
debug=\"40369\">The Big Bang Theory - 04x17 - The Toast Derivation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/17/The_toast_derivation\"
debug=\"70619\">The Big Bang Theory - 04x17 - The toast derivation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/18/The_Prestidigitation_Approximation\"
debug=\"41307\">The Big Bang Theory - 04x18 - The Prestidigitation Approximation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/19/The_Zarnecki_Incursion\"
debug=\"42144\">The Big Bang Theory - 04x19 - The Zarnecki Incursion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/20/The_Herb_Garden_Germination\"
debug=\"42506\">The Big Bang Theory - 04x20 - The Herb Garden Germination</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/21/The_Agreement_Dissection\"
debug=\"43453\">The Big Bang Theory - 04x21 - The Agreement Dissection</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/22/The_Wildebeest_Implementation\"
debug=\"43963\">The Big Bang Theory - 04x22 - The Wildebeest Implementation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/23/The_Engagement_Reaction\"
debug=\"44298\">The Big Bang Theory - 04x23 - The Engagement Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/24/The_Roommate_Transmogrification\"
debug=\"45211\">The Big Bang Theory - 04x24 - The Roommate Transmogrification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/99/It_All_Started_With_A_Big_Bang\"
debug=\"61471\">The Big Bang Theory - 04x99 - It All Started With A Big Bang</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/0/Access_All_Areas\"
debug=\"61470\">The Big Bang Theory - 05x00 - Access All Areas</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/1/The_Skank_Reflex_Analysis\"
debug=\"50098\">The Big Bang Theory - 05x01 - The Skank Reflex Analysis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/2/The_Infestation_Hypothesis\"
debug=\"50100\">The Big Bang Theory - 05x02 - The Infestation Hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/3/The_Pulled_Groin_Extrapolation\"
debug=\"50464\">The Big Bang Theory - 05x03 - The Pulled Groin Extrapolation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/4/The_Wiggly_Finger_Catalyst\"
debug=\"50787\">The Big Bang Theory - 05x04 - The Wiggly Finger Catalyst</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/5/The_Russian_Rocket_Reaction\"
debug=\"51286\">The Big Bang Theory - 05x05 - The Russian Rocket Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/6/The_Rhinitis_Revelation\"
debug=\"52502\">The Big Bang Theory - 05x06 - The Rhinitis Revelation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/7/The_Good_Guy_Fluctuation\"
debug=\"53602\">The Big Bang Theory - 05x07 - The Good Guy Fluctuation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/8/The_Isolation_Permutation\"
debug=\"54479\">The Big Bang Theory - 05x08 - The Isolation Permutation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/9/The_Ornithophobia_Diffusion\"
debug=\"54953\">The Big Bang Theory - 05x09 - The Ornithophobia Diffusion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/10/The_Flaming_Spittoon_Acquisition\"
debug=\"55214\">The Big Bang Theory - 05x10 - The Flaming Spittoon Acquisition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/11/The_Speckerman_Recurrence\"
debug=\"56382\">The Big Bang Theory - 05x11 - The Speckerman Recurrence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/12/The_Shiny_Trinket_Maneuver\"
debug=\"58784\">The Big Bang Theory - 05x12 - The Shiny Trinket Maneuver</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/13/The_Recombination_Hypothesis\"
debug=\"59003\">The Big Bang Theory - 05x13 - The Recombination Hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/14/The_Beta_Test_Initiation\"
debug=\"59196\">The Big Bang Theory - 05x14 - The Beta Test Initiation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/15/The_Friendship_Contraction\"
debug=\"59388\">The Big Bang Theory - 05x15 - The Friendship Contraction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/16/The_Vacation_Solution\"
debug=\"59650\">The Big Bang Theory - 05x16 - The Vacation Solution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/17/The_Rothman_Disintegration\"
debug=\"59867\">The Big Bang Theory - 05x17 - The Rothman Disintegration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/18/The_Werewolf_Transformation\"
debug=\"60147\">The Big Bang Theory - 05x18 - The Werewolf Transformation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/19/The_Weekend_Vortex\"
debug=\"60580\">The Big Bang Theory - 05x19 - The Weekend Vortex</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/20/The_Transporter_Malfunction\"
debug=\"61153\">The Big Bang Theory - 05x20 - The Transporter Malfunction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/21/The_Hawking_Excitation\"
debug=\"61378\">The Big Bang Theory - 05x21 - The Hawking Excitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/22/The_Stag_Convergence\"
debug=\"61967\">The Big Bang Theory - 05x22 - The Stag Convergence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/23/The_Launch_Acceleration\"
debug=\"62208\">The Big Bang Theory - 05x23 - The Launch Acceleration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/24/The_Countdown_Reflection\"
debug=\"62389\">The Big Bang Theory - 05x24 - The Countdown Reflection</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/1/The_Date_Night_Variable\"
debug=\"67050\">The Big Bang Theory - 06x01 - The Date Night Variable</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/2/The_Decoupling_Fluctuation\"
debug=\"67274\">The Big Bang Theory - 06x02 - The Decoupling Fluctuation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/3/The_Higgs_Boson_Observation\"
debug=\"67718\">The Big Bang Theory - 06x03 - The Higgs Boson Observation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/4/The_Re_Entry_Minimization\"
debug=\"67942\">The Big Bang Theory - 06x04 - The Re Entry Minimization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/5/The_Holographic_Excitation\"
debug=\"68166\">The Big Bang Theory - 06x05 - The Holographic Excitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/6/The_Extract_Obliteration\"
debug=\"68409\">The Big Bang Theory - 06x06 - The Extract Obliteration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/7/The_Habitation_Configuration\"
debug=\"68645\">The Big Bang Theory - 06x07 - The Habitation Configuration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/8/The_43_Peculiarity\"
debug=\"68891\">The Big Bang Theory - 06x08 - The 43 Peculiarity</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/9/The_Parking_Spot_Escalation\"
debug=\"69291\">The Big Bang Theory - 06x09 - The Parking Spot Escalation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/10/The_Fish_Guts_Displacement\"
debug=\"69486\">The Big Bang Theory - 06x10 - The Fish Guts Displacement</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/11/The_Santa_Simulation\"
debug=\"69725\">The Big Bang Theory - 06x11 - The Santa Simulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/12/The_Egg_Salad_Equivalency\"
debug=\"70156\">The Big Bang Theory - 06x12 - The Egg Salad Equivalency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/13/The_Bakersfield_Expedition\"
debug=\"70438\">The Big Bang Theory - 06x13 - The Bakersfield Expedition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/14/The_Cooper_Kripke_Inversion\"
debug=\"71175\">The Big Bang Theory - 06x14 - The Cooper Kripke Inversion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/15/The_Spoiler_Alert_Segmentation\"
debug=\"71445\">The Big Bang Theory - 06x15 - The Spoiler Alert Segmentation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/16/The_Tangible_Affection_Proof\"
debug=\"71783\">The Big Bang Theory - 06x16 - The Tangible Affection Proof</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/17/The_Monster_Isolation\"
debug=\"72089\">The Big Bang Theory - 06x17 - The Monster Isolation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/18/The_Contractual_Obligation_Implementation\"
debug=\"72726\">The Big Bang Theory - 06x18 - The Contractual Obligation Implementation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/19/The_Closet_Reconfiguration\"
debug=\"73084\">The Big Bang Theory - 06x19 - The Closet Reconfiguration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/20/The_Tenure_Turbulence\"
debug=\"73969\">The Big Bang Theory - 06x20 - The Tenure Turbulence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/21/The_Closure_Alternative\"
debug=\"74818\">The Big Bang Theory - 06x21 - The Closure Alternative</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/22/The_Proton_Resurgence\"
debug=\"75066\">The Big Bang Theory - 06x22 - The Proton Resurgence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/23/The_Love_Spell_Potential\"
debug=\"75335\">The Big Bang Theory - 06x23 - The Love Spell Potential</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/24/The_Bon_Voyage_Reaction\"
debug=\"75567\">The Big Bang Theory - 06x24 - The Bon Voyage Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/1/The_Hofstadter_Insufficiency\"
debug=\"79523\">The Big Bang Theory - 07x01 - The Hofstadter Insufficiency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/2/The_Deception_Verification\"
debug=\"79524\">The Big Bang Theory - 07x02 - The Deception Verification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/3/The_Scavenger_Vortex\"
debug=\"79722\">The Big Bang Theory - 07x03 - The Scavenger Vortex</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/4/The_Raiders_Minimization\"
debug=\"80031\">The Big Bang Theory - 07x04 - The Raiders Minimization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/5/The_Workplace_Proximity\"
debug=\"80254\">The Big Bang Theory - 07x05 - The Workplace Proximity</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/6/The_Romance_Resonance\"
debug=\"80518\">The Big Bang Theory - 07x06 - The Romance Resonance</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/7/The_Proton_Displacement\"
debug=\"81067\">The Big Bang Theory - 07x07 - The Proton Displacement</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/8/The_Itchy_Brain_Simulation\"
debug=\"81272\">The Big Bang Theory - 07x08 - The Itchy Brain Simulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/9/The_Thanksgiving_Decoupling\"
debug=\"81525\">The Big Bang Theory - 07x09 - The Thanksgiving Decoupling</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/10/The_Discovery_Dissipation\"
debug=\"82096\">The Big Bang Theory - 07x10 - The Discovery Dissipation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/11/The_Cooper_Extraction\"
debug=\"82274\">The Big Bang Theory - 07x11 - The Cooper Extraction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/12/The_Hesitation_Ramification\"
debug=\"82674\">The Big Bang Theory - 07x12 - The Hesitation Ramification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/13/The_Occupation_Recalibration\"
debug=\"82916\">The Big Bang Theory - 07x13 - The Occupation Recalibration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/14/The_Convention_Conundrum\"
debug=\"83752\">The Big Bang Theory - 07x14 - The Convention Conundrum</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/15/The_Locomotive_Manipulation\"
debug=\"83978\">The Big Bang Theory - 07x15 - The Locomotive Manipulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/16/The_Table_Polarization\"
debug=\"84736\">The Big Bang Theory - 07x16 - The Table Polarization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/17/The_Friendship_Turbulence\"
debug=\"85106\">The Big Bang Theory - 07x17 - The Friendship Turbulence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/18/The_Mommy_Observation\"
debug=\"85542\">The Big Bang Theory - 07x18 - The Mommy Observation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/19/The_Indecision_Amalgamation\"
debug=\"86494\">The Big Bang Theory - 07x19 - The Indecision Amalgamation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/20/The_Relationship_Diremption\"
debug=\"86744\">The Big Bang Theory - 07x20 - The Relationship Diremption</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/21/The_Anything_Can_Happen_Recurrence\"
debug=\"87403\">The Big Bang Theory - 07x21 - The Anything Can Happen Recurrence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/22/The_Proton_Transmogrification\"
debug=\"87725\">The Big Bang Theory - 07x22 - The Proton Transmogrification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/23/The_Gorilla_Dissolution\"
debug=\"87935\">The Big Bang Theory - 07x23 - The Gorilla Dissolution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/24/The_Status_Quo_Combustion\"
debug=\"88184\">The Big Bang Theory - 07x24 - The Status Quo Combustion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/1/The_Locomotion_Interruption\"
debug=\"92140\">The Big Bang Theory - 08x01 - The Locomotion Interruption</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/2/The_Junior_Professor_Solution\"
debug=\"92142\">The Big Bang Theory - 08x02 - The Junior Professor Solution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/3/The_First_Pitch_Insufficiency\"
debug=\"92307\">The Big Bang Theory - 08x03 - The First Pitch Insufficiency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/4/The_Hook-up_Reverberation\"
debug=\"92545\">The Big Bang Theory - 08x04 - The Hook-up Reverberation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/5/The_Focus_Attenuation\"
debug=\"92757\">The Big Bang Theory - 08x05 - The Focus Attenuation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/6/The_Expedition_Approximation\"
debug=\"93043\">The Big Bang Theory - 08x06 - The Expedition Approximation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/7/The_Misinterpretation_Agitation\"
debug=\"93361\">The Big Bang Theory - 08x07 - The Misinterpretation Agitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/8/The_Prom_Equivalency\"
debug=\"93612\">The Big Bang Theory - 08x08 - The Prom Equivalency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/9/The_Septum_Deviation\"
debug=\"93873\">The Big Bang Theory - 08x09 - The Septum Deviation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/10/The_Champagne_Reflection\"
debug=\"94116\">The Big Bang Theory - 08x10 - The Champagne Reflection</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/11/The_Clean_Room_Infiltration\"
debug=\"94911\">The Big Bang Theory - 08x11 - The Clean Room Infiltration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/12/The_Space_Probe_Disintegration\"
debug=\"95594\">The Big Bang Theory - 08x12 - The Space Probe Disintegration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/13/The_Anxiety_Optimization\"
debug=\"96388\">The Big Bang Theory - 08x13 - The Anxiety Optimization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/14/The_Troll_Manifestation\"
debug=\"96654\">The Big Bang Theory - 08x14 - The Troll Manifestation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/15/The_Comic_Book_Store_Regeneration\"
debug=\"97289\">The Big Bang Theory - 08x15 - The Comic Book Store Regeneration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/16/The_Intimacy_Acceleration\"
debug=\"97610\">The Big Bang Theory - 08x16 - The Intimacy Acceleration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/17/The_Colonization_Application\"
debug=\"97863\">The Big Bang Theory - 08x17 - The Colonization Application</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/18/The_Leftover_Thermalization\"
debug=\"98196\">The Big Bang Theory - 08x18 - The Leftover Thermalization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/19/The_Skywalker_Incursion\"
debug=\"99011\">The Big Bang Theory - 08x19 - The Skywalker Incursion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/20/The_Fortification_Implementation\"
debug=\"99310\">The Big Bang Theory - 08x20 - The Fortification Implementation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/21/The_Communication_Deterioration\"
debug=\"99595\">The Big Bang Theory - 08x21 - The Communication Deterioration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/22/The_Graduation_Transmission\"
debug=\"99816\">The Big Bang Theory - 08x22 - The Graduation Transmission</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/23/The_Maternal_Combustion\"
debug=\"100083\">The Big Bang Theory - 08x23 - The Maternal Combustion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/24/The_Commitment_Determination\"
debug=\"100419\">The Big Bang Theory - 08x24 - The Commitment Determination</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
\ <td></td>\n </tr>\n <tr> <!-- table
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
\ \n</body></html>\n"}
headers:
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:11:36 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [nginx]
Set-Cookie: [PHPSESSID=j0e42neln9hhc3oi0um9k4mkr6; path=/]
X-Powered-By: [PHP/5.3.3]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,153 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.addic7ed.com/search.php?Submit=Search&search=The+Big+How+I+Met+Your+Mother
response:
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
\"The Big How I Met Your Mother\" Subtitle Download - Addic7ed.com - For all
those TV Series Addic7s: Subtitles, Tv Series and Movies Talk, Forum and more
-</title>\n<link href=\"http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\"
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
/> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
Shows and Movies.</small>&nbsp; \n<select name=\"applang\" class=\"inputCool\"
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=tahoma&amp;height=21&amp;appId=121322186712\"
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
\ window.MGWidgetTitle13385 = \"Promoted
Content\"; (function(){\n var
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
c=iw[b];}\n catch(e){var
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
\ var
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
\ </script>\n
\ </div>\n
\ <!--
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
type=\"text\" id=\"search\" size=\"50\" value=\"The Big How I Met Your Mother\"
class=\"inputCool\"/>&nbsp;\n <input name=\"Submit\" type=\"submit\" class=\"coolBoton\"
value=\"Search\" /></form><br />\n\n<b>1 results found</b> </div><br />\n\n<br
/>\n\t<center>\n\n</center>\n<br />\n\n<table class=\"tabel\" align=\"center\"
width=\"80%\" border=\"0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/The_Big_Bang_Theory/3/3/The_Gothowitz_Deviation\"
debug=\"21229\">The Big Bang Theory - 03x03 - The Gothowitz Deviation</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
\ <td></td>\n </tr>\n <tr> <!-- table
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
\ \n</body></html>\n"}
headers:
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:11:40 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [nginx]
Set-Cookie: [PHPSESSID=2mcc47dmkf0qb4ffmvushb3pl0; path=/]
X-Powered-By: [PHP/5.3.3]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,533 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.addic7ed.com/search.php?Submit=Search&search=The+Big+Bang
response:
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
\"The Big Bang\" Subtitle Download - Addic7ed.com - For all those TV Series
Addic7s: Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link
href=\"http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\"
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
/> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
Shows and Movies.</small>&nbsp; \n<select name=\"applang\" class=\"inputCool\"
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=tahoma&amp;height=21&amp;appId=121322186712\"
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
\ window.MGWidgetTitle13385 = \"Promoted
Content\"; (function(){\n var
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
c=iw[b];}\n catch(e){var
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
\ var
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
\ </script>\n
\ </div>\n
\ <!--
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
type=\"text\" id=\"search\" size=\"50\" value=\"The Big Bang\" class=\"inputCool\"/>&nbsp;\n
<input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"Search\"
/></form><br />\n\n<b>190 results found</b> </div><br />\n\n<br />\n\t<center>\n\n</center>\n<br
/>\n<center>&nbsp;&nbsp;<img src=\"http://www.addic7ed.com/images/database.png\"
/> <span class=\"titulo\">\nAre you looking for <a href=\"/show/126\" >Show
<i>The Big Bang Theory</i></a>&nbsp;?</span></center><br /><br />\n\n<table
class=\"tabel\" align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/0/Unaired_Pilot\"
debug=\"27979\">The Big Bang Theory - 01x00 - Unaired Pilot</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/1/Pilot\"
debug=\"2354\">The Big Bang Theory - 01x01 - Pilot</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/2/The_big_bran_hypothesis\"
debug=\"2420\">The Big Bang Theory - 01x02 - The big bran hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/3/The_fuzzy_boots_collorary\"
debug=\"2563\">The Big Bang Theory - 01x03 - The fuzzy boots collorary</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/4/The_luminous_fish_effect\"
debug=\"2795\">The Big Bang Theory - 01x04 - The luminous fish effect</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/5/The_hamburger_postulate\"
debug=\"2937\">The Big Bang Theory - 01x05 - The hamburger postulate</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/6/The_middle_earth_paradigm\"
debug=\"3025\">The Big Bang Theory - 01x06 - The middle earth paradigm</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/7/The_dumpling_paradox\"
debug=\"3161\">The Big Bang Theory - 01x07 - The dumpling paradox</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/8/The_grasshopper_experiment\"
debug=\"3365\">The Big Bang Theory - 01x08 - The grasshopper experiment</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/9/The_Cooper_Hofstadter_polarization\"
debug=\"7863\">The Big Bang Theory - 01x09 - The Cooper Hofstadter polarization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/10/The_Loobenfeld_decay\"
debug=\"7943\">The Big Bang Theory - 01x10 - The Loobenfeld decay</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/11/The_pancake_batter_anomaly\"
debug=\"8069\">The Big Bang Theory - 01x11 - The pancake batter anomaly</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/12/The_Jerusalem_duality\"
debug=\"8415\">The Big Bang Theory - 01x12 - The Jerusalem duality</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/13/The_Bat_Jar_Conjceture\"
debug=\"8561\">The Big Bang Theory - 01x13 - The Bat Jar Conjceture</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/14/The_Nerdvana_Annihilation\"
debug=\"8672\">The Big Bang Theory - 01x14 - The Nerdvana Annihilation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/15/The_Shiksa_Indeterminacy\"
debug=\"8792\">The Big Bang Theory - 01x15 - The Shiksa Indeterminacy</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/16/The_Peanut_Reaction\"
debug=\"8979\">The Big Bang Theory - 01x16 - The Peanut Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/1/17/The_Tangerine_Factor\"
debug=\"11375\">The Big Bang Theory - 01x17 - The Tangerine Factor</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/1/The_Bad_Fish_Paradigm\"
debug=\"9593\">The Big Bang Theory - 02x01 - The Bad Fish Paradigm</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/2/The_Codpiece_Topology\"
debug=\"9596\">The Big Bang Theory - 02x02 - The Codpiece Topology</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/3/The_Barbarian_Sublimation\"
debug=\"10093\">The Big Bang Theory - 02x03 - The Barbarian Sublimation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/4/The_Griffin_Equivalency\"
debug=\"10094\">The Big Bang Theory - 02x04 - The Griffin Equivalency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/5/The_Euclid_Alternative\"
debug=\"10095\">The Big Bang Theory - 02x05 - The Euclid Alternative</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/6/The_Cooper-Nowitzki_Theorem\"
debug=\"10096\">The Big Bang Theory - 02x06 - The Cooper-Nowitzki Theorem</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/7/The_Panty_Pi%C3%B1ata_Polarization\"
debug=\"9600\">The Big Bang Theory - 02x07 - The Panty Pi\xF1ata Polarization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/8/The_Lizard-Spock_Expansion\"
debug=\"10099\">The Big Bang Theory - 02x08 - The Lizard-Spock Expansion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/9/The_White_Asparagus_Triangulation\"
debug=\"9602\">The Big Bang Theory - 02x09 - The White Asparagus Triangulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/10/The_Vartabedian_Conundrum\"
debug=\"9605\">The Big Bang Theory - 02x10 - The Vartabedian Conundrum</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/11/The_Bath_Item_Gift_Hypothesis\"
debug=\"9608\">The Big Bang Theory - 02x11 - The Bath Item Gift Hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/12/The_Killer_Robot_Instability\"
debug=\"10100\">The Big Bang Theory - 02x12 - The Killer Robot Instability</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/13/The_Friendship_Algorithm\"
debug=\"10102\">The Big Bang Theory - 02x13 - The Friendship Algorithm</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/14/The_Financial_Permeability\"
debug=\"10552\">The Big Bang Theory - 02x14 - The Financial Permeability</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/15/The_Maternal_Capacitance\"
debug=\"10631\">The Big Bang Theory - 02x15 - The Maternal Capacitance</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/16/The_Cushion_Saturation\"
debug=\"11144\">The Big Bang Theory - 02x16 - The Cushion Saturation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/17/The_Terminator_Decoupling\"
debug=\"11339\">The Big Bang Theory - 02x17 - The Terminator Decoupling</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/18/The_Work_Song_Nanocluster\"
debug=\"11418\">The Big Bang Theory - 02x18 - The Work Song Nanocluster</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/19/The_Dead_Hooker_Juxtaposition\"
debug=\"11809\">The Big Bang Theory - 02x19 - The Dead Hooker Juxtaposition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/20/The_Hofstadter_Isotope\"
debug=\"11989\">The Big Bang Theory - 02x20 - The Hofstadter Isotope</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/21/The_Vegas_Renormalization\"
debug=\"12156\">The Big Bang Theory - 02x21 - The Vegas Renormalization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/22/The_Classified_Materials_Turbulence\"
debug=\"12320\">The Big Bang Theory - 02x22 - The Classified Materials Turbulence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/2/23/The_Monopolar_Expedition\"
debug=\"12769\">The Big Bang Theory - 02x23 - The Monopolar Expedition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/1/The_Electric_Can_Opener_Fluctuation\"
debug=\"20679\">The Big Bang Theory - 03x01 - The Electric Can Opener Fluctuation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/2/The_Jiminy_Conjecture\"
debug=\"20792\">The Big Bang Theory - 03x02 - The Jiminy Conjecture</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/3/The_Gothowitz_Deviation\"
debug=\"21229\">The Big Bang Theory - 03x03 - The Gothowitz Deviation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/4/The_Pirate_Solution\"
debug=\"21404\">The Big Bang Theory - 03x04 - The Pirate Solution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/5/The_Creepy_Candy_Coating_Corollary\"
debug=\"22031\">The Big Bang Theory - 03x05 - The Creepy Candy Coating Corollary</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/6/The_Cornhusker_Vortex\"
debug=\"22315\">The Big Bang Theory - 03x06 - The Cornhusker Vortex</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/7/The_Guitarist_Amplification\"
debug=\"22479\">The Big Bang Theory - 03x07 - The Guitarist Amplification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/8/The_Adhesive_Duck_Deficiency\"
debug=\"22733\">The Big Bang Theory - 03x08 - The Adhesive Duck Deficiency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/9/The_Vengeance_Formulation\"
debug=\"23240\">The Big Bang Theory - 03x09 - The Vengeance Formulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/10/The_Gorilla_Experiment\"
debug=\"23507\">The Big Bang Theory - 03x10 - The Gorilla Experiment</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/11/The_Maternal_Congruence\"
debug=\"23645\">The Big Bang Theory - 03x11 - The Maternal Congruence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/12/The_Psychic_Vortex\"
debug=\"23974\">The Big Bang Theory - 03x12 - The Psychic Vortex</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/13/The_Bozeman_Reaction\"
debug=\"24082\">The Big Bang Theory - 03x13 - The Bozeman Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/14/The_Einstein_Approximation\"
debug=\"24334\">The Big Bang Theory - 03x14 - The Einstein Approximation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/15/The_Large_Hadron_Collision\"
debug=\"24335\">The Big Bang Theory - 03x15 - The Large Hadron Collision</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/16/The_Excelsior_Acquisition\"
debug=\"24337\">The Big Bang Theory - 03x16 - The Excelsior Acquisition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/17/The_Precious_Fragmentation\"
debug=\"24352\">The Big Bang Theory - 03x17 - The Precious Fragmentation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/18/The_Pants_Alternative\"
debug=\"24339\">The Big Bang Theory - 03x18 - The Pants Alternative</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/19/The_Wheaton_Recurrence\"
debug=\"25230\">The Big Bang Theory - 03x19 - The Wheaton Recurrence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/20/The_Spaghetti_Catalyst\"
debug=\"26996\">The Big Bang Theory - 03x20 - The Spaghetti Catalyst</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/21/The_Plimpton_Stimulation\"
debug=\"27303\">The Big Bang Theory - 03x21 - The Plimpton Stimulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/22/The_Staircase_Implementation\"
debug=\"27531\">The Big Bang Theory - 03x22 - The Staircase Implementation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/3/23/The_Lunar_Excitation\"
debug=\"27712\">The Big Bang Theory - 03x23 - The Lunar Excitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/1/The_Robotic_Manipulation\"
debug=\"32678\">The Big Bang Theory - 04x01 - The Robotic Manipulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/2/The_Cruciferous_Vegetable_Amplification\"
debug=\"33395\">The Big Bang Theory - 04x02 - The Cruciferous Vegetable Amplification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/3/The_Zazzy_Substitution\"
debug=\"33712\">The Big Bang Theory - 04x03 - The Zazzy Substitution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/4/The_Hot_Troll_Deviation\"
debug=\"33944\">The Big Bang Theory - 04x04 - The Hot Troll Deviation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/5/The_Desperation_Emanation\"
debug=\"34325\">The Big Bang Theory - 04x05 - The Desperation Emanation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/6/The_Irish_Pub_Formulation\"
debug=\"34542\">The Big Bang Theory - 04x06 - The Irish Pub Formulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/7/The_Apology_Insufficiency\"
debug=\"34799\">The Big Bang Theory - 04x07 - The Apology Insufficiency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/8/The_21_Second_Excitation\"
debug=\"35076\">The Big Bang Theory - 04x08 - The 21 Second Excitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/9/The_Boyfriend_Complexity\"
debug=\"35418\">The Big Bang Theory - 04x09 - The Boyfriend Complexity</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/10/The_Alien_Parasite_Hypothesis\"
debug=\"36421\">The Big Bang Theory - 04x10 - The Alien Parasite Hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/11/The_Justice_League_Recombination\"
debug=\"36591\">The Big Bang Theory - 04x11 - The Justice League Recombination</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/12/The_Bus_Pants_Utilization\"
debug=\"37789\">The Big Bang Theory - 04x12 - The Bus Pants Utilization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/13/The_Love_Car_Displacement\"
debug=\"38686\">The Big Bang Theory - 04x13 - The Love Car Displacement</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/14/The_Thespian_Catalyst\"
debug=\"39279\">The Big Bang Theory - 04x14 - The Thespian Catalyst</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/15/The_Benefactor_Factor\"
debug=\"39696\">The Big Bang Theory - 04x15 - The Benefactor Factor</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/16/The_Cohabitation_Formulation\"
debug=\"40060\">The Big Bang Theory - 04x16 - The Cohabitation Formulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/17/The_Toast_Derivation\"
debug=\"40369\">The Big Bang Theory - 04x17 - The Toast Derivation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/17/The_toast_derivation\"
debug=\"70619\">The Big Bang Theory - 04x17 - The toast derivation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/18/The_Prestidigitation_Approximation\"
debug=\"41307\">The Big Bang Theory - 04x18 - The Prestidigitation Approximation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/19/The_Zarnecki_Incursion\"
debug=\"42144\">The Big Bang Theory - 04x19 - The Zarnecki Incursion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/20/The_Herb_Garden_Germination\"
debug=\"42506\">The Big Bang Theory - 04x20 - The Herb Garden Germination</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/21/The_Agreement_Dissection\"
debug=\"43453\">The Big Bang Theory - 04x21 - The Agreement Dissection</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/22/The_Wildebeest_Implementation\"
debug=\"43963\">The Big Bang Theory - 04x22 - The Wildebeest Implementation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/23/The_Engagement_Reaction\"
debug=\"44298\">The Big Bang Theory - 04x23 - The Engagement Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/24/The_Roommate_Transmogrification\"
debug=\"45211\">The Big Bang Theory - 04x24 - The Roommate Transmogrification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/4/99/It_All_Started_With_A_Big_Bang\"
debug=\"61471\">The Big Bang Theory - 04x99 - It All Started With A Big Bang</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/0/Access_All_Areas\"
debug=\"61470\">The Big Bang Theory - 05x00 - Access All Areas</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/1/The_Skank_Reflex_Analysis\"
debug=\"50098\">The Big Bang Theory - 05x01 - The Skank Reflex Analysis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/2/The_Infestation_Hypothesis\"
debug=\"50100\">The Big Bang Theory - 05x02 - The Infestation Hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/3/The_Pulled_Groin_Extrapolation\"
debug=\"50464\">The Big Bang Theory - 05x03 - The Pulled Groin Extrapolation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/4/The_Wiggly_Finger_Catalyst\"
debug=\"50787\">The Big Bang Theory - 05x04 - The Wiggly Finger Catalyst</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/5/The_Russian_Rocket_Reaction\"
debug=\"51286\">The Big Bang Theory - 05x05 - The Russian Rocket Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/6/The_Rhinitis_Revelation\"
debug=\"52502\">The Big Bang Theory - 05x06 - The Rhinitis Revelation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/7/The_Good_Guy_Fluctuation\"
debug=\"53602\">The Big Bang Theory - 05x07 - The Good Guy Fluctuation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/8/The_Isolation_Permutation\"
debug=\"54479\">The Big Bang Theory - 05x08 - The Isolation Permutation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/9/The_Ornithophobia_Diffusion\"
debug=\"54953\">The Big Bang Theory - 05x09 - The Ornithophobia Diffusion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/10/The_Flaming_Spittoon_Acquisition\"
debug=\"55214\">The Big Bang Theory - 05x10 - The Flaming Spittoon Acquisition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/11/The_Speckerman_Recurrence\"
debug=\"56382\">The Big Bang Theory - 05x11 - The Speckerman Recurrence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/12/The_Shiny_Trinket_Maneuver\"
debug=\"58784\">The Big Bang Theory - 05x12 - The Shiny Trinket Maneuver</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/13/The_Recombination_Hypothesis\"
debug=\"59003\">The Big Bang Theory - 05x13 - The Recombination Hypothesis</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/14/The_Beta_Test_Initiation\"
debug=\"59196\">The Big Bang Theory - 05x14 - The Beta Test Initiation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/15/The_Friendship_Contraction\"
debug=\"59388\">The Big Bang Theory - 05x15 - The Friendship Contraction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/16/The_Vacation_Solution\"
debug=\"59650\">The Big Bang Theory - 05x16 - The Vacation Solution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/17/The_Rothman_Disintegration\"
debug=\"59867\">The Big Bang Theory - 05x17 - The Rothman Disintegration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/18/The_Werewolf_Transformation\"
debug=\"60147\">The Big Bang Theory - 05x18 - The Werewolf Transformation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/19/The_Weekend_Vortex\"
debug=\"60580\">The Big Bang Theory - 05x19 - The Weekend Vortex</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/20/The_Transporter_Malfunction\"
debug=\"61153\">The Big Bang Theory - 05x20 - The Transporter Malfunction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/21/The_Hawking_Excitation\"
debug=\"61378\">The Big Bang Theory - 05x21 - The Hawking Excitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/22/The_Stag_Convergence\"
debug=\"61967\">The Big Bang Theory - 05x22 - The Stag Convergence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/23/The_Launch_Acceleration\"
debug=\"62208\">The Big Bang Theory - 05x23 - The Launch Acceleration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/5/24/The_Countdown_Reflection\"
debug=\"62389\">The Big Bang Theory - 05x24 - The Countdown Reflection</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/1/The_Date_Night_Variable\"
debug=\"67050\">The Big Bang Theory - 06x01 - The Date Night Variable</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/2/The_Decoupling_Fluctuation\"
debug=\"67274\">The Big Bang Theory - 06x02 - The Decoupling Fluctuation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/3/The_Higgs_Boson_Observation\"
debug=\"67718\">The Big Bang Theory - 06x03 - The Higgs Boson Observation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/4/The_Re_Entry_Minimization\"
debug=\"67942\">The Big Bang Theory - 06x04 - The Re Entry Minimization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/5/The_Holographic_Excitation\"
debug=\"68166\">The Big Bang Theory - 06x05 - The Holographic Excitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/6/The_Extract_Obliteration\"
debug=\"68409\">The Big Bang Theory - 06x06 - The Extract Obliteration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/7/The_Habitation_Configuration\"
debug=\"68645\">The Big Bang Theory - 06x07 - The Habitation Configuration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/8/The_43_Peculiarity\"
debug=\"68891\">The Big Bang Theory - 06x08 - The 43 Peculiarity</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/9/The_Parking_Spot_Escalation\"
debug=\"69291\">The Big Bang Theory - 06x09 - The Parking Spot Escalation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/10/The_Fish_Guts_Displacement\"
debug=\"69486\">The Big Bang Theory - 06x10 - The Fish Guts Displacement</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/11/The_Santa_Simulation\"
debug=\"69725\">The Big Bang Theory - 06x11 - The Santa Simulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/12/The_Egg_Salad_Equivalency\"
debug=\"70156\">The Big Bang Theory - 06x12 - The Egg Salad Equivalency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/13/The_Bakersfield_Expedition\"
debug=\"70438\">The Big Bang Theory - 06x13 - The Bakersfield Expedition</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/14/The_Cooper_Kripke_Inversion\"
debug=\"71175\">The Big Bang Theory - 06x14 - The Cooper Kripke Inversion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/15/The_Spoiler_Alert_Segmentation\"
debug=\"71445\">The Big Bang Theory - 06x15 - The Spoiler Alert Segmentation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/16/The_Tangible_Affection_Proof\"
debug=\"71783\">The Big Bang Theory - 06x16 - The Tangible Affection Proof</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/17/The_Monster_Isolation\"
debug=\"72089\">The Big Bang Theory - 06x17 - The Monster Isolation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/18/The_Contractual_Obligation_Implementation\"
debug=\"72726\">The Big Bang Theory - 06x18 - The Contractual Obligation Implementation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/19/The_Closet_Reconfiguration\"
debug=\"73084\">The Big Bang Theory - 06x19 - The Closet Reconfiguration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/20/The_Tenure_Turbulence\"
debug=\"73969\">The Big Bang Theory - 06x20 - The Tenure Turbulence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/21/The_Closure_Alternative\"
debug=\"74818\">The Big Bang Theory - 06x21 - The Closure Alternative</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/22/The_Proton_Resurgence\"
debug=\"75066\">The Big Bang Theory - 06x22 - The Proton Resurgence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/23/The_Love_Spell_Potential\"
debug=\"75335\">The Big Bang Theory - 06x23 - The Love Spell Potential</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/6/24/The_Bon_Voyage_Reaction\"
debug=\"75567\">The Big Bang Theory - 06x24 - The Bon Voyage Reaction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/1/The_Hofstadter_Insufficiency\"
debug=\"79523\">The Big Bang Theory - 07x01 - The Hofstadter Insufficiency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/2/The_Deception_Verification\"
debug=\"79524\">The Big Bang Theory - 07x02 - The Deception Verification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/3/The_Scavenger_Vortex\"
debug=\"79722\">The Big Bang Theory - 07x03 - The Scavenger Vortex</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/4/The_Raiders_Minimization\"
debug=\"80031\">The Big Bang Theory - 07x04 - The Raiders Minimization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/5/The_Workplace_Proximity\"
debug=\"80254\">The Big Bang Theory - 07x05 - The Workplace Proximity</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/6/The_Romance_Resonance\"
debug=\"80518\">The Big Bang Theory - 07x06 - The Romance Resonance</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/7/The_Proton_Displacement\"
debug=\"81067\">The Big Bang Theory - 07x07 - The Proton Displacement</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/8/The_Itchy_Brain_Simulation\"
debug=\"81272\">The Big Bang Theory - 07x08 - The Itchy Brain Simulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/9/The_Thanksgiving_Decoupling\"
debug=\"81525\">The Big Bang Theory - 07x09 - The Thanksgiving Decoupling</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/10/The_Discovery_Dissipation\"
debug=\"82096\">The Big Bang Theory - 07x10 - The Discovery Dissipation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/11/The_Cooper_Extraction\"
debug=\"82274\">The Big Bang Theory - 07x11 - The Cooper Extraction</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/12/The_Hesitation_Ramification\"
debug=\"82674\">The Big Bang Theory - 07x12 - The Hesitation Ramification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/13/The_Occupation_Recalibration\"
debug=\"82916\">The Big Bang Theory - 07x13 - The Occupation Recalibration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/14/The_Convention_Conundrum\"
debug=\"83752\">The Big Bang Theory - 07x14 - The Convention Conundrum</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/15/The_Locomotive_Manipulation\"
debug=\"83978\">The Big Bang Theory - 07x15 - The Locomotive Manipulation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/16/The_Table_Polarization\"
debug=\"84736\">The Big Bang Theory - 07x16 - The Table Polarization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/17/The_Friendship_Turbulence\"
debug=\"85106\">The Big Bang Theory - 07x17 - The Friendship Turbulence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/18/The_Mommy_Observation\"
debug=\"85542\">The Big Bang Theory - 07x18 - The Mommy Observation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/19/The_Indecision_Amalgamation\"
debug=\"86494\">The Big Bang Theory - 07x19 - The Indecision Amalgamation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/20/The_Relationship_Diremption\"
debug=\"86744\">The Big Bang Theory - 07x20 - The Relationship Diremption</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/21/The_Anything_Can_Happen_Recurrence\"
debug=\"87403\">The Big Bang Theory - 07x21 - The Anything Can Happen Recurrence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/22/The_Proton_Transmogrification\"
debug=\"87725\">The Big Bang Theory - 07x22 - The Proton Transmogrification</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/23/The_Gorilla_Dissolution\"
debug=\"87935\">The Big Bang Theory - 07x23 - The Gorilla Dissolution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/7/24/The_Status_Quo_Combustion\"
debug=\"88184\">The Big Bang Theory - 07x24 - The Status Quo Combustion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/1/The_Locomotion_Interruption\"
debug=\"92140\">The Big Bang Theory - 08x01 - The Locomotion Interruption</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/2/The_Junior_Professor_Solution\"
debug=\"92142\">The Big Bang Theory - 08x02 - The Junior Professor Solution</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/3/The_First_Pitch_Insufficiency\"
debug=\"92307\">The Big Bang Theory - 08x03 - The First Pitch Insufficiency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/4/The_Hook-up_Reverberation\"
debug=\"92545\">The Big Bang Theory - 08x04 - The Hook-up Reverberation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/5/The_Focus_Attenuation\"
debug=\"92757\">The Big Bang Theory - 08x05 - The Focus Attenuation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/6/The_Expedition_Approximation\"
debug=\"93043\">The Big Bang Theory - 08x06 - The Expedition Approximation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/7/The_Misinterpretation_Agitation\"
debug=\"93361\">The Big Bang Theory - 08x07 - The Misinterpretation Agitation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/8/The_Prom_Equivalency\"
debug=\"93612\">The Big Bang Theory - 08x08 - The Prom Equivalency</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/9/The_Septum_Deviation\"
debug=\"93873\">The Big Bang Theory - 08x09 - The Septum Deviation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/10/The_Champagne_Reflection\"
debug=\"94116\">The Big Bang Theory - 08x10 - The Champagne Reflection</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/11/The_Clean_Room_Infiltration\"
debug=\"94911\">The Big Bang Theory - 08x11 - The Clean Room Infiltration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/12/The_Space_Probe_Disintegration\"
debug=\"95594\">The Big Bang Theory - 08x12 - The Space Probe Disintegration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/13/The_Anxiety_Optimization\"
debug=\"96388\">The Big Bang Theory - 08x13 - The Anxiety Optimization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/14/The_Troll_Manifestation\"
debug=\"96654\">The Big Bang Theory - 08x14 - The Troll Manifestation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/15/The_Comic_Book_Store_Regeneration\"
debug=\"97289\">The Big Bang Theory - 08x15 - The Comic Book Store Regeneration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/16/The_Intimacy_Acceleration\"
debug=\"97610\">The Big Bang Theory - 08x16 - The Intimacy Acceleration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/17/The_Colonization_Application\"
debug=\"97863\">The Big Bang Theory - 08x17 - The Colonization Application</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/18/The_Leftover_Thermalization\"
debug=\"98196\">The Big Bang Theory - 08x18 - The Leftover Thermalization</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/19/The_Skywalker_Incursion\"
debug=\"99011\">The Big Bang Theory - 08x19 - The Skywalker Incursion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/20/The_Fortification_Implementation\"
debug=\"99310\">The Big Bang Theory - 08x20 - The Fortification Implementation</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/21/The_Communication_Deterioration\"
debug=\"99595\">The Big Bang Theory - 08x21 - The Communication Deterioration</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/22/The_Graduation_Transmission\"
debug=\"99816\">The Big Bang Theory - 08x22 - The Graduation Transmission</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/23/The_Maternal_Combustion\"
debug=\"100083\">The Big Bang Theory - 08x23 - The Maternal Combustion</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Big_Bang_Theory/8/24/The_Commitment_Determination\"
debug=\"100419\">The Big Bang Theory - 08x24 - The Commitment Determination</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Closer/6/1/The_Big_Bang\"
debug=\"28952\">The Closer - 06x01 - The Big Bang</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_New_Adventures_of_Old_Christine/3/1/The_big_bang\"
debug=\"6773\">The New Adventures of Old Christine - 03x01 - The big bang</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/The_Universe/1/14/Beyond_the_Big_Bang\"
debug=\"19618\">The Universe - 01x14 - Beyond the Big Bang</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
\ <td></td>\n </tr>\n <tr> <!-- table
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
\ \n</body></html>\n"}
headers:
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:11:37 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [nginx]
Set-Cookie: [PHPSESSID=ns25ifo5qplrt2o336ogcb9v50; path=/]
X-Powered-By: [PHP/5.3.3]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,514 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.addic7ed.com/search.php?Submit=Search&search=Dallas
response:
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
\"Dallas\" Subtitle Download - Addic7ed.com - For all those TV Series Addic7s:
Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link href=\"http://www.addic7ed.com/css/wikisubtitles.css\"
rel=\"stylesheet\" title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT
ICON\" href=\"favicon.ico\" /> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
Shows and Movies.</small>&nbsp; \n<select name=\"applang\" class=\"inputCool\"
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=tahoma&amp;height=21&amp;appId=121322186712\"
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
\ window.MGWidgetTitle13385 = \"Promoted
Content\"; (function(){\n var
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
c=iw[b];}\n catch(e){var
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
\ var
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
\ </script>\n
\ </div>\n
\ <!--
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
type=\"text\" id=\"search\" size=\"50\" value=\"Dallas\" class=\"inputCool\"/>&nbsp;\n
<input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"Search\"
/></form><br />\n\n<b>181 results found</b> </div><br />\n\n<br />\n\t<center>\n\n</center>\n<br
/>\n<center>&nbsp;&nbsp;<img src=\"http://www.addic7ed.com/images/database.png\"
/> <span class=\"titulo\">\nAre you looking for <a href=\"/show/802\" >Show
<i>Dallas</i></a>&nbsp;?</span></center><br /><br />\n\n<table class=\"tabel\"
align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/1/1/Digger%27s_Daughter\" debug=\"31856\">Dallas
- 01x01 - Digger's Daughter</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/1/2/Lessons\" debug=\"31855\">Dallas - 01x02
- Lessons</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/1/3/Spy_in_the_House\" debug=\"31854\">Dallas
- 01x03 - Spy in the House</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/1/4/Winds_of_Vengeance\" debug=\"31853\">Dallas
- 01x04 - Winds of Vengeance</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/1/5/Barbecue\" debug=\"31852\">Dallas -
01x05 - Barbecue</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/1/Reunion__%281%29\" debug=\"31906\">Dallas
- 02x01 - Reunion (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/2/Reunion__%282%29\" debug=\"31905\">Dallas
- 02x02 - Reunion (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/3/Old_Acquaintance\" debug=\"31904\">Dallas
- 02x03 - Old Acquaintance</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/4/Bypass\" debug=\"31903\">Dallas - 02x04
- Bypass</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/5/Black_Market_Baby\" debug=\"31901\">Dallas
- 02x05 - Black Market Baby</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/6/Double_Wedding\" debug=\"31900\">Dallas
- 02x06 - Double Wedding</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/7/Runaway\" debug=\"31899\">Dallas - 02x07
- Runaway</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/8/Election\" debug=\"31898\">Dallas -
02x08 - Election</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/9/Survival\" debug=\"31897\">Dallas -
02x09 - Survival</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/10/Act_of_Love\" debug=\"31896\">Dallas
- 02x10 - Act of Love</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/11/Triangle\" debug=\"31895\">Dallas -
02x11 - Triangle</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/12/Fallen_Idol\" debug=\"31894\">Dallas
- 02x12 - Fallen Idol</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/13/Kidnapped\" debug=\"31893\">Dallas
- 02x13 - Kidnapped</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/14/Home_Again\" debug=\"31892\">Dallas
- 02x14 - Home Again</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/15/For_Love_or_Money\" debug=\"31891\">Dallas
- 02x15 - For Love or Money</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/16/Julie%27s_Return\" debug=\"31890\">Dallas
- 02x16 - Julie's Return</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/17/The_Red_File__%281%29\" debug=\"31889\">Dallas
- 02x17 - The Red File (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/18/The_Red_File__%282%29\" debug=\"31888\">Dallas
- 02x18 - The Red File (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/19/Sue_Ellen%27s_Sister\" debug=\"31887\">Dallas
- 02x19 - Sue Ellen's Sister</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/20/Call_Girl\" debug=\"31886\">Dallas
- 02x20 - Call Girl</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/21/Royal_Marriage\" debug=\"31885\">Dallas
- 02x21 - Royal Marriage</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/22/The_Outsiders\" debug=\"31884\">Dallas
- 02x22 - The Outsiders</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/23/John_Ewing_III__%281%29\" debug=\"31883\">Dallas
- 02x23 - John Ewing III (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/2/24/John_Ewing_III_%282%29\" debug=\"31882\">Dallas
- 02x24 - John Ewing III (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/1/Whatever_Happened_to_Baby_John%3F__%281%29\"
debug=\"31858\">Dallas - 03x01 - Whatever Happened to Baby John? (1)</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/2/Whatever_Happened_to_Baby_John%3F__%282%29\"
debug=\"31857\">Dallas - 03x02 - Whatever Happened to Baby John? (2)</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/3/The_Silent_Killer\"
debug=\"31881\">Dallas - 03x03 - The Silent Killer</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/3/4/Secrets\"
debug=\"31880\">Dallas - 03x04 - Secrets</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/5/The_Kristin_Affair\" debug=\"31879\">Dallas
- 03x05 - The Kristin Affair</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/6/The_Dove_Hunt\" debug=\"31878\">Dallas
- 03x06 - The Dove Hunt</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/7/The_Lost_Child\" debug=\"31877\">Dallas
- 03x07 - The Lost Child</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/8/Rodeo\" debug=\"31876\">Dallas - 03x08
- Rodeo</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/9/Mastectomy__%281%29\" debug=\"31875\">Dallas
- 03x09 - Mastectomy (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/10/Mastectomy__%282%29\" debug=\"31874\">Dallas
- 03x10 - Mastectomy (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/11/The_Heiress\" debug=\"31873\">Dallas
- 03x11 - The Heiress</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/12/Ellie_Saves_the_Day\" debug=\"31872\">Dallas
- 03x12 - Ellie Saves the Day</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/13/Mother_of_the_Year\" debug=\"31871\">Dallas
- 03x13 - Mother of the Year</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/14/Return_Engagements\" debug=\"31870\">Dallas
- 03x14 - Return Engagements</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/15/Love_and_Marriage\" debug=\"31869\">Dallas
- 03x15 - Love and Marriage</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/16/Power_Play\" debug=\"31868\">Dallas
- 03x16 - Power Play</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/17/Paternity_Suit\" debug=\"31867\">Dallas
- 03x17 - Paternity Suit</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/18/Jenna%27s_Return\" debug=\"31866\">Dallas
- 03x18 - Jenna's Return</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/19/Sue_Ellen%27s_Choice\" debug=\"31865\">Dallas
- 03x19 - Sue Ellen's Choice</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/20/Second_Thoughts\" debug=\"31864\">Dallas
- 03x20 - Second Thoughts</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/21/Divorce___Ewing_Style\" debug=\"31863\">Dallas
- 03x21 - Divorce Ewing Style</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/22/Jock%27s_Trial__%281%29\" debug=\"31862\">Dallas
- 03x22 - Jock's Trial (1)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/23/Jock%27s_Trial__%282%29\" debug=\"31861\">Dallas
- 03x23 - Jock's Trial (2)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/24/The_Wheeler_Dealer\" debug=\"31860\">Dallas
- 03x24 - The Wheeler Dealer</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/3/25/A_House_Divided\" debug=\"31859\">Dallas
- 03x25 - A House Divided</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/8/1/Killer_at_Large\" debug=\"69652\">Dallas
- 08x01 - Killer at Large</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/1/The_Family_Ewing\" debug=\"31937\">Dallas
- 09x01 - The Family Ewing</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/2/Rock_Bottom\" debug=\"31936\">Dallas
- 09x02 - Rock Bottom</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/3/Those_Eyes\" debug=\"31935\">Dallas
- 09x03 - Those Eyes</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/4/Resurrection\" debug=\"31934\">Dallas
- 09x04 - Resurrection</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/5/Saving_Grace\" debug=\"31933\">Dallas
- 09x05 - Saving Grace</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/6/Mothers\" debug=\"31932\">Dallas - 09x06
- Mothers</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/7/The_Wind_of_Change\" debug=\"31931\">Dallas
- 09x07 - The Wind of Change</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/8/Quandary\" debug=\"31930\">Dallas -
09x08 - Quandary</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/9/Close_Encounters\" debug=\"31929\">Dallas
- 09x09 - Close Encounters</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/10/Suffer_the_Little_Children\" debug=\"31928\">Dallas
- 09x10 - Suffer the Little Children</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/11/The_Prize\" debug=\"31927\">Dallas
- 09x11 - The Prize</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/12/En_Passant\" debug=\"31926\">Dallas
- 09x12 - En Passant</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/13/Goodbye%2C_Farewell%2C_and_Amen\" debug=\"31925\">Dallas
- 09x13 - Goodbye, Farewell, and Amen</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/14/Curiosity_Killed_the_Cat\" debug=\"31924\">Dallas
- 09x14 - Curiosity Killed the Cat</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/15/The_Missing_Link\" debug=\"31923\">Dallas
- 09x15 - The Missing Link</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/16/Twenty_Four_Hours\" debug=\"31922\">Dallas
- 09x16 - Twenty Four Hours</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/17/The_Deadly_Game\" debug=\"31921\">Dallas
- 09x17 - The Deadly Game</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/18/Blame_it_on_Bogota\" debug=\"31920\">Dallas
- 09x18 - Blame it on Bogota</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/19/Shadow_Games\" debug=\"31919\">Dallas
- 09x19 - Shadow Games</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/20/Missing\" debug=\"31918\">Dallas -
09x20 - Missing</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/21/Dire_Straits\" debug=\"31917\">Dallas
- 09x21 - Dire Straits</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/22/Overture\" debug=\"31916\">Dallas -
09x22 - Overture</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/23/Sitting_Ducks\" debug=\"31915\">Dallas
- 09x23 - Sitting Ducks</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/24/Masquerade\" debug=\"31914\">Dallas
- 09x24 - Masquerade</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/25/Just_Desserts\" debug=\"31913\">Dallas
- 09x25 - Just Desserts</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/26/Nothing%27s_Ever_Perfect\" debug=\"31912\">Dallas
- 09x26 - Nothing's Ever Perfect</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/27/J.R._Rising\" debug=\"31911\">Dallas
- 09x27 - J.R. Rising</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/28/Serendipity\" debug=\"31910\">Dallas
- 09x28 - Serendipity</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/29/Thrice_in_a_Lifetime\" debug=\"31909\">Dallas
- 09x29 - Thrice in a Lifetime</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/30/Hello%2C_Goodbye%2C_Hello\" debug=\"31908\">Dallas
- 09x30 - Hello, Goodbye, Hello</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/9/31/Blast_From_the_Past\" debug=\"31907\">Dallas
- 09x31 - Blast From the Past</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/1/Carousel\" debug=\"25485\">Dallas -
12x01 - Carousel</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/2/No_Greater_Love\" debug=\"25486\">Dallas
- 12x02 - No Greater Love</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/3/The_Call_of_the_Wild\" debug=\"25487\">Dallas
- 12x03 - The Call of the Wild</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/4/Out_of_the_Frying_Pan\" debug=\"25488\">Dallas
- 12x04 - Out of the Frying Pan</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/5/Road_Work\" debug=\"25489\">Dallas
- 12x05 - Road Work</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/6/War_and_Love_and_the_Whole_Damned_Thing\"
debug=\"25490\">Dallas - 12x06 - War and Love and the Whole Damned Thing</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/12/7/Showdown_at_the_Ewing_Corral\"
debug=\"25491\">Dallas - 12x07 - Showdown at the Ewing Corral</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/12/8/Deception\"
debug=\"25492\">Dallas - 12x08 - Deception</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/9/Counter_Attack\" debug=\"25493\">Dallas
- 12x09 - Counter Attack</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/10/The_Sting\" debug=\"25494\">Dallas
- 12x10 - The Sting</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/11/The_Two_Mrs._Ewings\" debug=\"25495\">Dallas
- 12x11 - The Two Mrs. Ewings</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/12/The_Switch\" debug=\"25496\">Dallas
- 12x12 - The Switch</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/13/Here%27s_Papa%21\" debug=\"25497\">Dallas
- 12x13 - Here's Papa!</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/14/Comings_and_Goings\" debug=\"25498\">Dallas
- 12x14 - Comings and Goings</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/15/Country_Girl\" debug=\"25499\">Dallas
- 12x15 - Country Girl</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/16/Wedding_Bell_Blues\" debug=\"25500\">Dallas
- 12x16 - Wedding Bell Blues</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/17/The_Way_We_Were\" debug=\"25501\">Dallas
- 12x17 - The Way We Were</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/18/The_Serpent%27s_Tooth\" debug=\"25502\">Dallas
- 12x18 - The Serpent's Tooth</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/19/Three_Hundred\" debug=\"25503\">Dallas
- 12x19 - Three Hundred</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/20/April_Showers\" debug=\"25504\">Dallas
- 12x20 - April Showers</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/21/And_Away_We_Go%21\" debug=\"25505\">Dallas
- 12x21 - And Away We Go!</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/22/Yellow_Brick_Road\" debug=\"25506\">Dallas
- 12x22 - Yellow Brick Road</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/23/The_Sound_of_Money\" debug=\"25507\">Dallas
- 12x23 - The Sound of Money</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/24/The_Great_Texas_Waltz\" debug=\"25508\">Dallas
- 12x24 - The Great Texas Waltz</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/25/Mission_to_Moscow\" debug=\"25510\">Dallas
- 12x25 - Mission to Moscow</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/12/26/Reel_Life\" debug=\"25511\">Dallas
- 12x26 - Reel Life</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/1/Phantom_of_the_Oil_Rig\" debug=\"26320\">Dallas
- 13x01 - Phantom of the Oil Rig</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/2/The_Leopard%27s_Spots\" debug=\"26321\">Dallas
- 13x02 - The Leopard's Spots</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/3/Cry_Me_a_River_of_Oil\" debug=\"26322\">Dallas
- 13x03 - Cry Me a River of Oil</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/4/Ka-Booooom%21\" debug=\"26323\">Dallas
- 13x04 - Ka-Booooom!</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/5/Sunrise%2C_Sunset\" debug=\"26324\">Dallas
- 13x05 - Sunrise, Sunset</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/6/Pride_and_Prejudice\" debug=\"26325\">Dallas
- 13x06 - Pride and Prejudice</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/7/Fathers_and_Other_Strangers\" debug=\"26326\">Dallas
- 13x07 - Fathers and Other Strangers</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/8/Black_Tide\" debug=\"26327\">Dallas
- 13x08 - Black Tide</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/9/Daddy_Dearest\" debug=\"26328\">Dallas
- 13x09 - Daddy Dearest</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/10/Hell%27s_Fury\" debug=\"26329\">Dallas
- 13x10 - Hell's Fury</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/11/Cally_on_a_Hot_Tin_Roof\" debug=\"26330\">Dallas
- 13x11 - Cally on a Hot Tin Roof</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/12/Sex%2C_Lies_and_Videotape\" debug=\"26331\">Dallas
- 13x12 - Sex, Lies and Videotape</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/13/Tale_of_Two_Cities\" debug=\"26332\">Dallas
- 13x13 - Tale of Two Cities</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/14/Judgment_Day\" debug=\"26333\">Dallas
- 13x14 - Judgment Day</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/15/Unchain_My_Heart\" debug=\"26334\">Dallas
- 13x15 - Unchain My Heart</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/16/I_Dream_of_Jeannie\" debug=\"26335\">Dallas
- 13x16 - I Dream of Jeannie</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/17/After_Midnight\" debug=\"26336\">Dallas
- 13x17 - After Midnight</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/18/The_Crucible\" debug=\"26337\">Dallas
- 13x18 - The Crucible</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/19/Dear_Hearts_and_Gentle_People\" debug=\"26338\">Dallas
- 13x19 - Dear Hearts and Gentle People</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/20/Paradise_Lost\" debug=\"26339\">Dallas
- 13x20 - Paradise Lost</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/21/Will_Power\" debug=\"26340\">Dallas
- 13x21 - Will Power</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/22/The_Smiling_Cobra\" debug=\"26341\">Dallas
- 13x22 - The Smiling Cobra</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/23/Jessica_Redux\" debug=\"26346\">Dallas
- 13x23 - Jessica Redux</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/24/Family_Plot\" debug=\"26342\">Dallas
- 13x24 - Family Plot</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/25/The_Southfork_Wedding_Jinx\" debug=\"26343\">Dallas
- 13x25 - The Southfork Wedding Jinx</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas/13/26/Three%2C_Three%2C_Three_%281%29\"
debug=\"26344\">Dallas - 13x26 - Three, Three, Three (1)</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas/13/27/Three%2C_Three%2C_Three_%282%29\"
debug=\"26345\">Dallas - 13x27 - Three, Three, Three (2)</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/film.png\" /></td><td><a href=\"movie/88544\"
debug=\"88544\">Dallas (1950)</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/1/Changing_of_the_Guard\" debug=\"63362\">Dallas
(2012) - 01x01 - Changing of the Guard</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/2/Hedging_Your_Bets\" debug=\"63364\">Dallas
(2012) - 01x02 - Hedging Your Bets</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/3/The_Price_You_Pay\" debug=\"63827\">Dallas
(2012) - 01x03 - The Price You Pay</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/4/The_Last_Hurrah\" debug=\"63994\">Dallas
(2012) - 01x04 - The Last Hurrah</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/5/Truth_and_consequences\"
debug=\"64210\">Dallas (2012) - 01x05 - Truth and consequences</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/6/The_Enemy_of_My_Enemy\"
debug=\"64512\">Dallas (2012) - 01x06 - The Enemy of My Enemy</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/7/Collateral_Damage\"
debug=\"64686\">Dallas (2012) - 01x07 - Collateral Damage</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/8/No_Good_Deed\"
debug=\"64933\">Dallas (2012) - 01x08 - No Good Deed</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/9/Family_Business\"
debug=\"65100\">Dallas (2012) - 01x09 - Family Business</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/10/Revelations\"
debug=\"65276\">Dallas (2012) - 01x10 - Revelations</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/1/Battle_Lines\"
debug=\"71069\">Dallas (2012) - 02x01 - Battle Lines</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/2/Venomous_Creatures\"
debug=\"71070\">Dallas (2012) - 02x02 - Venomous Creatures</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/3/Sins_of_the_Father\"
debug=\"71358\">Dallas (2012) - 02x03 - Sins of the Father</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/4/False_Confessions\"
debug=\"71644\">Dallas (2012) - 02x04 - False Confessions</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/5/Trial_and_Error\"
debug=\"71949\">Dallas (2012) - 02x05 - Trial and Error</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/6/Blame_Game\"
debug=\"72265\">Dallas (2012) - 02x06 - Blame Game</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/7/The_Furious_and_the_Fast\"
debug=\"72625\">Dallas (2012) - 02x07 - The Furious and the Fast</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/8/J.R.%27s_Masterpiece\"
debug=\"72969\">Dallas (2012) - 02x08 - J.R.'s Masterpiece</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/9/Ewings_Unite%21\"
debug=\"73242\">Dallas (2012) - 02x09 - Ewings Unite!</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/10/Guilt_And_Innocence\"
debug=\"73578\">Dallas (2012) - 02x10 - Guilt And Innocence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/11/Let_Me_In\"
debug=\"73846\">Dallas (2012) - 02x11 - Let Me In</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/12/A_Call_to_Arms\"
debug=\"74098\">Dallas (2012) - 02x12 - A Call to Arms</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/13/Love_%40_Family\"
debug=\"74099\">Dallas (2012) - 02x13 - Love & Family</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/14/Guilt_By_Association\"
debug=\"74342\">Dallas (2012) - 02x14 - Guilt By Association</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/15/Legacies\"
debug=\"74347\">Dallas (2012) - 02x15 - Legacies</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/1/The_Return\"
debug=\"84652\">Dallas (2012) - 03x01 - The Return</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/2/Trust_Me\"
debug=\"84941\">Dallas (2012) - 03x02 - Trust Me</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/3/Playing_Chicken\"
debug=\"85388\">Dallas (2012) - 03x03 - Playing Chicken</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/4/Lifting_the_Veil\"
debug=\"85735\">Dallas (2012) - 03x04 - Lifting the Veil</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/5/D.T.R.\"
debug=\"86033\">Dallas (2012) - 03x05 - D.T.R.</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/6/Like_Father%2C_Like_Son\"
debug=\"86406\">Dallas (2012) - 03x06 - Like Father, Like Son</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/7/Like_a_Bad_Penny\"
debug=\"86664\">Dallas (2012) - 03x07 - Like a Bad Penny</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/8/Where_There%27s_Smoke\"
debug=\"86948\">Dallas (2012) - 03x08 - Where There's Smoke</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/9/Denial%2C_Anger%2C_Acceptance\"
debug=\"91222\">Dallas (2012) - 03x09 - Denial, Anger, Acceptance</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/10/Dead_Reckoning\"
debug=\"91469\">Dallas (2012) - 03x10 - Dead Reckoning</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/11/Hurt\"
debug=\"91634\">Dallas (2012) - 03x11 - Hurt</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/12/Victims_of_Love\"
debug=\"91837\">Dallas (2012) - 03x12 - Victims of Love</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/13/Boxed_In\"
debug=\"91959\">Dallas (2012) - 03x13 - Boxed In</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/14/Endgame\"
debug=\"92148\">Dallas (2012) - 03x14 - Endgame</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/15/Brave_New_World\"
debug=\"92160\">Dallas (2012) - 03x15 - Brave New World</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/film.png\" /></td><td><a href=\"movie/82717\"
debug=\"82717\">Dallas Buyers Club (2013)</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
\ <td></td>\n </tr>\n <tr> <!-- table
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
\ \n</body></html>\n"}
headers:
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:11:38 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [nginx]
Set-Cookie: [PHPSESSID=38vgutgvno5eij1f9au3ch6au6; path=/]
X-Powered-By: [PHP/5.3.3]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,233 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.addic7ed.com/search.php?Submit=Search&search=Dallas+%282012%29
response:
body: {string: "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"
\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n<meta
http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />\n<title>\nSearch
\"Dallas (2012)\" Subtitle Download - Addic7ed.com - For all those TV Series
Addic7s: Subtitles, Tv Series and Movies Talk, Forum and more -</title>\n<link
href=\"http://www.addic7ed.com/css/wikisubtitles.css\" rel=\"stylesheet\"
title=\"default\" type=\"text/css\" />\n<link rel=\"SHORTCUT ICON\" href=\"favicon.ico\"
/> \n<script type=\"text/javascript\" src=\"http://www.addic7ed.com/js/mootools.v1.11.js\"></script>\n\n</head>\n<body>\n<center><br
/>\n<table border=\"0\">\n<tr>\n <td rowspan=\"9\"><a href=\"/\"><img height=\"200\"
width=\"350\" src=\"http://www.addic7ed.com/images/addic7edheader.jpg\" border=\"0\"
\ title=\"Addic7ed.com - Quality Subtitles for TV Shows and movies\" alt=\"Addic7ed.com
- Quality Subtitles for TV Shows and movies\" /></a></td>\n</tr>\n<tr><td
align=\"center\" colspan=\"2\">\n<h1><small>Download free subtitles for TV
Shows and Movies.</small>&nbsp; \n<select name=\"applang\" class=\"inputCool\"
onchange=\"changeAppLang();\" id=\"comboLang\"><option value=\"ar\">Arabic</option><option
value=\"ca\">Catala</option><option selected=\"selected\" value=\"en\">English</option><option
value=\"eu\">Euskera</option><option value=\"fr\">French</option><option value=\"ga\">Galician</option><option
value=\"de\">German</option><option value=\"gr\">Greek</option><option value=\"hu\">Hungarian</option><option
value=\"it\">Italian</option><option value=\"fa\">Persian</option><option
value=\"pl\">Polish</option><option value=\"pt\">Portuguese</option><option
value=\"br\">Portuguese (Brazilian)</option><option value=\"ro\">Romanian</option><option
value=\"ru\">Russian</option><option value=\"es\">Spanish</option><option
value=\"se\">Swedish</option></select></h1>\n</td></tr>\n<tr><td align=\"center\"
colspan=\"2\">\n<div id=\"hBar\">\n\t\t\t <ul>\n\t\t\t\t<li><a class=\"button
white\" href=\"/newaccount.php\">Signup</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/login.php\">Login</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/shows.php\">Shows</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"/allshows/a\">Air dates</a></li>\n\t\t\t\t<li><a class=\"button
white\" href=\"http://www.sub-talk.net\">Forum</a></li>\n\t\t\t </ul>\n\t\t\t
\ </div>\n</td></tr> \n<tr>\n <td>\n</td><td>\n\t<g:plusone size=\"medium\"></g:plusone>\n
\ <a href=\"http://twitter.com/addic7ed\" target=\"_blank\"><img width=\"32\"
height=\"32\" src=\"http://www.addic7ed.com/images/twitter_right.png\" alt=\"Twitter\"
border=\"0\" /></a>\n\t<a href=\"irc://irc.efnet.net:6667/addic7ed\"><img
width=\"32\" height=\"32\" src=\"http://www.addic7ed.com/images/irc-right.png\"
alt=\"IRC\" border=\"0\" /></a>\n<div style=\"float: right; padding-right:10%;\">\n\n
\ </td>\n </tr>\n <tr>\n <td colspan=2><iframe src=\"http://www.facebook.com/plugins/like.php?href=https%3A%2F%2Fwww.facebook.com%2FAddic7ed&amp;send=false&amp;layout=button_count&amp;width=450&amp;show_faces=false&amp;action=like&amp;colorscheme=light&amp;font=tahoma&amp;height=21&amp;appId=121322186712\"
scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:80px;
height:21px;\" allowTransparency=\"true\"></iframe>\n </td>\n </tr>\n</table>\n</center>\n\n<center>\n\n<!--[if
lt IE 7]>\n <style type=\"text/css\">\n div, img { behavior: url(http://www.addic7ed.com/js/iepngfix.htc)
}\n </style>\n<![endif]-->\n<br />\n<center>\n<!-- MarketGidComposite Start
-->\n<div id=\"MarketGidScriptRootC13385\">\n <div id=\"MarketGidPreloadC13385\">\n
\ <a id=\"mg_add13385\" href=\"http://mgid.com/advertisers/?utm_source=widget&utm_medium=text&utm_campaign=add\"
target=\"_blank\">Place your ad here</a><br> <a href=\"http://mgid.com/\"
target=\"_blank\">Loading...</a> \n </div>\n <script>\n
\ window.MGWidgetTitle13385 = \"Promoted
Content\"; (function(){\n var
D=new Date(),d=document,b='body',ce='createElement',ac='appendChild',st='style',ds='display',n='none',gi='getElementById';\n
\ var i=d[ce]('iframe');i[st][ds]=n;d[gi](\"MarketGidScriptRootC13385\")[ac](i);try{var
iw=i.contentWindow.document;iw.open();iw.writeln(\"<ht\"+\"ml><bo\"+\"dy></bo\"+\"dy></ht\"+\"ml>\");iw.close();var
c=iw[b];}\n catch(e){var
iw=d;var c=d[gi](\"MarketGidScriptRootC13385\");}var dv=iw[ce]('div');dv.id=\"MG_ID\";dv[st][ds]=n;dv.innerHTML=13385;c[ac](dv);\n
\ var
s=iw[ce]('script');s.async='async';s.defer='defer';s.charset='utf-8';s.src=\"//jsc.mgid.com/a/d/addic7ed.com.13385.js?t=\"+D.getYear()+D.getMonth()+D.getDate()+D.getHours();c[ac](s);})();\n
\ </script>\n
\ </div>\n
\ <!--
MarketGidComposite End -->\n<script type=\"text/javascript\" src=\"//eclkspsa.com/adServe/banners?tid=ADTPOP&tagid=2\"></script>\n</center><br
/>\n\n<div id=\"container\"> \n \t<table class=\"tabel70\" border=\"0\">\n
\ \t<tr> <!-- table header -->\n \t<td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/tl.gif\" /></td>\n <td></td>\n
\ <td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/tr.gif\"
/></td>\n </tr>\n <tr>\n \t<td></td>\n <td>\n<form
action=\"/search.php\" method=\"get\">\n<div align=\"center\">\n<input name=\"search\"
type=\"text\" id=\"search\" size=\"50\" value=\"Dallas (2012)\" class=\"inputCool\"/>&nbsp;\n
<input name=\"Submit\" type=\"submit\" class=\"coolBoton\" value=\"Search\"
/></form><br />\n\n<b>40 results found</b> </div><br />\n\n<br />\n\t<center>\n\n</center>\n<br
/>\n<center>&nbsp;&nbsp;<img src=\"http://www.addic7ed.com/images/database.png\"
/> <span class=\"titulo\">\nAre you looking for <a href=\"/show/2559\" >Show
<i>Dallas (2012)</i></a>&nbsp;?</span></center><br /><br />\n\n<table class=\"tabel\"
align=\"center\" width=\"80%\" border=\"0\">\n<tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/1/Changing_of_the_Guard\" debug=\"63362\">Dallas
(2012) - 01x01 - Changing of the Guard</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/2/Hedging_Your_Bets\" debug=\"63364\">Dallas
(2012) - 01x02 - Hedging Your Bets</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/3/The_Price_You_Pay\" debug=\"63827\">Dallas
(2012) - 01x03 - The Price You Pay</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/4/The_Last_Hurrah\" debug=\"63994\">Dallas
(2012) - 01x04 - The Last Hurrah</a></td></tr><tr><tr><td><img src=\"http://www.addic7ed.com/images/television.png\"
/></td><td><a href=\"serie/Dallas_%282012%29/1/5/Truth_and_consequences\"
debug=\"64210\">Dallas (2012) - 01x05 - Truth and consequences</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/6/The_Enemy_of_My_Enemy\"
debug=\"64512\">Dallas (2012) - 01x06 - The Enemy of My Enemy</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/7/Collateral_Damage\"
debug=\"64686\">Dallas (2012) - 01x07 - Collateral Damage</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/8/No_Good_Deed\"
debug=\"64933\">Dallas (2012) - 01x08 - No Good Deed</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/9/Family_Business\"
debug=\"65100\">Dallas (2012) - 01x09 - Family Business</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/1/10/Revelations\"
debug=\"65276\">Dallas (2012) - 01x10 - Revelations</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/1/Battle_Lines\"
debug=\"71069\">Dallas (2012) - 02x01 - Battle Lines</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/2/Venomous_Creatures\"
debug=\"71070\">Dallas (2012) - 02x02 - Venomous Creatures</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/3/Sins_of_the_Father\"
debug=\"71358\">Dallas (2012) - 02x03 - Sins of the Father</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/4/False_Confessions\"
debug=\"71644\">Dallas (2012) - 02x04 - False Confessions</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/5/Trial_and_Error\"
debug=\"71949\">Dallas (2012) - 02x05 - Trial and Error</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/6/Blame_Game\"
debug=\"72265\">Dallas (2012) - 02x06 - Blame Game</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/7/The_Furious_and_the_Fast\"
debug=\"72625\">Dallas (2012) - 02x07 - The Furious and the Fast</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/8/J.R.%27s_Masterpiece\"
debug=\"72969\">Dallas (2012) - 02x08 - J.R.'s Masterpiece</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/9/Ewings_Unite%21\"
debug=\"73242\">Dallas (2012) - 02x09 - Ewings Unite!</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/10/Guilt_And_Innocence\"
debug=\"73578\">Dallas (2012) - 02x10 - Guilt And Innocence</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/11/Let_Me_In\"
debug=\"73846\">Dallas (2012) - 02x11 - Let Me In</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/12/A_Call_to_Arms\"
debug=\"74098\">Dallas (2012) - 02x12 - A Call to Arms</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/13/Love_%40_Family\"
debug=\"74099\">Dallas (2012) - 02x13 - Love & Family</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/14/Guilt_By_Association\"
debug=\"74342\">Dallas (2012) - 02x14 - Guilt By Association</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/2/15/Legacies\"
debug=\"74347\">Dallas (2012) - 02x15 - Legacies</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/1/The_Return\"
debug=\"84652\">Dallas (2012) - 03x01 - The Return</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/2/Trust_Me\"
debug=\"84941\">Dallas (2012) - 03x02 - Trust Me</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/3/Playing_Chicken\"
debug=\"85388\">Dallas (2012) - 03x03 - Playing Chicken</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/4/Lifting_the_Veil\"
debug=\"85735\">Dallas (2012) - 03x04 - Lifting the Veil</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/5/D.T.R.\"
debug=\"86033\">Dallas (2012) - 03x05 - D.T.R.</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/6/Like_Father%2C_Like_Son\"
debug=\"86406\">Dallas (2012) - 03x06 - Like Father, Like Son</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/7/Like_a_Bad_Penny\"
debug=\"86664\">Dallas (2012) - 03x07 - Like a Bad Penny</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/8/Where_There%27s_Smoke\"
debug=\"86948\">Dallas (2012) - 03x08 - Where There's Smoke</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/9/Denial%2C_Anger%2C_Acceptance\"
debug=\"91222\">Dallas (2012) - 03x09 - Denial, Anger, Acceptance</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/10/Dead_Reckoning\"
debug=\"91469\">Dallas (2012) - 03x10 - Dead Reckoning</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/11/Hurt\"
debug=\"91634\">Dallas (2012) - 03x11 - Hurt</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/12/Victims_of_Love\"
debug=\"91837\">Dallas (2012) - 03x12 - Victims of Love</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/13/Boxed_In\"
debug=\"91959\">Dallas (2012) - 03x13 - Boxed In</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/14/Endgame\"
debug=\"92148\">Dallas (2012) - 03x14 - Endgame</a></td></tr><tr><tr><td><img
src=\"http://www.addic7ed.com/images/television.png\" /></td><td><a href=\"serie/Dallas_%282012%29/3/15/Brave_New_World\"
debug=\"92160\">Dallas (2012) - 03x15 - Brave New World</a></td></tr><tr><p>\n<p>\n</table>\n</td>\n
\ <td></td>\n </tr>\n <tr> <!-- table
footer -->\n \t<td class=\"tablecorner\"><img src=\"http://www.addic7ed.com/images/bl.gif\"
/></td>\n <td></td>\n <td class=\"tablecorner\"><img
src=\"http://www.addic7ed.com/images/br.gif\" /></td>\n </tr>\n
\ </table>\n </div>\n<iframe src=\"//s.ato.mx/p.html#id=7869&size=728x90\"
width=\"728\" height=\"90\" frameborder=\"0\" scrolling=\"no\" marginwidth=\"0\"
marginheight=\"0\"></iframe>\n\n\n<center><table border=\"0\" width=\"90%\">\n<tr>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Addic7ed</td>\n<td class=\"NewsTitle\"><img width=\"20\" height=\"20\"
src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\"
alt=\" \" />Popular Shows</td>\n<td class=\"NewsTitle\"><img width=\"20\"
height=\"20\" src=\"http://www.addic7ed.com/images/television.png\" alt=\"TV\"
/><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\" \" />Useful</td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Forums</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/shows.php\">Browse
By Shows</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/4906\">12
Monkeys</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/shows-schedule\">TV
Shows Schedule</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/1031-changelog/\">Site
Changelog</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/movie-subtitles\">Browse
By Movies</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1812\">Homeland</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/2784-frequently-asked-questions/\">Frequently
Asked Questions</a></div></td>\n<td><div id=\"footermenu\">Support Us</div></td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/top-uploaders\">Top Uploaders</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/620\">Modern Family</a></div></td>\n<td><div
id=\"footermenu\">RSS Feeds</div></td>\n<td><div id=\"footermenu\">Premium
Accounts</div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=downloaded\">Top
Downloads</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/466\">Glee</a></div></td>\n<td
class=\"NewsTitle\"><img width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\"/>Tutorials</td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/thread-6-1-1.html\">Video
Formats</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/log.php?mode=news\">All
News</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/450\">Parks
and Recreation</a></div></td>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net/topic/338-guide-to-syncing-with-subtitleedit/page__p__1485__hl__%2B+%2Bsync__fromsearch__1#entry1485\">How
to Synchronize Subtitles</a></div></td>\n<td><div id=\"footermenu\">Frequently
Asked Questions</div></td>\n</tr> \n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.sub-talk.net\">Sub-Talk
Forums</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/1277\">Shameless
(US)</a></div></td>\n<td><div id=\"footermenu\">What Are Subtitles</div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=7\">TV Shows
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"/latest_comments.php\">Latest
Comments</a></div></td>\n<td><div id=\"footermenu\"><a href=\"/show/126\">The
Big Bang Theory</a></div></td>\n<td><div id=\"footermenu\">New Translation
Tutorial</div></td>\n<td><div id=\"footermenu\"><a href=\"http://sub-talk.net/index.php?gid=22\">Movies
Talk</a></div></td>\n</tr>\n<tr>\n<td><div id=\"footermenu\"><a href=\"http://www.vreaubagaj.ro/troler/\"
title=\"Trolere ieftine\" alt=\"Trolere ieftine\">Troler ieftin</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/130\">Family Guy</a></div></td>\n<td><div
id=\"footermenu\">Upload a New Subtitle Tutorial</div></td>\n<td class=\"NewsTitle\"><img
width=\"20\" height=\"20\" src=\"http://www.addic7ed.com/images/television.png\"
alt=\"TV\" /><img src=\"http://www.addic7ed.com/images/invisible.gif\" alt=\"
\" />Stats</td>\n</tr>\n<tr>\n<td><div id=\"footermenu\">Terms of Service</div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/1799\">American Horror Story</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"http://sub-talk.net/viewthread.php?tid=294\">How
to have an Avatar</a></div></td>\n<td align=\"left\">.\n\t\t\t\t</td>\n</tr>\n<tr>\n<td><div
id=\"footermenu\"><a href=\"/contact.php\">Contact</a></div></td>\n<td><div
id=\"footermenu\"><a href=\"/show/15\">House</a></div></td>\n<td><div id=\"footermenu\"><a
href=\"http://www.vreaubagaj.ro/\" alt=\"Trolere\" title=\"Trolere\">Trolere</a></div></td>\n<td>\n</td>\n</tr>\n</table></center>\n</center>\n\n<script
type=\"text/javascript\">\nvar gaJsHost = ((\"https:\" == document.location.protocol)
? \"https://ssl.\" : \"http://www.\");\ndocument.write(unescape(\"%3Cscript
src='\" + gaJsHost + \"google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n</script>\n<script
type=\"text/javascript\">\ntry {\nvar pageTracker = _gat._getTracker(\"UA-10775680-1\");\npageTracker._trackPageview();\n}
catch(err) {}</script>\n\n\n<script type=\"text/javascript\" src=\"http://apis.google.com/js/plusone.js\"></script>\n
\ \n</body></html>\n"}
headers:
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:11:38 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [nginx]
Set-Cookie: [PHPSESSID=uj1fmp2tpmevdai9ef5b9913l3; path=/]
X-Powered-By: [PHP/5.3.3]
status: {code: 200, message: OK}
version: 1
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,826 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WRwW7CMAyG7zxF1PtIug6pBxMeYIdJe4PQGtbRxCV2qj3+SokEQmhD4vbZ8u//
lw2bH9+rESN3FNZFuTSFwtBQ24X9ukiye6mLjV2AR/mi9hN5oMA4NQYXnWe7UGeaQMHo+oQnUsAS
UyMzq0nstxjPhYLgPFqhAwbQM+f+RZ0XTBHsYSzrPZWruFtRdRy+O5GaXX2s3kDnkSzXV3rQ15b3
/FmcJH4gwKsx6uP9STNsKLR/urWUtj1aszQV6Fz85zWHyle+TIHOD8nAJ7p93y9uhcB49wEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['226']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=kv18go15rf5o3qpjitt8sa8q34; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+a3YxOGdv
MTVyZjVvM3Fwaml0dDhzYThxMzQ8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5tb3ZpZWhh
c2g8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjViOGY4ZjRlNDFjY2IyMWU8L3N0cmluZz48L3ZhbHVl
Pgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+c3VibGFuZ3VhZ2VpZDwvbmFtZT4KPHZhbHVlPjxz
dHJpbmc+ZnJlLGdlcjwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5t
b3ZpZWJ5dGVzaXplPC9uYW1lPgo8dmFsdWU+PHN0cmluZz43MDMzNzMyNzE0PC9zdHJpbmc+PC92
YWx1ZT4KPC9tZW1iZXI+Cjwvc3RydWN0PjwvdmFsdWU+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVy
Pgo8bmFtZT5pbWRiaWQ8L25hbWU+Cjx2YWx1ZT48aW50Pjc3MDgyODwvaW50PjwvdmFsdWU+Cjwv
bWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5zdWJsYW5ndWFnZWlkPC9uYW1lPgo8dmFsdWU+PHN0cmlu
Zz5mcmUsZ2VyPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1iZXI+Cjwvc3RydWN0PjwvdmFsdWU+Cjwv
ZGF0YT48L2FycmF5PjwvdmFsdWU+CjwvcGFyYW0+CjwvcGFyYW1zPgo8L21ldGhvZENhbGw+Cg==
headers:
Accept-Encoding: [gzip]
Content-Length: ['739']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
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
q+9tYOAAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['2401']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=kv18go15rf5o3qpjitt8sa8q34; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Eb3dubG9hZFN1
YnRpdGxlczwvbWV0aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz5rdjE4
Z28xNXJmNW8zcXBqaXR0OHNhOHEzNDwvc3RyaW5nPjwvdmFsdWU+CjwvcGFyYW0+CjxwYXJhbT4K
PHZhbHVlPjxhcnJheT48ZGF0YT4KPHZhbHVlPjxzdHJpbmc+MTk1Mzc2NzY1MDwvc3RyaW5nPjwv
dmFsdWU+CjwvZGF0YT48L2FycmF5PjwvdmFsdWU+CjwvcGFyYW0+CjwvcGFyYW1zPgo8L21ldGhv
ZENhbGw+Cg==
headers:
Accept-Encoding: [gzip]
Content-Length: ['292']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4Sdx5LzXHed576KrzRF2cip6rNcyAARCSLPkHPOuHrjlX/ZsuTQkybZRDjn7L3W
s9gk+Pd/u/ruryNf1noc/us/wf8F+qe/8iEds3oo/+s/7Vvxn6l/+m///J/+7vOtGjM7X6dxWPP3
gSle4n795//01/+49d746+8j7vb8z62//l63ZU+3f7n917txn+TL/7jz199D3Of/vG7xtq9/g/9y
5x9/+F+b/2MP7zn8MwJBf5nq3+A/7v7jqeC/ee7f4L/d///pYFm8xf+vQ8XLEt//eu+vv/88/X/e
+3fP/fdj+8dD/9tB//o3h66zdU+2euvyou7y/+0k/i+7/zdjh2kcJQmSwKF/N/6//uMs/OtD//FM
/u8n9x/m5f9/SjK2Ksy//qAIfeNKe+FCt4+pAtay4vhYrRTYSUHpoc1urAqYozGsKOq13f82FLOH
qs8DMTcEWql2MQF6qxfAMXCPYrmbibfFkDbgE3rUZAbyEal1FRNKkJFraV72ZCaGiUIanPhlIvWl
RfpLd/sPT3dyBkGS9rNV2gAioemPeVx00O88aGCITGEFiedi50+IGIF54jgwYcyUdYEBGyVp4ZFA
gU6gda3isl9rIWOIQDY4TQNrPwzwz95hOoii7CHpJN8hCgS8O0QVVMsLP7hptNP1EcR5qsd+tt6h
Augo2SV4UdHMR4YWDOXo22zi6GfHCGpHvQBQLtSL0eU7kRRe5AMaCEQDGnOEAUTQo/uyZ5U5A0hH
e3fvJI5YgkRCGeq7vs+eEzt1+VSQM9uiPUdKk7fSoiDxK1BM7uMG3y7ftz/bUDhBTyD3xwCrhgYK
790IdSMcSO2CPPPr6CZplWObjgAyXuuIRvadJHGa1SlMLrGFInnLkjsQ5XDpJp5VJHcebkCyoHPr
SzqWqTSFNX2Eq0MIWuti+A5ijDoAE8HM70If7LijBLDjgAlJeAFPOKh4NNz4IX0vUL7erpDnTbUW
zWIdJjIM5I/dAn5OGrwgs9QYDg/daY/0k32zOG70hgOnD9XaKIvPWCzPducxc/wB1JU62tI8xiDF
gxYbTNq6AG/NgLdki5s4LpnfOwoNDpKiDobSUsNpdblTx+0Rvr3dFQskwEOFI+LT/mja6kiT6jSe
WL4J3wB5EqLEreEFDQWA5SH0Um8ViKNfLLJu1gtriVsVvEgIcjTSvgvqu1bP1Mczo8YHiCCTcTVJ
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
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['33165']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=kv18go15rf5o3qpjitt8sa8q34; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+a3YxOGdvMTVyZjVvM3Fw
aml0dDhzYThxMzQ8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5ajAsXQzmACxNvUOioJLQl/SEe3wJNIMbo7nudN/OmA81L
D2RC53tralqVnBI0nVW9edQ0hvvhTBtRgMbwtOqGfrTGY3oYpZPai4KslIDAJIeIMxHwwcUuLExS
s27RrYKAkRqFDzJED2wRubC15wlpB3HknFwvwLLMVrbzAtvP/xqGnTXqZ5qysR1Q8JKfKmBZ/Qtb
tsrf3FzA8kUy+Jk+7/cGaUzqgngBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['194']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=kv18go15rf5o3qpjitt8sa8q34; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6CMBCF95xiwl6KCQtMhnoCN96g0EFJaEv6Qzy+BZpAjNHd92b65k0Hry81
wkzWDUY3+bkocyDdGTnoR5MH35/q/MozVOSfRt7JTUY7ioVJWKEcz2CjCICzGAMtBOi8DZ1fGaJZ
tWQ3AaiFIu688MEhW0Vq7PY0Ie7Aq/ICtzUctPHQm6AlstRMRnZwIjumfY2mzmj5M1ua0I7Ey6Ks
amRJ/Qtbt0qf3l8hS/dJ4Bb6vOYb0rW33YYBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['200']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:08 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,186 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WRQY7CMAxF95wi6h4SiipRyaQHmAXS3CBtPVBonE6dRHP8KSUSaDQCJHbPlr//
lw3Vj+1FxJE7R7tsvVKZQGpc29FhlwX/tdxmlV6ARX907Sfy4IhxagxmNJb1QlxpAgHR9AEvJID9
GBo/s5jEtsbxWgggY1F7d0YCOXPq39RpwRRBrw9uKDex+46+3B7JbGjITzlTLECmkSSXd3qQ95b/
+bM3PvALAXKlxP7jTTNsHLUP3VoX6h61WqmiBJmqZ2ZzqnTm2xTI9JEEfKG///sFGksCTvgBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['227']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:07 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=1gop93viqvt98hna3np2j2snv5; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+MWdvcDkz
dmlxdnQ5OGhuYTNucDJqMnNudjU8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5zZWFzb248
L25hbWU+Cjx2YWx1ZT48aW50PjI8L2ludD48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5h
bWU+cXVlcnk8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPk1hcnZlbHMgQWdlbnRzIG9mIFMuSC5JLkUu
TC5ELjwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5lcGlzb2RlPC9u
YW1lPgo8dmFsdWU+PGludD42PC9pbnQ+PC92YWx1ZT4KPC9tZW1iZXI+CjxtZW1iZXI+CjxuYW1l
PnN1Ymxhbmd1YWdlaWQ8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPmh1bjwvc3RyaW5nPjwvdmFsdWU+
CjwvbWVtYmVyPgo8L3N0cnVjdD48L3ZhbHVlPgo8L2RhdGE+PC9hcnJheT48L3ZhbHVlPgo8L3Bh
cmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['599']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA+1cW3ObOBR+769gsjP7hhBXg5e6E8fOxNPcNs52Z/dNRsJmy8VF4CT99SsIThzH
LpFttWyXyUwsgZC+czjn6Ej6BvfDfRRKC5LSIInfH6kAHkkk9hIcxNP3R3nmy/bRh947NyLZLME3
hM6TmBJ2YY5SFNHeO+mxxAqSu0BhToqS5NIszb2sLEvs4WhC0seK5MYoIj2aoSynrlJWqhvPj1c9
MAw9DULp6qOrVNWqqbLS1lVW+980GEYZ+tZQKE3Rw7ImuUXzp9pa23XZqksvBpVWhr5AmTcjuP/w
YvwtPa+I7edhmJH7bE1w6bX4y0uvIWxHNRqM88lFsgjIaRASTmhQDKYSzhmiswbB6T9kZBx8bZKG
boOIXIybAag0oyzIwl3MSHVMw7AMA+piwDFoBapLVuZEdoHSBQkpOJ6SOKMg8cEYnIERGIJzMABj
qA2hBY7BaYq8LE8JBmdJTgnoaHAO/hz25QFrNjCByh7SLEPujwFNBTkyE/KYgUDhyYBX/cIA7eAw
huVo4sxgl6Ci+56OPTwhHadj+L6NNYItjExj4qsqFqe8c0SzW273hl1D7YpypGcv54Rl2rbpOI4Y
VH9Qko54jV5QHCzfWzzN0ZRwQ5rlsbj4l6QRyjgBiYxV4zxqUKA6zllOm54kUcTiPB8q5fBgMB6g
jNfFNKgasqrK0JZYENAdFgeEqauPcGPc7QZlrFteOEAcoEFyF4cJwvSE15R6qmkJipFlwnhDQoLo
LnmQdPBESKCYp9e8s6ZmAgiFZcYlKF5LsI2OZgtFNIrwhDc5gx3btEWuaXawzV9/0Y3fHu1SSnxp
1S7LW9Kx9GSWUmmWgvEPecPRgaeQEshfBKU7zCACVVPY207B2gaCYBV5EUGlYTRjOisy2cvA+8zv
BQc2odH4ytId7vxVjFaWCfUOseEsj6coDZC4xLrKGWkzDKhY4jLHZ/2OojkKGmXYNyj+/GNTa5IG
hI5ZCpTEvKFR0OsqEQ3nAU0wr2lbAkP1xyDmNRyyFEKUWTdlsVi+stHFoH+NUu7FYk/TLcO0RZlT
PhlWBzacsE6uVc0U5Pu/5yR9uC5OhkhGUp5AuXa0smWUp4HoNs/eMsSK/JtfyGbptyigDt2XQg07
gavWXtLmHFc8crI1PtVj3xylDgqP5pOwyhCCTVGrHuS2jTdOmGUf6zZ7GPe5zIu7zZjLV7Y4zgPe
Kb03y7J5V1FwCJI5iWm1nUxBkk4VEiu46lnxg5CwH5p6MpoHyiL15YlqOLBj2Lal0ADL6jSZO/oi
+LLIHHsWIz2ea/9oNF6YyvOBEph+FaOFv4P5d9ACu7OmBB050Peh6ut1ShC65748B6C7C393d7dZ
+qcLSxHqJEVlYJQTX6byTA5kIocylpHsL5f98qxY9st7LVBee/er51p+wBq0lh/wIyH9XPwAk/0J
3Afaix+wJTWTZEm7hxb7ebUFCc4Gt58e/w0/XYFZ3hIDasCYmgXNJhEDUMdCnmVAn0CiWr6jG7aF
fa2jG46DVGvSPGIA7JqC0oE9iAEdS7UEGVpLDKgH1RID/h/EACjrUFLtrqZ2VUHnii0xQBgxQDMN
kfu9+xMD9s2AGkUHgC0b4C2oWjZAywbYGVHLBqgF1LIBWjZAywYQlk+3bIB6SC0boAZKywZo2QAt
G+Ct2Fs2QMsGeAFqDzaA7XiOYUwmRH0TG6A8Pvrp2AC2bxhex3LUWkqE0I3278UGKEX4j7ABXGX1
4wGusvplgRdt6z9aQImXxPibn0jACYt7pNi5sliQrWp1g60K8dzKVarPOFQFWpTWP/rwL7cfifYt
QgAA
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['1371']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:07 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=1gop93viqvt98hna3np2j2snv5; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+MWdvcDkzdmlxdnQ5OGhu
YTNucDJqMnNudjU8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6CMBCF95yiYS+trFwM5QAuTLxBoaOS0Nb0h3h8C0wCMUZ33+u8mTcdaF9m
ZBP6MDjblMdKlAxt7/Rg702Z4u1wKltZgMH4cPqK4elswPzwVF6ZIAu2UgYGkxoTzsQgRJ/6uDDL
zaZDvwoGVhmUIaqYAvBFUGFrpwl5B1kLwS5n4CTJynde4Pv5X8Owd1b/TNMudSNKUYm6Bk7qX9iy
FX1zcwGnixCEmT7v9wZFg1bKeAEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['193']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:07 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=1gop93viqvt98hna3np2j2snv5; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6CMBCF95xiwl4KiQtMhnoCN96g0EFJaEv6Qzy+BZpAjNHd92b65k0Hry81
wkzWDUY3eVWUOZDujBz0o8mD7091fuUZKvJPI+/kJqMdxcIkrFCOZ7BRBMBZjIEWAnTehs6vDNGs
WrKbANRCEXde+OCQrSI1dnuaEHfg5/ICtzUctPHQm6AlstRMRnZwIjumfY2mzmj5M1ua0I7Ey6Ks
amRJ/Qtbt0qf3l8hS/dJ4Bb6vOYbaMBv3YYBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['200']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:07 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,206 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WRTY7CMAyF95wi6n5I6IjCwoQDsBhpbhBaFyj5KbWDOD6hRAKNRsxI7D5bfnnP
MawvzoozDnQIflXMpqoQ6OvQHPxuVURuP5bFWk/AIe9D843UB0+YGr0ZjCM9EXdKIOBsbMQbCSAe
Ys0jiyR2WxzuhQBvHGoOR/QgR879hzo/kCJoE7tqx1U3X/Ylm1M1a+28pUVnP0HmkSyXT3qQz5a/
+RMbjvSPAKVS4mvzphnWwTcv3ZoQtxa1mqoybZarv8zGVPmbH1Mg80Uy0I1+3u8KdB9H3fgBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['227']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=auj6gt6j58p2taq61fl5fs7jl3; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+YXVqNmd0
Nmo1OHAydGFxNjFmbDVmczdqbDM8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5tb3ZpZWhh
c2g8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjViOGY4ZjRlNDFjY2IyMWU8L3N0cmluZz48L3ZhbHVl
Pgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+c3VibGFuZ3VhZ2VpZDwvbmFtZT4KPHZhbHVlPjxz
dHJpbmc+ZnJlLGdlcjwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5t
b3ZpZWJ5dGVzaXplPC9uYW1lPgo8dmFsdWU+PHN0cmluZz43MDMzNzMyNzE0PC9zdHJpbmc+PC92
YWx1ZT4KPC9tZW1iZXI+Cjwvc3RydWN0PjwvdmFsdWU+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVy
Pgo8bmFtZT5pbWRiaWQ8L25hbWU+Cjx2YWx1ZT48aW50Pjc3MDgyODwvaW50PjwvdmFsdWU+Cjwv
bWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5zdWJsYW5ndWFnZWlkPC9uYW1lPgo8dmFsdWU+PHN0cmlu
Zz5mcmUsZ2VyPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1iZXI+Cjwvc3RydWN0PjwvdmFsdWU+Cjwv
ZGF0YT48L2FycmF5PjwvdmFsdWU+CjwvcGFyYW0+CjwvcGFyYW1zPgo8L21ldGhvZENhbGw+Cg==
headers:
Accept-Encoding: [gzip]
Content-Length: ['739']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
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
OcjXYOAAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['2401']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=auj6gt6j58p2taq61fl5fs7jl3; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+YXVqNmd0Nmo1OHAydGFx
NjFmbDVmczdqbDM8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6DIBCF956CsK+gqy5GPEAXTXoDlGlrImD4MT1+UUk0TdPuvse8mTcMtC89
khmdH6xpaFVyStD0Vg3m0dAY7qczbUUBGsPTqhv6yRqP6WGSTmovCrJRAgKzHCMuRMAHF/uwMknN
ukO3CQJGahQ+yBA9sFXkwt6eJ6QdRM05uV6AZZmt7OAFdpz/NQx7a9TPNGVjN6LgJa8rYFn9C1u3
yt/cXcDyRTL4hT7v9wZFFXqCeAEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['193']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=auj6gt6j58p2taq61fl5fs7jl3; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQSw6DMAxE95zCYl+SSl1QyYQTdNMbBGJaJJKgfFCPXz6RQFXV7t7YGY9jrF96
gImc762p8nPBcyDTWtWbR5XH0J3KvBYZagpPq+7kR2s8zYVROqm9yGCjGQAnOURaCNAHF9uwMsxm
3ZDbBKCRmoQPMkSPbBWpsdvThHkHceFXuK3hYGyAzkajkKVmMrKDE9kx7Ws0tdaon9nKxmYgwQvO
S2RJ/Qtbt0qf3l8hS/dJ4Bf6vOYbJSaHa4YBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['200']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,187 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WRQY7CMAxF95wi6h4SmBHMwoQDsECaG6SNC4UmLolTcXxKiQQajQak2T1b/v5f
NmwurhU9htiQXxfzmSoE+ops4/frInE9/So2egIO+UD2G2NHPuLQ6EwwLuqJuNMAAnrTJryRgMgh
VTyyGMSuxHAvBHjjUDOd0IMcOfcf6rxgiKCroMpjs6J6aXt16OnMp2XdJT5+gswjWS6f9CCfLX/z
j2w4xTcCLJQSu+0/zbAib/90s5TKFrWaqY8FyFy9MhtT5TM/pkDmj2SIN/r5vys9Mxtb+AEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['226']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:05 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=cr0bji7of6dv0hvoqtk6fputj4; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+Y3IwYmpp
N29mNmR2MGh2b3F0azZmcHV0ajQ8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5xdWVyeTwv
bmFtZT4KPHZhbHVlPjxzdHJpbmc+ZW5kZXJzLmdhbWUuMjAxMy43MjBwLmJsdXJheS54MjY0LXNw
YXJrcy5ta3Y8L3N0cmluZz48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+c3VibGFu
Z3VhZ2VpZDwvbmFtZT4KPHZhbHVlPjxzdHJpbmc+Z2VyPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1i
ZXI+Cjwvc3RydWN0PjwvdmFsdWU+CjwvZGF0YT48L2FycmF5PjwvdmFsdWU+CjwvcGFyYW0+Cjwv
cGFyYW1zPgo8L21ldGhvZENhbGw+Cg==
headers:
Accept-Encoding: [gzip]
Content-Length: ['478']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA+2cW3ObOBTH3/spmLzsExdxx+Om08RJN5OmTeN0ZnffBBIODRcXgdN09sOvwDix
HbtYJMpSj94Ag/Q/R+Lo6PzGDN/9SGJphnMSZenbA6BoBxJOgwxF6eTtQVmEsnvw7vDNMMHFTYau
MJlmKcH0whTmMCGHb6T5ET2QhjMYl7g6koakyMugqI8l+nDi43x+Ig1TmOBDUsCiJEO1Pml+eHy8
aYFqONQ1Tfp8PlSb0+ZWdeneobrc/qbOECzgr7qCeQ7vF2fSsLr94Wzt3nXbmksrnUpLXV/AIrjB
6Oh+pf8tLS+ZHZZxXOAfxZrh0lPzF5eeStiu6mw0Lv2LbBbh0yjGjNI0PppqOX9CctMjOUf3BR5H
P/vkoesowRfjfgiqp1ERFXGXaQQ8ywSWY3guH3FUWqXqEz1mVIZTROPhhD4iA83VpgrJOb2HVOP7
oChhfDxi9R43QR3mu6tbQOcmqENM8EFgQy90nSAMAmA62DF9YFqaYQaa6eqYm9aPkBTXzG8nGFjG
wOI0pI8vKaMsy3KAq3Ma168E52fMk96yDQtYHEcvnZRwgpmFTXDOL4hleQILRkE8I9a4THoUrt6X
NDHNj7MkwSmjl9SXF4PQCBasL5quAVPWDFmzJeAMDHugO9zcdQRRP3IHquUKFrRZVjkKP0Gj7C6N
M4jIMetUOgS2bnDM+q5wjCHpksyc1MmM8oE+o4wgUSZ5RghWxtMIx8oHTGNLqow+KvNE5ygur+C9
8kO3Tfnkry9fo3F0fcLRrNNL1rVSNxTPsXmtlLUo5pEHdI/KVdFZgnxWVY4BgMkp7Naius7FP4j0
oX6Uq7IT1sDywotBLeRvDHP2tYBnHKlmUqewayv81qRTDIsyxz1ZmKrM9FMU3HaY3ym+u41SRDgF
g/Fn2/AYJSFOL9oiVe7gpfmiw202Nakg6cdsqvavNArQds+SKYx6NcuvYHrLqKbIS1JUNnDxFc4j
TMY00cnSfnhpruhkGpEM9akIeE6jDKOcZJ7a8JrjfdkQ1gN2djE6uoQ584aQYxA4aZgKo6Cv16cy
p/rolxLn95cVu8EF3SEwCFuDH1t6eejoe9XRhua39LBk/bwQq1SVWKVKjBRHp5sUPy7zxSaFTGF+
S5TkdrbRSZv9tMVVbXaQ0o+bVS/a9Pa127OtTMQos25jfRBeZj58Kqtfe/PWLDbkHyPmleqmKKYD
VUWxkk1xSpoSKFGyfKLiVEVNy2oY0Z01UkkeyHAaqbM8lDG0oKuHQPNUEiE5yDX/W+RkoY1m2s0s
+17c2uG0LL6Z6iPDUCY/+Xjhn2j6Cl6gv6w5wdYswwcWdsI2J3CtEy9q16S78Xd3d5utf7iwMKHN
0joeyUSu0dCzMuunr/CT5wR3XpMmuPP/KWnPuLPtWJyqiN258y6l2joD2limFZS6RYxr2obZJ0od
ADfAoYk9hFzdAwggx3M9Nwh1Pwg0g1/Bbd8oNfA4jWsnSs0vHRZ8ehdBgk/z49M0COjOwBJ8+nfj
07rGacxeAU9vz3kEmhZoelWWQNO7CRFoul3WHqHpF55CAkW3y9o/FM0pZHdD0S+dHAv23C5JsOf2
ARPseQdRgj0L9rxsnmDPD9g10KGP7BD7u7HnimPsHXvWQGCg0AJmK5HlWv19PfZMTRDsWbDnXsgR
7PmXgp7Nnk3T4Fb9ehn2XKc7T/8QNL58f3U+Fpi5RYwLXMBxB88eLEy6vlieHxq2hUzXt33T9TDA
mhlqjq77vcTMBqeNR3fM7NqmY3sCMwvMLDBzq5jumBlosq5Juj7Q3AEQmPl3w8zA4cn1umNmaef8
pldImY4yZ34riHKbLEGUdxMiiHK7LEGUBVF+1uzZM6LMcVYLorxFkSDKLV4SRLnVQR2J8vEl0C39
XxrrZde1PFnAZQGXV68KuNwq6hlwOQw8P/SRCVtp4yOo2Du4HFq6ZnpeCFsJO9ea7yvB5bkJfYLL
Q3X5+9pDdfnj2yv3rra+6skmcOEgqz+3tOS9Vb8NUUaDG64KKSbd0zVnbZ0tG/F411BtvnTeHJDq
aP276P8B6iSi8VBdAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['1553']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:06 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=cr0bji7of6dv0hvoqtk6fputj4; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+Y3IwYmppN29mNmR2MGh2
b3F0azZmcHV0ajQ8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5aZeNiKAdwYeINCh2VhLakP8TjW6AJxBjdfa/zZt50oHnp
gUzofG9NTY8lpwRNZ1VvHjWN4X4400YUoDE8rbqhH63xmB5G6aT2oiArJSAwySHiTAR8cLELC5PU
rFt0qyBgpEbhgwzRA1tELmzteULaQZw4J9cLsCyzle28wPbzv4ZhZ436maZsbAcUvORVBSyrf2HL
VvmbmwtYvkgGP9Pn/d43FXXyeAEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['193']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:06 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=cr0bji7of6dv0hvoqtk6fputj4; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6CMBCF95xiwl4KiQtJhnoCN96g0EFJaEv6Qzy+BZpAjNHd92b65k0Hry81
wkzWDUY3eVWUOZDujBz0o8mD70+X/MozVOSfRt7JTUY7ioVJWKEcz2CjCICzGAMtBOi8DZ1fGaJZ
tWQ3AaiFIu688MEhW0Vq7PY0Ie7Az2UNtzUctPHQm6AlstRMRnZwIjumfY2mzmj5M1ua0I7Ey6Ks
amRJ/Qtbt0qf3l8hS/dJ4Bb6vOYbV7CkU4YBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['200']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:06 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,161 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WRTY7CMAyF95wi6n5IiAR0YcIBWIw0N0hTAxXND4mD5viUEgmEECCx+2z5+T3Z
sP63PTthTJ13q2o2FRVDZ3zbud2qyrT9qau1moBF2vv2D1PwLuHQCDpqm9SEXWkABifdZ7wQg0Qx
GxqZDWLbYLwWDJy2qMgf0AEfufRv6rJgiKAoSLld7IKp93Np9LKJdTczFI5z4GWkyPmdHvi95TP/
RJpy+iCAFIL9br40Q+Nd+9Kt9bnpUYmpkMBL8c5rDFWufJsCXh5SIF3o8X1nyMpjPfcBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['224']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=tp22f6gpc8h52ca7br8i1ctpq5; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Ob09wZXJhdGlv
bjwvbWV0aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz50cDIyZjZncGM4
aDUyY2E3YnI4aTFjdHBxNTwvc3RyaW5nPjwvdmFsdWU+CjwvcGFyYW0+CjwvcGFyYW1zPgo8L21l
dGhvZENhbGw+Cg==
headers:
Accept-Encoding: [gzip]
Content-Length: ['181']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA71UQW6DMBC85xUW59Y2hEhFcsgDeqjUDyBjtolVY6fYTtvfF4gVQtKWRI16mzXj
2dld1mz1USu0g8ZKo5dRjGmEQAtTSb1eRt693D9Eq3zGanAbUz2D3RptoT3Y8obXNp+hPWoBYjuu
PHQIMesaL1yPUXu5LqHZB4hpXkNuHXfeMtIH4cNwPSi0HvKEUvT0yEgIA5UccRk51v8uWWXetTK8
KpSspZvKevB9pnYQXCtTclUk6aYYa4+kz9S7A6ldVxMjHRh4ZEwc1/SzEaEkaFfI7XTi0MAswUlK
cTJPcZykd2iBFzGe4zhdnPT4D676VhRiA+K1KD8vtuYtNH0pt/IRujMakzBeXzim+LZDOlh488bx
Cy1k2W1N/N8v249x2KUrV9aCMLr6dVUr40sFOcV0njISoqlkx64GFiPhEQvAduj0yfsC3Y8tfSsF
AAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['344']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=tp22f6gpc8h52ca7br8i1ctpq5; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+dHAyMmY2Z3BjOGg1MmNh
N2JyOGkxY3RwcTU8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQQQ6DIBBF956CuK9QV12MeIAumvQGKNPWRKBhwPT4RSXRNE27e5/5M38YaF9m
ZBN6GpxtymMlSoa2d3qw96aM4XY4la0swGB4OH1FejpLmB6eyitDsmArJWAwqTHiTAwo+NiHhVlq
Nh36VTCwyqCkoEIk4IvIha09T0g7yFoIdjkDzzJb+c4LfD//axj2zuqfadrFbkQpKlEDz+Jf1rJU
/uXmAp4PkoFm+jzfG9lJD213AQAA
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['192']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=tp22f6gpc8h52ca7br8i1ctpq5; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQQQ6CMBBF95xiwl5ajQtNhnICN96g0EFJaEtoSzy+UJpAjNHd+zP986eD1Uv3
MNHoOmvK/FjwHMg0VnXmUebBt4dLXokMNfmnVXdygzWO5sIgR6mdyGClGQAn2QdaCND5MTQ+Msxm
XdO4CkAjNQnnpQ8OWRSpsdnThHkHceZXuMVwMNZDa4NRyFIzGdnOiWyf9jWaGmvUz2xlQ92T4AU/
IUviX1ZcKv15e4UsnSeBW+jzmG8XBP1ahQEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['199']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,236 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WR0WrDMAxF3/sVJu+rvZbSDVT3A/Yw2B84trJkteUQ2Waf3zQ1tIyxDfZ2JHR1
LxIcP4MXBSceIh2ax7VqBJKNbqD3Q5NT9/DUHPUKAqY+ujfkMRLj3BjNZALrlbjSDAKK8RkvJIDT
lG1aWMzi0OJ0LQSQCahTPCGBXLj2b+q6YI6gi7cDtc+8cyMV/7HtOqv63rZFgawjVS7v9CDvLb/z
52RS5j8E2CglXl/+aYY2kvvRzcXcetRqrTZ7kLX6zWxJVc98mwJZP1KBL/T1f2c8Qhe3+AEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['226']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=vlcinb9s5dpnvlj3ffc0hhcbv0; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+dmxjaW5i
OXM1ZHBudmxqM2ZmYzBoaGNidjA8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5tb3ZpZWhh
c2g8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjViOGY4ZjRlNDFjY2IyMWU8L3N0cmluZz48L3ZhbHVl
Pgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+c3VibGFuZ3VhZ2VpZDwvbmFtZT4KPHZhbHVlPjxz
dHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1iZXI+CjxtZW1iZXI+CjxuYW1lPm1vdmll
Ynl0ZXNpemU8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjcwMzM3MzI3MTQ8L3N0cmluZz48L3ZhbHVl
Pgo8L21lbWJlcj4KPC9zdHJ1Y3Q+PC92YWx1ZT4KPC9kYXRhPjwvYXJyYXk+PC92YWx1ZT4KPC9w
YXJhbT4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['543']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
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
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['4307']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=vlcinb9s5dpnvlj3ffc0hhcbv0; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+dmxjaW5iOXM1ZHBudmxq
M2ZmYzBoaGNidjA8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5aXBgXQzmACxNvUOioJLQl/SEe3wJNIMbo7nudN/OmA81L
D2RC53tralqVnBI0nVW9edQ0hvvhTBtRgMbwtOqGfrTGY3oYpZPai4KslIDAJIeIMxHwwcUuLExS
s27RrYKAkRqFDzJED2wRubC15wlpB3HknFwvwLLMVrbzAtvP/xqGnTXqZ5qysR1Q8JJXJ2BZ/Qtb
tsrf3FzA8kUy+Jk+7/cG7GWgnHgBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['194']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=vlcinb9s5dpnvlj3ffc0hhcbv0; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQrCMBCF9z3F0L1NBAWFaXoCN94gbaZaaJKSn+Lx7U+gRUR335vJmzcZrF66
h5Gc76wp82PBcyDTWNWZR5nH0B4ueSUy1BSeVt3JD9Z4mgqDdFJ7kcFKEwCOso80E6APLjZhYZjM
uia3CkAjNQkfZIge2SJSY7OnCdMO4sSvcFvCwdgArY1GIUvNZGQ7J7J92tdoaqxRP7OVjXVPghec
n5El9S9s2Sp9enuFLN0ngZ/p85pvWwiPHoYBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['200']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,179 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WR3QrCMAyF732KsnttteAPZN0DeCH4Bt0Wdbg2rj/i4ztnQRFRwbsvISfnkEBx
MS07o/MN2TybTkTG0FZUN3afZzHsxsusUCMwGA5Ub9GfyHrsGyfttPFqxO7UA4OzbiPeiIEPLlZh
YNaLTYnuXjCw2qAKdEQLfODUf6jTgj6CWu6rMiwaNy1JdpLkqnMozNy1EngaSXL+pAf+bPnO3wcd
ov8hwEwItln/aYYV2fqjW02xbFGJiZAr4Kn6ZjakSmd+TAFPH0ngb/T6vyuynISk+AEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['223']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:01 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=8gcbt7ir1bo3q3o39qre0m6rl3; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+OGdjYnQ3
aXIxYm8zcTNvMzlxcmUwbTZybDM8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5pbWRiaWQ8
L25hbWU+Cjx2YWx1ZT48aW50Pjc3MDgyODwvaW50PjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVy
Pgo8bmFtZT5zdWJsYW5ndWFnZWlkPC9uYW1lPgo8dmFsdWU+PHN0cmluZz5nZXI8L3N0cmluZz48
L3ZhbHVlPgo8L21lbWJlcj4KPC9zdHJ1Y3Q+PC92YWx1ZT4KPC9kYXRhPjwvYXJyYXk+PC92YWx1
ZT4KPC9wYXJhbT4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['435']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA+1bW1PbOhB+76/w8O6b5JsybjqFwDmZkrYngZnTvim2HDT1JZVkKP31tY0DSShN
FRD14fhNsmXp2/XuarXfKHzzLUu1S8I4LfLXB7ZhHWgkj4qY5ovXB6VI9ODgzfBVmBFxUcRTwpdF
zkn1YIkZzvjwlXbTqhpaeInTktQtLeSClZFo2lr1cTYn7KajhTnOyJALLEoemk2nfXH3eTtDhWEI
LEv78C4022471FwbG5rr8/9ssRgL/KulMGP4etXTwnr4bW9r7LZs7aONRbW1pSdYRBckPrzeWP+B
mdfEplk8p/GW2Np94VeP7gN4GNN4NCvnk+KSkhOaEklglhpMDZy/Mb/oEJzDa0Fm9HuXNHRGMzKZ
dQNQY0aCinQfM7KRC30vQAFQA66CVqN6X7UlkU1wbhSJMROEpMZfhGVVf3Rq2FZgLY3DtJzia+Mb
8Bz9+N9/zumMnh0bnAllUryNRInTo5GsfpUB2sMjbAs5rqMM0R5hAxDP9VCEEmsOPQ+C2Iaej5AD
IyeCTuIrw3qKuTiTdmAwAGDgKkJ158eSsFwAfBchNajOOWFjWatXFOma/5YvSrwg0pAWhKmLcEUV
nYQkIJXBalZmHYpUb8sqZ2VHRZaRXFJL5tODieMRFrIuBiwb6ral275mwwHwBo6nTF2HOO6Mu02x
qKaVhWOoAzQqrvK0wDE/kjWlIfCBor2vSQmnJCWYP0+mo1CMk4+yuyKABvIVucN41ICSDWUOhI6i
eNYiGlfnQklUvm8FIFD46/YzPa1ItMb0FCM7lo0jTxz7GyCfCGZ7hH6FqqkNaa8o6xsKj2wEi5KR
juxDdQr6nkZf5O37iU1oPPvgQSSplJio0coqE97D62/2GGXW02Z6vBvWUx9MK6+v5h1nS0zlrVrR
RlJb9RTnX/5sQkwYJXxWJS5F3pHf1SA6XlJexF2q+L2juazhZDepiyqj7soBr/lh48no8CNm0gc8
hV5/3NInkoDOz050RVna2vnllMp6/vBCiOXANOPUKJYk522tiBsFW5gkN+N2ZjOh1UEkNjmLdLyk
5iVLdOg5JEEOsKrHNNaDRTQXPmX2vIBfYQHRV0aszGMpNO/qwcbiuxotfKbLZ9BC9WZLCR4C2I08
17V3KUFpQW1V5OP7C391dfVz6W8frETYJWmVBuhFovM6/9cflak0n27Qcfe+6xm8DWA9g/cnIb0s
Bs+3HUtdvHpCBs8HPXu3J3uHXOR3irxDgR9Fno9hQEBkBTBIsONDx4HAtYAXKaqaPIK8s8HAUYTq
MeQdQkhRwtmTd7tB9eTd/4a8Q5plDVw4AG5P3v3HyLvAUlmEf1ru7uEcp+ftet5uA1XP2/0ekJ63
2w2r5+163u5R1vPCeDuFVt3zdg8g6nm7HVrqebudCup5u1vKKrB8F8+9mOykrO6qwC+Ot3PhHCQQ
+Yn3G7ydulras/F2tQhd4u1Cc/0iXmiu39KTvADISVTk8S+vG8ZFOU9JXYZwq4yt7e1abF2Iu1Gh
2V6JbBu8bm1foPwBuoAQ33k5AAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['1160']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=8gcbt7ir1bo3q3o39qre0m6rl3; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+OGdjYnQ3aXIxYm8zcTNv
MzlxcmUwbTZybDM8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6DIBCF956CsK9gVy5GPEAXTXoDlGlrImD4MT1+UUk0TdPuvse8mTcMtC89
khmdH6xpaFVyStD0Vg3m0dAY7qeatqIAjeFp1Q39ZI3H9DBJJ7UXBdkoAYFZjhEXIuCDi31YmaRm
3aHbBAEjNQofZIge2CpyYW/PE9IO4sw5uV6AZZmt7OAFdpz/NQx7a9TPNGVjN6LgJa9qYFn9C1u3
yt/cXcDyRTL4hT7v9waS3YSheAEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['193']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=8gcbt7ir1bo3q3o39qre0m6rl3; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQrCMBCF9z3F0L1NBEGFaXoCN94gbaZaaJKSn+Lx7U+gRUR335vJmzcZrF66
h5Gc76wp82PBcyDTWNWZR5nH0B4ueSUy1BSeVt3JD9Z4mgqDdFJ7kcFKEwCOso80E6APLjZhYZjM
uia3CkAjNQkfZIge2SJSY7OnCdMO4sSvcFvCwdgArY1GIUvNZGQ7J7J92tdoaqxRP7OVjXVPghec
n5El9S9s2Sp9enuFLN0ngZ/p85pvZO5o2IYBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['200']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:02 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,118 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WRSw7CMAxE95wi6p4m/Lsw4QAskLhB2hgobRKoE8TxaUskEEKAxO7Z8nhGNqyu
pmYXbKh0dpmMUpEwtIXTpd0vk+B3wyxZyQEY9Aent0gnZwnbxkk1ypAcsDu1wOCi6oAdMSDfhML3
zFqxybG5FwysMii9q9AC7zn2H+q4oI0gK68W2axemGm1y/dlSUTH80zbMAceR6KcP+mBP1u+8yev
fKAfAoyFYJv1n2ZYOKs/umkX8hqlSMUkAx6rb2Z9qnjmxxTw+JEI1NHr/27BtBTn+AEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['223']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:53:58 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=kta785l7m4kfbgiisssjq5dnu6; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+a3RhNzg1bDdtNGtmYmdp
aXNzc2pxNWRudTY8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ7CIBCF9z0FYW/Bn4WLKT2ACxNvQMuoTQo0/DQeX9qStDFGd99j3swbBuqX
7smIznfWVHRfckrQtFZ15lHRGO67M61FARrD06ob+sEaj+lhkE5qLwqyUAICo+wjTkTABxfbMDNJ
zbpBtwgCRmoUPsgQPbBZ5MLaniekHcSBc3K9AMsyW9nGC2w7/2sYttaon2nKxqZHwUt+OgLL6l/Y
vFX+5uoCli+SwU/0eb83VqoNRHgBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['194']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:53:59 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=kta785l7m4kfbgiisssjq5dnu6; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQQQ6CMBBF95xiwl5ajQtNhnICN96g0EFJaEtoSzy+UJpAjNHd+zP986eD1Uv3
MNHoOmvK/FjwHMg0VnXmUebBt4dLXokMNfmnVXdygzWO5sIgR6mdyGClGQAn2QdaCND5MTQ+Msxm
XdO4CkAjNQnnpQ8OWRSpsdnThHkHceZXuMVwMNZDa4NRyFIzGdnOiWyf9jWaGmvUz2xlQ92T4AU/
IUviX1ZcKv15e4UsnSeBW+jzmG8XBP1ahQEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['199']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:53:59 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,180 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WR3QrCMAyF732KsnttNxAUYvcAXgi+QbdFHeuPNu3w8d1mQRFRwbsvISfnkEB5
NZr16Kl1dpPlC5ExtLVrWnvcZDEc5quslDMwGE6u2SOdnSUcGmfllSE5Y3cagEGvdMSRGFDwsQ4T
s0FsKvT3goFVBmVwHVrgE6f+Q50WDBGkyNsurquYe6yUPnrqdFH4w8UI4GkkyfmTHviz5Tt/CipE
+iFAIQTbbf80w9rZ5qNb42KlUYqFyJfAU/XNbEqVzvyYAp4+koBGev3fDfr5gRn4AQAA
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['222']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:00 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=01iku9bu1rebalgrskl22rfqm0; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+MDFpa3U5
YnUxcmViYWxncnNrbDIycmZxbTA8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5zZWFzb248
L25hbWU+Cjx2YWx1ZT48aW50PjE8L2ludD48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5h
bWU+cXVlcnk8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPkRhbGxhczwvc3RyaW5nPjwvdmFsdWU+Cjwv
bWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5lcGlzb2RlPC9uYW1lPgo8dmFsdWU+PGludD4zPC9pbnQ+
PC92YWx1ZT4KPC9tZW1iZXI+CjxtZW1iZXI+CjxuYW1lPnN1Ymxhbmd1YWdlaWQ8L25hbWU+Cjx2
YWx1ZT48c3RyaW5nPmZyZTwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8L3N0cnVjdD48L3Zh
bHVlPgo8L2RhdGE+PC9hcnJheT48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['575']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA81aS3PiOBC+z69wZau2dg9+2xhYD1NJCLXU5MGGzGH2JlsNqOLXSHIS5tevbExg
CAwlNtr1iZYtq79uuj+1HuGnlzTRnoAykmcfz2zDOtMgi3NMsvnHs5LP9O7Zp8GHMAW+yPE9sCLP
GIgHBaIoZYMP2koSghY+oaSEStJCxmkZ81rWxMdpBHTV0MIMpTBgHPGShWbdaF5sPm9GEBgGjmVp
d59Ds2k2Xc2tvqG5Pf4+ZRhx9DNViFK0XLe0sOr+2trpu2tb8+gHpdqW6hvE4wXgi+UP+g+MvGX2
rEwSDi98x3DtrfnrR28hHEY1Hk7L6CZ/IjAiCUhCs9RgquH8idiiRXAulhym5HubPPRAUriZtgNQ
HUac8OSUMLJ7vmt7gR8EasAJaBWqWyFLIhuiJEFM+82xbOd3Tdcs+8Vyxe/DArQJJTFoX/NSm6Cl
8eJ0PP367toYUUGaC+PSKAvBHoCNc4xJHAghzlODUUV5LGw8j3mJksuhrPeVATohX3zHttUBOoFT
POxas6gDsRt4TjDzUewHXS/y7BkOXLsTKcN6jRh/kM5uq+/ZfVeRBzdJLutEv2vbrqcG1RcGdCwb
9IposP7fsnmJ5iANaUZBHf3lNEVcEpBKrpqWaYuI6rwUJS29zNMUMkkvme8PBuOhmDgknVPNULrV
0R1bszt9z+07HWXuukC4Nel2j7gYVhaOoQ7QMH/OkhxhdikbSgPP8xWWi/eQAGJtqIIUGjmayE6Z
jmv0AkW5Mh7WoGR5zrWCXk8ponGKI1k/OZbvqyKVGtQJkfnrL673xyo8a/FtSCrGeyXLPe88X9RA
vgKiJ0wXCl1TxddJzNxVyMwjQLyk0JK5qypbb0n8KB/17xxC4+ldx+1JF6tqvLKunk/ggtWUoyx6
muqQtSN6qsWsyHox7jgtEGlVVN+j7PH/LaKBEmBTUe3kWUvWGDWiq4KwHMvGtauQpz+TTDZwYG2E
qrBuy1K+/svGN8OLCaLSy8KBHThu0FGX/VfNyYwkrC8PI72rBtRfJdDlpDoBAg5Uhid3jlAOaHlV
xA4l9gEVW+bvT+/91h9wwDF03yo3nARuVceqRwgHaeg4xv1k9K7wWBklTRVA9pHTcZCHdtIkYdZj
7Mbm+6TJbVm9bQnRbfYsronszD1YcF70TRMnRl5Axpr9YWbkdG5CZuJmZHNGEhA/jMY6Koj5RGe6
FaCe44KNwGQE65ZNHsteVNoUIpTMKXtMHIfOvqWWuTkgMubf1Xjhb1L8B14Qb3ac4Md2z+5FMzc4
5gSlm+jrjX12uvHPz8/7rX99sDbhmKW4JkKdL0AvqrW8vsxLvUBL/V+tOt6m8+53obl93h+a25cB
JO8ZMIjzDP/0VgPOBdFBtRfpdYTmVeuYsm0jNr1Cs7l50QisknbvafwDNanaROAhAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['1076']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:01 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=01iku9bu1rebalgrskl22rfqm0; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+MDFpa3U5YnUxcmViYWxn
cnNrbDIycmZxbTA8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQQQ6DIBBF956CuK9gV12MeIAumvQGKNPWRKBhwPT4RSXRNE27e5/5M38YaF9m
ZBN6GpxtyroSJUPbOz3Ye1PGcDucylYWYDA8nL4iPZ0lTA9P5ZUhWbCVEjCY1BhxJgYUfOzDwiw1
mw79KhhYZVBSUCES8EXkwtaeJ6Qd5FEIdjkDzzJb+c4LfD//axj2zuqfadrFbkQpKlEDz+Jf1rJU
/uXmAp4PkoFm+jzfG9nfIyV3AQAA
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['192']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:01 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=01iku9bu1rebalgrskl22rfqm0; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQQQqDMBBF955icF8TodAWpvEE3fQG0YytYBIxifT41RhQSml378/kz58MVi/d
w0Sj66y55mXBcyDTWNWZxzUPvj2c80pkqMk/rbqTG6xxNBcGOUrtRAYrzQA4yT7QQoDOj6HxkWE2
65rGVQAaqUk4L31wyKJIjc2eJsw7iCO/wC2Gg7EeWhuMQpaaych2TmT7tK/R1FijfmYrG+qeBC94
eUKW1L+wuFX69PYKWbpPArfQ5zXfKQiAboYBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['200']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:01 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,194 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WRTY7CMAyF95wi6h4SEBSQTDjALEbiBmlrftTGRolTzfGnlEig0WgGid1ny8/v
yYb9l+9UjyFemHbFfGYKhVRzc6HTrkhynG6KvZ2ARzlzc8B4ZYo4NK4uOB/tRN1pAAW96xLeSEGU
kGoZWQ1iX2G4FwrIebTCLRLokXP/oc4Lhgi2nwcO/boNC14uxVfldiuupA2VoPNIlusnPehny9/8
ozhJ8YUAC2PU58ebZlgzNX+6NZyqDq2ZmXIFOlf/mY2p8pkfU6DzRzLEG/383zd4HFDf+AEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['226']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:53:59 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=v1rorv7kr2o44tmb699ta6n8n6; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+djFyb3J2
N2tyMm80NHRtYjY5OXRhNm44bjY8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5xdWVyeTwv
bmFtZT4KPHZhbHVlPjxzdHJpbmc+TWFuIG9mIFN0ZWVsPC9zdHJpbmc+PC92YWx1ZT4KPC9tZW1i
ZXI+CjxtZW1iZXI+CjxuYW1lPnN1Ymxhbmd1YWdlaWQ8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPmZy
ZTwvc3RyaW5nPjwvdmFsdWU+CjwvbWVtYmVyPgo8L3N0cnVjdD48L3ZhbHVlPgo8L2RhdGE+PC9h
cnJheT48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['446']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
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
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['2028']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:00 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=v1rorv7kr2o44tmb699ta6n8n6; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+djFyb3J2N2tyMm80NHRt
YjY5OXRhNm44bjY8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ7CIBCF9z0FYW/Bn4WLKT2ACxNvQMuoTQo0/DQeX9qStDFGd99j3swbBuqX
7smIznfWVHRfckrQtFZ15lHRGO67M61FARrD06ob+sEaj+lhkE5qLwqyUAICo+wjTkTABxfbMDNJ
zbpBtwgCRmoUPsgQPbBZ5MLaniekHcSBc3K9AMsyW9nGC2w7/2sYttaon2nKxqZHwUt+PAHL6l/Y
vFX+5uoCli+SwU/0eb83CEnn7HgBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['194']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:00 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=v1rorv7kr2o44tmb699ta6n8n6; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQrCMBCF9z3F0L1NBEGFaXoCN94gbaZaaJKSn+Lx7U+gRUR335vJmzcZrF66
h5Gc76wp82PBcyDTWNWZR5nH0B4ueSUy1BSeVt3JD9Z4mgqDdFJ7kcFKEwCOso80E6APLjZhYZjM
uia3CkAjNQkfZIge2SJSY7OnCdMO4sSvcFvCwdgArY1GIUvNZGQ7J7J92tdoaqxRP7OVjXVPghec
n5El9S9s2Sp9enuFLN0ngZ/p85pvZO5o2IYBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['200']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:00 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,181 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WRwQrCMAyG7z5F2V1bN2UeYn0AD4Jv0G1xG7bpWNvh4ztnQRFRwduXkD//TwK7
i9FswN61lrbJciEShlTaqqV6mwR/mm+SnZyBQd/Y6oius+RwbHSqV8bJGbvTCAwGpQPeiIHzfSj9
xGwUmwL7e8GAlEHp7RkJ+MSx/1DHBWMEqds26wpqOsI6x7VO66LJTvna58DjSJTzJz3wZ8t3/s4r
H9wPAVIh2GH/pxmWlqqPbpUNhUYpFiJdAY/VN7MpVTzzYwp4/EgEd6PX/10BKf3ITPgBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['224']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:04 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=lii3pbnhpneg7e5l2gbh3f75t7; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+bGlpM3Bi
bmhwbmVnN2U1bDJnYmgzZjc1dDc8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5zZWFzb248
L25hbWU+Cjx2YWx1ZT48aW50Pjc8L2ludD48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5h
bWU+cXVlcnk8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPlRoZSBCaWcgQmFuZyBUaGVvcnk8L3N0cmlu
Zz48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+ZXBpc29kZTwvbmFtZT4KPHZhbHVl
PjxpbnQ+NTwvaW50PjwvdmFsdWU+CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5zdWJsYW5ndWFn
ZWlkPC9uYW1lPgo8dmFsdWU+PHN0cmluZz5nZXI8L3N0cmluZz48L3ZhbHVlPgo8L21lbWJlcj4K
PC9zdHJ1Y3Q+PC92YWx1ZT4KPC9kYXRhPjwvYXJyYXk+PC92YWx1ZT4KPC9wYXJhbT4KPC9wYXJh
bXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['588']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA81aW3PaOBR+76/wZGf2Zcd3wDZ16RRIt0wLoYF2L28yOhhNfFtJTkJ//cqOSSiB
MmKjLk+WZFnnO8fnfDq6hG/v00S7BcpInr25sA3rQoNskWOSxW8uSr7U/Yu3vVdhCnyV42tgRZ4x
EA0FoihlvVfaQ0kUtPAWJSVUJS1knJYLXpc18XEaAX2oaGGGUugxjnjJQrOuNC+ePm9GEBh6jmVp
Vx9Ds6k2Xc2tvqG5Pf4+YRhx9CNRiFK03tS0sOr+WNvpu6tb0/SdUG1L9BjxxQpwf/2d/AMjb6m9
LJOEwz3fUVx7rv6m6TmEw6hGw1kZjfNbAu9JApLQLDWYajgfEFudEZz+msOMfDsnC81JCuPZeQCq
3YgTnpziRnbQdj3PDixfDTgBrUI1EWVJZPMVGH0SG32UxYao5HRtzCzv0mobnmMVxofh/Kvxp9Np
6cPR+HIyG11NDAz6bPDb/Gvri8GooqgVGr1b8BIlg6GsrZUBOiE6nMAL1AE6gUHwMvAcvxWhoBME
ju9YXoAiFy/coOO3lhgpw/oJMT6XjmWra/vdVqA6pCVhtR3XaluKiOYLAzqSdXpFWOr/lsUlikEa
UgxUHdnlNEVcEpBKrpqV6RkR1btSJLB0kKcpZJJWMl8eDMZDxKWJ07Jd3bZ0O9Bsu9v2u46jzFx9
hM8m3K4RF8PKwjHUARrmd1mSI8wGsq7UC/yOIuaus8NrSACxn5/0KFTp/VR2hnRcI/A6qubHGpQs
rXUst+MpRTRKcSSJynWcwA0UcUgN6gQ//PUXt/Va+J8mnFGrnFF7cMa6vSprf+T0pkjQArQpze9J
SvhasQqXsuzzwjNGDeQvQPSECUOhaSqXO4mbPUMRB1ZpECBeUjiT2atKXCdkcSMfCC/sQqPZVccN
ZBdGoMYqm/z5BHr4HUSWmynzniY/ZOfhPdVyVkS9GHeUFoiclVdfo+zm/02jgRJgM5Hu5Jks/yj6
XTWiy4KwHEsvnxXy9EeSyToObJRQ5dbnsjCsf9loPOxPEZVeGPb8wHc6ijJNYaXL5iBGEtVgajtt
RWnd5xLoelqd+AAHKsOTO0cmB6Q8CmKHAvuAiC3994f3fu0PGOAYun8qM5wEbk9qqx4uHOSk44D3
M9OLwmNllDQpAdnHVMdBHtpYk4RZj7HrqC8TM5Oyense8/fWFsYnIjuN91acF13TxImRF5CxZruY
GTmNTchM3IxsLkkC4sHoQkcFMW/pUrcjLwoQtvDCZATrCSFuEWWrIoPYg3bixNHKXXpt7plPp0NG
/E2NFf4mxU+wgnizYwR/ucS+32l7wTEjKN1T3+zzs9OVv7u726/9Y8NGhWOa8hXoEYn1SNCAzmtW
rB763Watrxebtb7+n9KS5xG++11obp//h+b25QDJewcMFnmGf3jLAeeC+6BnGbbbEpIfaseEbSvx
1Cs0m5sYTYFVpd17G/8CwkOcZPAhAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['1106']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:04 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=lii3pbnhpneg7e5l2gbh3f75t7; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+bGlpM3BibmhwbmVnN2U1
bDJnYmgzZjc1dDc8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5aiQsXQzmACxNvUOioJLQl/SEe3wJNIMbo7nudN/OmA81L
D2RC53tranosOSVoOqt686hpDPfDmTaiAI3hadUN/WiNx/QwSie1FwVZKQGBSQ4RZyLgg4tdWJik
Zt2iWwUBIzUKH2SIHtgicmFrzxPSDqLinFwvwLLMVrbzAtvP/xqGnTXqZ5qysR1Q8JJXJ2BZ/Qtb
tsrf3FzA8kUy+Jk+7/cGRa8PWngBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['194']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:04 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=lii3pbnhpneg7e5l2gbh3f75t7; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQQQ6CMBBF95xiwl5ajAtNxnICN96g0EFJaEtoSzy+UJpAjNHd+zP986eD1Uv3
MNHoOmuueVnwHMg0VnXmcc2Dbw/nvBIZavJPq+7kBmsczYVBjlI7kcFKMwBOsg+0EKDzY2h8ZJjN
uqZxFYBGahLOSx8csihSY7OnCfMO4sQvcIvhYKyH1gajkKVmMrKdE9k+7Ws0Ndaon9nKhronwQt+
LJEl9S8sbpU+vb1Clu6TwC30ec03vwiR/oYBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['200']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:04 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,164 @@
interactions:
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dJbjwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPHBhcmFtPgo8dmFsdWU+PHN0cmluZz48L3N0cmluZz48L3ZhbHVl
Pgo8L3BhcmFtPgo8cGFyYW0+Cjx2YWx1ZT48c3RyaW5nPjwvc3RyaW5nPjwvdmFsdWU+CjwvcGFy
YW0+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZW5nPC9zdHJpbmc+PC92YWx1ZT4KPC9wYXJhbT4K
PHBhcmFtPgo8dmFsdWU+PHN0cmluZz5zdWJsaW1pbmFsIHYxLjA8L3N0cmluZz48L3ZhbHVlPgo8
L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RDYWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['317']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA6WRwQrCMAyG7z5F2V1bJ4iH2D2AB8E3qG02xbWdTTt8fOcsKCIqePsS8uf/SaC6
2Jb1GOjo3bqYz0TB0Glvjq5ZFynW01VRyQlYjAdvdkidd4RDo1NBWZITdqcBGPSqTXgjBhRD0nFk
NojtHsO9YOCURRn9CR3wkXP/oc4LhgjSLJpOn71qNS4tLeuQytC4etGXwPNIlvMnPfBny3f+FFVM
9EOAUgi23fxphto789HN+LRvUYqZmAPPxTevMVS+8mMKeH5IBrrR6/uu3BshtfcBAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['221']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=d3gpcqoalce6ms6fru2rgnf3v2; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5TZWFyY2hTdWJ0
aXRsZXM8L21ldGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZDNncGNx
b2FsY2U2bXM2ZnJ1MnJnbmYzdjI8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8cGFyYW0+Cjx2
YWx1ZT48YXJyYXk+PGRhdGE+Cjx2YWx1ZT48c3RydWN0Pgo8bWVtYmVyPgo8bmFtZT5tb3ZpZWhh
c2g8L25hbWU+Cjx2YWx1ZT48c3RyaW5nPjEyMzQ1Njc4NzY1NDMyMTwvc3RyaW5nPjwvdmFsdWU+
CjwvbWVtYmVyPgo8bWVtYmVyPgo8bmFtZT5zdWJsYW5ndWFnZWlkPC9uYW1lPgo8dmFsdWU+PHN0
cmluZz5lbmc8L3N0cmluZz48L3ZhbHVlPgo8L21lbWJlcj4KPG1lbWJlcj4KPG5hbWU+bW92aWVi
eXRlc2l6ZTwvbmFtZT4KPHZhbHVlPjxzdHJpbmc+OTk5OTk8L3N0cmluZz48L3ZhbHVlPgo8L21l
bWJlcj4KPC9zdHJ1Y3Q+PC92YWx1ZT4KPC9kYXRhPjwvYXJyYXk+PC92YWx1ZT4KPC9wYXJhbT4K
PC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['537']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA52RTQ6CMBCF95yiYS+thoWLoR7AhYk3KHRUEtoSpiUeX35qIMZg4u577Zt5nSmc
nqZhPXZUO1uk+0ykDG3ldG3vRRr8bXdMTzIBg/7h9BWpdZZwOGhVpwzJhM00AINeNQFHYkC+C5Wf
mA3FpsRuFgysMijJKx8I+CTixVIeOwxvkAch2OUMPMpo5Ssv8HX/b2FaebUVVTrXoLJSAH/jXzmE
lbN6cyrtQtmgFJnIc+BR/Qqbpo/rXFzA4+Yj0Eif//QCLseBQ+ABAAA=
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['212']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=d3gpcqoalce6ms6fru2rgnf3v2; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5Mb2dPdXQ8L21l
dGhvZE5hbWU+CjxwYXJhbXM+CjxwYXJhbT4KPHZhbHVlPjxzdHJpbmc+ZDNncGNxb2FsY2U2bXM2
ZnJ1MnJnbmYzdjI8L3N0cmluZz48L3ZhbHVlPgo8L3BhcmFtPgo8L3BhcmFtcz4KPC9tZXRob2RD
YWxsPgo=
headers:
Accept-Encoding: [gzip]
Content-Length: ['176']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQTQ6CMBCF95yi6V5aceNiKAdwYeINCh2VhLakP8TjW6AJxBjdfa/zZt50oHnp
gUzofG9NTY8lpwRNZ1VvHjWN4X4400YUoDE8rbqhH63xmB5G6aT2oiArJSAwySHiTAR8cLELC5PU
rFt0qyBgpEbhgwzRA1tELmzteULaQVSck+sFWJbZynZeYPv5X8Ows0b9TFM2tgMKXvLqBCyrf2HL
VvmbmwtYvkgGP9Pn/d56851EeAEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Cache-Control: ['no-store, no-cache, must-revalidate, post-check=0, pre-check=0']
Content-Encoding: [gzip]
Content-Length: ['193']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
Expires: ['Thu, 19 Nov 1981 08:52:00 GMT']
Pragma: [no-cache]
Server: [lighttpd/1.4.35]
Set-Cookie: [PHPSESSID=d3gpcqoalce6ms6fru2rgnf3v2; path=/; domain=.opensubtitles.org]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
- request:
body: !!binary |
PD94bWwgdmVyc2lvbj0nMS4wJz8+CjxtZXRob2RDYWxsPgo8bWV0aG9kTmFtZT5jbG9zZTwvbWV0
aG9kTmFtZT4KPHBhcmFtcz4KPC9wYXJhbXM+CjwvbWV0aG9kQ2FsbD4K
headers:
Accept-Encoding: [gzip]
Content-Length: ['99']
Content-Type: [text/xml]
User-Agent: [Python-xmlrpc/3.4]
method: POST
uri: https://api.opensubtitles.org/xml-rpc
response:
body:
string: !!binary |
H4sIAAAAAAAAA4WQQQ6CMBBF95xiwl5ajQtNhnICN96g0EFJaEtoSzy+UJpAjNHd+zP986eD1Uv3
MNHoOmvK/FjwHMg0VnXmUebBt4dLXokMNfmnVXdygzWO5sIgR6mdyGClGQAn2QdaCND5MTQ+Msxm
XdO4CkAjNQnnpQ8OWRSpsdnThHkHceZXuMVwMNZDa4NRyFIzGdnOiWyf9jWaGmvUz2xlQ92T4AU/
IUviX1ZcKv15e4UsnSeBW+jzmG8XBP1ahQEAAA==
headers:
Accept-Ranges: [bytes]
Access-Control-Allow-Headers: ['Origin, X-Requested-With, Content-Type, Accept']
Access-Control-Allow-Origin: ['*']
Age: ['0']
Content-Encoding: [gzip]
Content-Length: ['199']
Content-type: [text/xml;charset=UTF-8]
Date: ['Sat, 11 Jul 2015 21:54:03 GMT']
Server: [lighttpd/1.4.35]
Strict-Transport-Security: [max-age=63072000; includeSubdomains; preload]
X-Cache: [MISS]
X-Cache-Backend: [web3]
X-Content-Type-Options: [nosniff]
X-Frame-Options: [DENY]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,757 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
Location: ['http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>12</results></pagination><subtitle><id>2738264</id><pid>WMgp</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/WMgp</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>Man.Of.Steel.2013.EXTRAS.BONUS.DISC.720p.BluRay.DTS.x264-PublicHD:
publichd.EXTRAS.Journey.Of.Discovery.Creating.Man.Of.Steel.720p publichd.EXTRAS.Planet.Krypton.720p</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1385011759</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>1766</downloads><exactHashes
/></subtitle><subtitle><id>2681136</id><pid>MOko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/MOko</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>publichd.EXTRAS</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382420144</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>4605</downloads><exactHashes
/></subtitle><subtitle><id>2672974</id><pid>Tsko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Tsko</url><uploaderId>144401</uploaderId><uploaderName>flax</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
Man.Of.Steel.2013.720p.BluRay.x264-Felony.[PublicHD]. Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7.
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER. Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG.
Man.Of.Steel.(2013).BDRip.600MB.Ganool. Man.of.Steel.2013.BDRip.x264.700MB-Micromkv.
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD. Man.Of.Steel.2013.BDRip.x264-Larceny.
Man.Of.Steel.2013.BDRiP.XViD-NoGRP. Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO.
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG. Man.Of.Steel.[2013].BRRip.XviD-ETRG.
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG. Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC.
Man.of.steel.2013.BRRip.XviD.AC3-RARBG. Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N.
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381874511</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>10147</downloads><exactHashes>sublight:44b92527dbc1d9a73bfb02990c41ffa1
sublight:391ae5c74ab8ab8f93f9875d236a672b sublight:e5c4c23d90498eb7482b1f016ff39e92</exactHashes></subtitle><subtitle><id>2672656</id><pid>EMgo</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/EMgo</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
Man.Of.Steel.2013.720p.BluRay.x264-Felony Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG
Man.Of.Steel.(2013).BDRip.600MB.Ganool Man.of.Steel.2013.BDRip.x264.700MB-Micromkv
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD Man.Of.Steel.2013.BDRip.x264-Larceny
Man.Of.Steel.2013.BDRiP.XViD-NoGRP Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG Man.Of.Steel.[2013].BRRip.XviD-ETRG
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC
Man.of.steel.2013.BRRip.XviD.AC3-RARBG Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON Man.Of.Steel.2013.720p.BRRip.x264.AC3-JYK
Man.of.Steel.[2013].DVDRIP.DIVX.[Eng]-DUQA&#9516;&#171; Man.of.Steel.2013.1080p.BluRay.x264.YIFY</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381852391</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>11139</downloads><exactHashes>sublight:bb6b91e12f876eecbf86ca6a296807a7
sublight:e5c4c23d90498eb7482b1f016ff39e92 sublight:1858614a80929a54653e95d50f8accc1</exactHashes></subtitle><subtitle><id>2667828</id><pid>NLUo</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/NLUo</url><uploaderId>86327</uploaderId><uploaderName>mixi69</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381502479</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>1544</downloads><exactHashes /></subtitle><subtitle><id>2525113</id><pid>uYcm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/uYcm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA&#9516;&#171;</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373611040</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>2770</downloads><exactHashes /></subtitle><subtitle><id>2524778</id><pid>aoYm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/aoYm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Superman.Man.of.Steel.2013.480p.R6.LiNE.x264.AAC-DAMN</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373589100</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>8518</downloads><exactHashes /></subtitle><subtitle><id>2520414</id><pid>XnUm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/XnUm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.(2013).720p.R6.LiNE.900MB.Ganool</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373391411</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>4222</downloads><exactHashes /></subtitle><subtitle><id>2515558</id><pid>ZmIm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/ZmIm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.720p.R6.LiNE.x264.AAC-DiGiTAL</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373141422</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>5565</downloads><exactHashes /></subtitle><subtitle><id>2495682</id><pid>whQm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/whQm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.CAM.XviD.MP3.MiLLENiUM</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372075950</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>6276</downloads><exactHashes /></subtitle><subtitle><id>2495217</id><pid>8RIm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/8RIm</url><uploaderId>26933</uploaderId><uploaderName>asdasd</uploaderName><release>Man.Of.Steel.2013.CAM.XViD-CALiBRATE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372047356</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>5048</downloads><exactHashes /></subtitle><subtitle><id>2489654</id><pid>Nv0l</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Nv0l</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.CAM.NEW.AUDiO.XViD-JUSTiCE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1371805723</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>7480</downloads><exactHashes /></subtitle></results>"}
headers:
Connection: [keep-alive]
Content-Length: ['11082']
Content-Type: [text/xml;charset=utf-8]
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
Location: ['http://www.podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>2</results></pagination><subtitle><id>2673432</id><pid>GMso</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/fr-man-of-steel-2013/GMso</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.Of.Steel.2013.BDRip.x264-Larceny</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1381991887</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>3899</downloads><exactHashes>sublight:e5c4c23d90498eb7482b1f016ff39e92</exactHashes></subtitle><subtitle><id>2552439</id><pid>d_Im</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/fr-man-of-steel-2013/d_Im</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.Of.Steel.2013.TS.XviD-JUSTiCE
Man.of.Steel.2013.720p.R6.LiNE.x264.AAC-DiGiTAL</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1374819034</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>4279</downloads><exactHashes /></subtitle></results>"}
headers:
Connection: [keep-alive]
Content-Length: ['2785']
Content-Type: [text/xml;charset=utf-8]
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://podnapisi.net/subtitles/GMso/download?container=zip
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
Location: ['http://www.podnapisi.net/subtitles/GMso/download?container=zip']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.podnapisi.net/subtitles/GMso/download?container=zip
response:
body:
string: !!binary |
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
AAEAXQAAABF8AAAAAA==
headers:
Accept-Ranges: [bytes]
Connection: [keep-alive]
Content-Disposition: [attachment; filename="78b9e7505fc4b675bbdff555d95e1443e3ba1653.zip"]
Content-Length: ['31876']
Content-Type: [application/octet-stream]
Date: ['Thu, 09 Jul 2015 21:33:30 GMT']
ETag: ['"525f5570-7c84"']
Last-Modified: ['Thu, 17 Oct 2013 03:11:44 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,160 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://podnapisi.net/subtitles/search/old?sTS=3&sL=en&sTE=10&sXML=1&sK=Game+of+Thrones
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
Location: ['http://www.podnapisi.net/subtitles/search/old?sTS=3&sL=en&sTE=10&sXML=1&sK=Game+of+Thrones']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.podnapisi.net/subtitles/search/old?sTS=3&sL=en&sTE=10&sXML=1&sK=Game+of+Thrones
response:
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>10</results></pagination><subtitle><id>3953259</id><pid>a1I8</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/a1I8</url><uploaderId>None</uploaderId><uploaderName
/><release>Game.of.Thrones.S03E10.720p.BluRay.450MB.ShAaNiG.com Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.H.264-NTb
Game.of.Thrones.S03E10.720p.BluRay.450MB.ShAaNiG.com.srt</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1436203578</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>23</downloads><exactHashes /></subtitle><subtitle><id>3740656</id><pid>8BM5</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/8BM5</url><uploaderId>23329</uploaderId><uploaderName>jane</uploaderName><release>Game.Of.Thrones.S03E10.720p.x264-ILPruny</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1420528825</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>1093</downloads><exactHashes
/></subtitle><subtitle><id>2911594</id><pid>am0s</pid><title>Game of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/am0s</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>game.of.thrones.s03e10.bdrip.x264-demand</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1392415949</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>n</flags><new_flags><flag>hearing_impaired</flag></new_flags><downloads>3444</downloads><exactHashes>sublight:1253562ba785425176701686b7452a73</exactHashes></subtitle><subtitle><id>2533905</id><pid>Eaom</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/Eaom</url><uploaderId>63492</uploaderId><uploaderName>Rafael4</uploaderName><release>Game.Of.Thrones.S03E10.1080p.WEB-RiP.x264.anoXmous</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373986843</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>4720</downloads><exactHashes>sublight:a5a45e8c236f271840123ea8268da767</exactHashes></subtitle><subtitle><id>2475668</id><pid>lMYl</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/lMYl</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.H.264-NTb
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.H.264-NTb Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.AAC2.0.H.264-YFN</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370985771</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>9269</downloads><exactHashes>sublight:9f69fd76f1e5c7ab688a70f1fe463ec7
sublight:a5a45e8c236f271840123ea8268da767</exactHashes></subtitle><subtitle><id>2475674</id><pid>msYl</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/msYl</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.H.264-NTb
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.H.264-NTb Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.AAC2.0.H.264-YFN</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370985492</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>5918</downloads><exactHashes>sublight:da1ce34e0e82dd0971176d60f1f80b2e</exactHashes></subtitle><subtitle><id>2474991</id><pid>78Ml</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/78Ml</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.720p.HDTV.x264-EVOLVE
Game.of.Thrones.S03E10.720p.HDTV.x264-CPG Game.of.Thrones.S03E10.480p.HDTV.x264-ChameE
Game.of.Thrones.S03E10.480p.HDTV.x264-mSD Game.of.Thrones.S03E10.HDTV.XviD-Chivvez
Game.of.Thrones.S03E10.HDTV.XviD-3LT0N Game.of.Thrones.S03E10.HDTV.XviD-Snake
Game.of.Thrones.S03E10.HDTV.XviD-JKS Game.of.Thrones.S03E10.HDTV.XviD-AFG</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370850866</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>14912</downloads><exactHashes>sublight:abb28aefd1ca56458901371447fec372</exactHashes></subtitle><subtitle><id>2474990</id><pid>7sMl</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/7sMl</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.720p.HDTV.x264-EVOLVE
Game.of.Thrones.S03E10.720p.HDTV.x264-CPG Game.of.Thrones.S03E10.480p.HDTV.x264-ChameE
Game.of.Thrones.S03E10.480p.HDTV.x264-mSD Game.of.Thrones.S03E10.HDTV.XviD-Chivvez
Game.of.Thrones.S03E10.HDTV.XviD-3LT0N Game.of.Thrones.S03E10.HDTV.XviD-Snake
Game.of.Thrones.S03E10.HDTV.XviD-JKS Game.of.Thrones.S03E10.HDTV.XviD-AFG</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370850847</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>39570</downloads><exactHashes>sublight:9b52a2dd794f64ea8262b67ee0766a88
sublight:1d01a67ecc7e2504b122c02a2e1ae0f2</exactHashes></subtitle><subtitle><id>2474960</id><pid>0MMl</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/0MMl</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.HDTV.x264-EVOLVE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370840356</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>n</flags><new_flags><flag>hearing_impaired</flag></new_flags><downloads>12335</downloads><exactHashes>sublight:33850fc19e55ce536f5a436f90eea557
sublight:cea810fe8295c80c43308873d2bde5e9</exactHashes></subtitle><subtitle><id>2474959</id><pid>z8Ml</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/en-game-of-thrones-2011-S03E10/z8Ml</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.HDTV.x264-EVOLVE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1370840316</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags /><new_flags
/><downloads>26909</downloads><exactHashes>sublight:abb28aefd1ca56458901371447fec372</exactHashes></subtitle></results>"}
headers:
Connection: [keep-alive]
Content-Length: ['9836']
Content-Type: [text/xml;charset=utf-8]
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://podnapisi.net/subtitles/search/old?sTS=3&sL=fr&sTE=10&sXML=1&sK=Game+of+Thrones
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
Location: ['http://www.podnapisi.net/subtitles/search/old?sTS=3&sL=fr&sTE=10&sXML=1&sK=Game+of+Thrones']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.podnapisi.net/subtitles/search/old?sTS=3&sL=fr&sTE=10&sXML=1&sK=Game+of+Thrones
response:
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>4</results></pagination><subtitle><id>2475667</id><pid>k8Yl</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/fr-game-of-thrones-2011-S03E10/k8Yl</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.H.264-NTb
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.H.264-NTb Game.of.Thrones.S03E10.720p.WEB-DL.DD5.1.AAC2.0.H.264-YFN
Game.of.Thrones.S03E10.1080p.WEB-DL.DD5.1.AAC2.0.H.264-YFN</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1370985775</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>1917</downloads><exactHashes /></subtitle><subtitle><id>2475661</id><pid>jcYl</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/fr-game-of-thrones-2011-S03E10/jcYl</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Game.of.Thrones.S03E10.720p.HDTV.x264-EVOLVE
Game.of.Thrones.S03E10.720p.HDTV.x264-CPG Game.of.Thrones.S03E10.480p.HDTV.x264-ChameE
Game.of.Thrones.S03E10.480p.HDTV.x264-mSD Game.of.Thrones.S03E10.HDTV.XviD-Chivvez
Game.of.Thrones.S03E10.HDTV.XviD-3LT0N Game.of.Thrones.S03E10.HDTV.XviD-Snake
Game.of.Thrones.S03E10.HDTV.XviD-JKS Game.of.Thrones.S03E10.HDTV.XviD-AFG</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1370985506</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>1598</downloads><exactHashes /></subtitle><subtitle><id>2474993</id><pid>8cMl</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/fr-game-of-thrones-2011-S03E10/8cMl</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.720p.HDTV.x264-EVOLVE
Game.of.Thrones.S03E10.720p.HDTV.x264-CPG Game.of.Thrones.S03E10.480p.HDTV.x264-ChameE
Game.of.Thrones.S03E10.480p.HDTV.x264-mSD Game.of.Thrones.S03E10.HDTV.XviD-Chivvez
Game.of.Thrones.S03E10.HDTV.XviD-3LT0N Game.of.Thrones.S03E10.HDTV.XviD-Snake
Game.of.Thrones.S03E10.HDTV.XviD-JKS Game.of.Thrones.S03E10.HDTV.XviD-AFG</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1370851348</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>5273</downloads><exactHashes>sublight:abb28aefd1ca56458901371447fec372</exactHashes></subtitle><subtitle><id>2474984</id><pid>6MMl</pid><title>Game
of Thrones</title><year>2011</year><movieId>mLUG</movieId><url>http://www.podnapisi.net/subtitles/fr-game-of-thrones-2011-S03E10/6MMl</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>Game.of.Thrones.S03E10.HDTV.x264-EVOLVE</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1370848797</time><tvSeason>3</tvSeason><tvEpisode>10</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>3814</downloads><exactHashes /></subtitle></results>"}
headers:
Connection: [keep-alive]
Content-Length: ['4874']
Content-Type: [text/xml;charset=utf-8]
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,160 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
Location: ['http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>12</results></pagination><subtitle><id>2738264</id><pid>WMgp</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/WMgp</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>Man.Of.Steel.2013.EXTRAS.BONUS.DISC.720p.BluRay.DTS.x264-PublicHD:
publichd.EXTRAS.Journey.Of.Discovery.Creating.Man.Of.Steel.720p publichd.EXTRAS.Planet.Krypton.720p</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1385011759</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>1766</downloads><exactHashes
/></subtitle><subtitle><id>2681136</id><pid>MOko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/MOko</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>publichd.EXTRAS</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382420144</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>4605</downloads><exactHashes
/></subtitle><subtitle><id>2672974</id><pid>Tsko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Tsko</url><uploaderId>144401</uploaderId><uploaderName>flax</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
Man.Of.Steel.2013.720p.BluRay.x264-Felony.[PublicHD]. Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7.
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER. Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG.
Man.Of.Steel.(2013).BDRip.600MB.Ganool. Man.of.Steel.2013.BDRip.x264.700MB-Micromkv.
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD. Man.Of.Steel.2013.BDRip.x264-Larceny.
Man.Of.Steel.2013.BDRiP.XViD-NoGRP. Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO.
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG. Man.Of.Steel.[2013].BRRip.XviD-ETRG.
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG. Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC.
Man.of.steel.2013.BRRip.XviD.AC3-RARBG. Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N.
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381874511</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>10147</downloads><exactHashes>sublight:44b92527dbc1d9a73bfb02990c41ffa1
sublight:391ae5c74ab8ab8f93f9875d236a672b sublight:e5c4c23d90498eb7482b1f016ff39e92</exactHashes></subtitle><subtitle><id>2672656</id><pid>EMgo</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/EMgo</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
Man.Of.Steel.2013.720p.BluRay.x264-Felony Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG
Man.Of.Steel.(2013).BDRip.600MB.Ganool Man.of.Steel.2013.BDRip.x264.700MB-Micromkv
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD Man.Of.Steel.2013.BDRip.x264-Larceny
Man.Of.Steel.2013.BDRiP.XViD-NoGRP Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG Man.Of.Steel.[2013].BRRip.XviD-ETRG
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC
Man.of.steel.2013.BRRip.XviD.AC3-RARBG Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON Man.Of.Steel.2013.720p.BRRip.x264.AC3-JYK
Man.of.Steel.[2013].DVDRIP.DIVX.[Eng]-DUQA&#9516;&#171; Man.of.Steel.2013.1080p.BluRay.x264.YIFY</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381852391</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>11139</downloads><exactHashes>sublight:bb6b91e12f876eecbf86ca6a296807a7
sublight:e5c4c23d90498eb7482b1f016ff39e92 sublight:1858614a80929a54653e95d50f8accc1</exactHashes></subtitle><subtitle><id>2667828</id><pid>NLUo</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/NLUo</url><uploaderId>86327</uploaderId><uploaderName>mixi69</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381502479</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>1544</downloads><exactHashes /></subtitle><subtitle><id>2525113</id><pid>uYcm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/uYcm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA&#9516;&#171;</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373611040</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>2770</downloads><exactHashes /></subtitle><subtitle><id>2524778</id><pid>aoYm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/aoYm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Superman.Man.of.Steel.2013.480p.R6.LiNE.x264.AAC-DAMN</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373589100</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>8518</downloads><exactHashes /></subtitle><subtitle><id>2520414</id><pid>XnUm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/XnUm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.(2013).720p.R6.LiNE.900MB.Ganool</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373391411</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>4222</downloads><exactHashes /></subtitle><subtitle><id>2515558</id><pid>ZmIm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/ZmIm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.720p.R6.LiNE.x264.AAC-DiGiTAL</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373141422</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>5565</downloads><exactHashes /></subtitle><subtitle><id>2495682</id><pid>whQm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/whQm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.CAM.XviD.MP3.MiLLENiUM</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372075950</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>6276</downloads><exactHashes /></subtitle><subtitle><id>2495217</id><pid>8RIm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/8RIm</url><uploaderId>26933</uploaderId><uploaderName>asdasd</uploaderName><release>Man.Of.Steel.2013.CAM.XViD-CALiBRATE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372047356</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>5048</downloads><exactHashes /></subtitle><subtitle><id>2489654</id><pid>Nv0l</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Nv0l</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.CAM.NEW.AUDiO.XViD-JUSTiCE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1371805723</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>7480</downloads><exactHashes /></subtitle></results>"}
headers:
Connection: [keep-alive]
Content-Length: ['11082']
Content-Type: [text/xml;charset=utf-8]
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
Location: ['http://www.podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.podnapisi.net/subtitles/search/old?sL=fr&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>2</results></pagination><subtitle><id>2673432</id><pid>GMso</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/fr-man-of-steel-2013/GMso</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.Of.Steel.2013.BDRip.x264-Larceny</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1381991887</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>3899</downloads><exactHashes>sublight:e5c4c23d90498eb7482b1f016ff39e92</exactHashes></subtitle><subtitle><id>2552439</id><pid>d_Im</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/fr-man-of-steel-2013/d_Im</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.Of.Steel.2013.TS.XviD-JUSTiCE
Man.of.Steel.2013.720p.R6.LiNE.x264.AAC-DiGiTAL</release><languageId>8</languageId><languageName>French</languageName><language>fr</language><time>1374819034</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>4279</downloads><exactHashes /></subtitle></results>"}
headers:
Connection: [keep-alive]
Content-Length: ['2785']
Content-Type: [text/xml;charset=utf-8]
Date: ['Thu, 09 Jul 2015 21:33:29 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,70 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://podnapisi.net/subtitles/search/old?sTS=7&sL=en&sY=2007&sK=The+Big+Bang+Theory&sTE=5&sXML=1
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
Location: ['http://www.podnapisi.net/subtitles/search/old?sTS=7&sL=en&sY=2007&sK=The+Big+Bang+Theory&sTE=5&sXML=1']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.podnapisi.net/subtitles/search/old?sTS=7&sL=en&sY=2007&sK=The+Big+Bang+Theory&sTE=5&sXML=1
response:
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>5</results></pagination><subtitle><id>3514331</id><pid>2581</pid><title>The
Big Bang Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/2581</url><uploaderId>23329</uploaderId><uploaderName>jane</uploaderName><release>the.big.bang.theory.s07e05.1080p.bluray.x264-rovers</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1410069965</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>843</downloads><exactHashes
/></subtitle><subtitle><id>3514307</id><pid>w581</pid><title>The Big Bang
Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/w581</url><uploaderId>23329</uploaderId><uploaderName>jane</uploaderName><release>the.big.bang.theory.s07e05.1080p.bluray.x264-rovers</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1410069864</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>838</downloads><exactHashes
/></subtitle><subtitle><id>2676094</id><pid>ftUo</pid><title>The Big Bang
Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/ftUo</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>The.Big.Bang.Theory.S07E05.720p.WEB-DL.DD5.1.H.264</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382101941</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>4050</downloads><exactHashes>sublight:8bf2c59b194d36229b4e88995084ec05</exactHashes></subtitle><subtitle><id>2675729</id><pid>EdQo</pid><title>The
Big Bang Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/EdQo</url><uploaderId>44181</uploaderId><uploaderName>grzesiek11</uploaderName><release>The.Big.Bang.Theory.S07E05.HDTV.x264-LOL
The.Big.Bang.Theory.S07E05.720p.HDTV.x264-DIMENSION The.Big.Bang.Theory.S07E05.480p.HDTV.x264-mSD
The.Big.Bang.Theory.S07E05.HDTV.XviD-AFG</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382071751</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>22411</downloads><exactHashes>sublight:52882d75832c3c6fe8116d26993f66c4
sublight:b34e0421f93bd4df512ca5458376a559 sublight:09e9dc38376b2245e9f806c106dc9928
sublight:fd25365147f1e59f4cfa4c283c70b22a</exactHashes></subtitle><subtitle><id>2675544</id><pid>WNMo</pid><title>The
Big Bang Theory</title><year>2007</year><movieId>sY0G</movieId><url>http://www.podnapisi.net/subtitles/en-the-big-bang-theory-2007-S07E05/WNMo</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>The.Big.Bang.Theory.S07E05.HDTV.x264-LOL
The.Big.Bang.Theory.S07E05.720p.HDTV.x264-DIMENSION The.Big.Bang.Theory.S07E05.480p.HDTV.x264-mSD
The.Big.Bang.Theory.S07E05.HDTV.XviD-AFG</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382058590</time><tvSeason>7</tvSeason><tvEpisode>5</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>8692</downloads><exactHashes>sublight:52882d75832c3c6fe8116d26993f66c4
sublight:1be0b687d8689ee0e2a094531f7da7b8</exactHashes></subtitle></results>"}
headers:
Connection: [keep-alive]
Content-Length: ['5559']
Content-Type: [text/xml;charset=utf-8]
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,105 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<html>\r\n<head><title>302 Found</title></head>\r\n<body bgcolor=\"white\">\r\n<center><h1>302
Found</h1></center>\r\n<hr><center>nginx/1.8.0</center>\r\n</body>\r\n</html>\r\n"}
headers:
Connection: [keep-alive]
Content-Length: ['160']
Content-Type: [text/html]
Date: ['Thu, 09 Jul 2015 21:33:27 GMT']
Location: ['http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel']
Server: [nginx/1.8.0]
status: {code: 302, message: Moved Temporarily}
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.podnapisi.net/subtitles/search/old?sL=en&sY=2013&sXML=1&sK=Man+of+Steel
response:
body: {string: "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>\n<!DOCTYPE
results [\n <!ELEMENT results (#PCDATA|pagination|subtitle)*>\n <!ELEMENT
pagination (current, count, results)>\n <!ELEMENT current (#PCDATA)>\n
\ <!ELEMENT count (#PCDATA)>\n <!ELEMENT subtitle (id, title, year,
movieId, url, uploaderId, uploaderName, release, languageId, languageName,
time, tvSeason, tvEpisode, tvSpecial, cds, format, fps, rating, flags, downloads)>\n
\ <!ELEMENT id (#PCDATA)>\n <!ELEMENT pid (#PCDATA)>\n <!ELEMENT
title (#PCDATA)>\n <!ELEMENT year (#PCDATA)>\n <!ELEMENT movieId
(#PCDATA)>\n <!ELEMENT url (#PCDATA)>\n <!ELEMENT uploaderId (#PCDATA)>\n
\ <!ELEMENT uploaderName (#PCDATA)>\n <!ELEMENT release (#PCDATA)>\n
\ <!ELEMENT languageId (#PCDATA)>\n <!ELEMENT languageName (#PCDATA)>\n
\ <!ELEMENT language (#PCDATA)>\n <!ELEMENT time (#PCDATA)>\n <!ELEMENT
tvSeason (#PCDATA)>\n <!ELEMENT tvEpisode (#PCDATA)>\n <!ELEMENT
tvSpecial (#PCDATA)>\n <!ELEMENT cds (#PCDATA)>\n <!ELEMENT format
(#PCDATA)>\n <!ELEMENT fps (#PCDATA)>\n <!ELEMENT rating (#PCDATA)>\n
\ <!ELEMENT flags (#PCDATA)>\n <!ELEMENT new_flags (#PCDATA)>\n <!ELEMENT
flag (#PCDATA)>\n <!ELEMENT downloads (#PCDATA)>\n <!ELEMENT exactHashes
(#PCDATA)>]> <results><pagination><current>1</current><count>1</count><results>12</results></pagination><subtitle><id>2738264</id><pid>WMgp</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/WMgp</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>Man.Of.Steel.2013.EXTRAS.BONUS.DISC.720p.BluRay.DTS.x264-PublicHD:
publichd.EXTRAS.Journey.Of.Discovery.Creating.Man.Of.Steel.720p publichd.EXTRAS.Planet.Krypton.720p</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1385011759</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>1766</downloads><exactHashes
/></subtitle><subtitle><id>2681136</id><pid>MOko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/MOko</url><uploaderId>41840</uploaderId><uploaderName>gilraen</uploaderName><release>publichd.EXTRAS</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1382420144</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>4605</downloads><exactHashes
/></subtitle><subtitle><id>2672974</id><pid>Tsko</pid><title>Man of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Tsko</url><uploaderId>144401</uploaderId><uploaderName>flax</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
Man.Of.Steel.2013.720p.BluRay.x264-Felony.[PublicHD]. Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7.
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER. Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG.
Man.Of.Steel.(2013).BDRip.600MB.Ganool. Man.of.Steel.2013.BDRip.x264.700MB-Micromkv.
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD. Man.Of.Steel.2013.BDRip.x264-Larceny.
Man.Of.Steel.2013.BDRiP.XViD-NoGRP. Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO.
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG. Man.Of.Steel.[2013].BRRip.XviD-ETRG.
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG. Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC.
Man.of.steel.2013.BRRip.XviD.AC3-RARBG. Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N.
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381874511</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>h</flags><new_flags><flag>high_definition</flag></new_flags><downloads>10147</downloads><exactHashes>sublight:44b92527dbc1d9a73bfb02990c41ffa1
sublight:391ae5c74ab8ab8f93f9875d236a672b sublight:e5c4c23d90498eb7482b1f016ff39e92</exactHashes></subtitle><subtitle><id>2672656</id><pid>EMgo</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/EMgo</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.720p.BRRip.x264.AAC-ViSiON
Man.Of.Steel.2013.720p.BluRay.x264-Felony Man.Of.Steel.2013.1080p.BluRay.x264-SECTOR7
Man.Of.Steel.2013.720p.BRRip.x264.AC3-UNDERCOVER Man.Of.Steel.2013.BDRip.XviD.MP3-RARBG
Man.Of.Steel.(2013).BDRip.600MB.Ganool Man.of.Steel.2013.BDRip.x264.700MB-Micromkv
Man.Of.Steel.2013.BRRip.AAC.x264-SSDD Man.Of.Steel.2013.BDRip.x264-Larceny
Man.Of.Steel.2013.BDRiP.XViD-NoGRP Man.Of.Steel.2013.720p.BRRip.x264.AC3-EVO
Man.of.Steel.2013.720p.BRRip.h264.AAC-RARBG Man.Of.Steel.[2013].BRRip.XviD-ETRG
Man.of.Steel.[2013].BRRip.XViD.[AC3]-ETRG Man.Of.Steel.2013.BRRiP.XVID.AC3-MAJESTIC
Man.of.steel.2013.BRRip.XviD.AC3-RARBG Man.Of.Steel.2013.720p.BRRip.x264.AC3-SUPERM4N
Man.Of.Steel.2013.720p.BRRip.XviD.AC3-ViSiON Man.Of.Steel.2013.720p.BRRip.x264.AC3-JYK
Man.of.Steel.[2013].DVDRIP.DIVX.[Eng]-DUQA&#9516;&#171; Man.of.Steel.2013.1080p.BluRay.x264.YIFY</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381852391</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>1.0</rating><flags>nh</flags><new_flags><flag>hearing_impaired</flag><flag>high_definition</flag></new_flags><downloads>11139</downloads><exactHashes>sublight:bb6b91e12f876eecbf86ca6a296807a7
sublight:e5c4c23d90498eb7482b1f016ff39e92 sublight:1858614a80929a54653e95d50f8accc1</exactHashes></subtitle><subtitle><id>2667828</id><pid>NLUo</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/NLUo</url><uploaderId>86327</uploaderId><uploaderName>mixi69</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1381502479</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>1544</downloads><exactHashes /></subtitle><subtitle><id>2525113</id><pid>uYcm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/uYcm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.[2013].INTERNAL.TS.720p.DIVX.[Eng]-DUQA&#9516;&#171;</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373611040</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>2770</downloads><exactHashes /></subtitle><subtitle><id>2524778</id><pid>aoYm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/aoYm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Superman.Man.of.Steel.2013.480p.R6.LiNE.x264.AAC-DAMN</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373589100</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>8518</downloads><exactHashes /></subtitle><subtitle><id>2520414</id><pid>XnUm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/XnUm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.(2013).720p.R6.LiNE.900MB.Ganool</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373391411</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>4222</downloads><exactHashes /></subtitle><subtitle><id>2515558</id><pid>ZmIm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/ZmIm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.720p.R6.LiNE.x264.AAC-DiGiTAL</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1373141422</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>5565</downloads><exactHashes /></subtitle><subtitle><id>2495682</id><pid>whQm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/whQm</url><uploaderId>1</uploaderId><uploaderName>Anonymous</uploaderName><release>Man.of.Steel.2013.CAM.XviD.MP3.MiLLENiUM</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372075950</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>6276</downloads><exactHashes /></subtitle><subtitle><id>2495217</id><pid>8RIm</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/8RIm</url><uploaderId>26933</uploaderId><uploaderName>asdasd</uploaderName><release>Man.Of.Steel.2013.CAM.XViD-CALiBRATE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1372047356</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>5048</downloads><exactHashes /></subtitle><subtitle><id>2489654</id><pid>Nv0l</pid><title>Man
of Steel</title><year>2013</year><movieId>_ngG</movieId><url>http://www.podnapisi.net/subtitles/en-man-of-steel-2013/Nv0l</url><uploaderId>7718</uploaderId><uploaderName>jdinic3</uploaderName><release>Man.Of.Steel.2013.CAM.NEW.AUDiO.XViD-JUSTiCE</release><languageId>2</languageId><languageName>English</languageName><language>en</language><time>1371805723</time><tvSeason>0</tvSeason><tvEpisode>0</tvEpisode><tvSpecial>0</tvSpecial><cds
/><format>N/A</format><fps>N/A</fps><rating>0.0</rating><flags /><new_flags
/><downloads>7480</downloads><exactHashes /></subtitle></results>"}
headers:
Connection: [keep-alive]
Content-Length: ['11082']
Content-Type: [text/xml;charset=utf-8]
Date: ['Thu, 09 Jul 2015 21:33:28 GMT']
Server: [nginx/1.8.0]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,444 @@
interactions:
- request:
body: null
headers:
User-Agent: ['SubDB/1.0 (subliminal/0.8.0; https://github.com/Diaoul/subliminal)']
method: GET
uri: http://api.thesubdb.com/?action=search&hash=9dbbfb7ba81c9a6237237dae8589fccc
response:
body: {string: 'en,es,fr,pt'}
headers:
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:12:34 GMT']
Server: [nginx/1.6.0]
status: {code: 200, message: OK}
- request:
body: null
headers:
User-Agent: ['SubDB/1.0 (subliminal/0.8.0; https://github.com/Diaoul/subliminal)']
method: GET
uri: http://api.thesubdb.com/?action=download&language=en&hash=9dbbfb7ba81c9a6237237dae8589fccc
response:
body: {string: "\uFEFF1\r\n00:00:05,532 --> 00:00:07,400\r\nAwkward silence.\r\n\r\n2\r\n00:00:07,402
--> 00:00:08,684\r\nSheldon on his phone.\r\n\r\n3\r\n00:00:08,686 --> 00:00:09,719\r\nNo
touching.\r\n\r\n4\r\n00:00:09,721 --> 00:00:13,122\r\nSomebody's having date
night.\r\n\r\n5\r\n00:00:13,124 --> 00:00:15,208\r\nIt's actually steamier\r\nthan
it looks.\r\n\r\n6\r\n00:00:15,210 --> 00:00:18,077\r\nSheldon's looking up
the phallic\r\nsymbolism of root vegetables\r\n\r\n7\r\n00:00:18,079 --> 00:00:19,796\r\nin
Renaissance paintings.\r\n\r\n8\r\n00:00:19,798 --> 00:00:21,447\r\nOh, no,
I got bored\r\nwith that.\r\n\r\n9\r\n00:00:21,449 --> 00:00:25,418\r\nI'm
just browsing\r\ncuticle scissors on Amazon.\r\n\r\n10\r\n00:00:26,370 -->
00:00:28,004\r\nHow do you\r\nnot tear off his clothes\r\n\r\n11\r\n00:00:28,006
--> 00:00:30,556\r\nand take him right here\r\non this table?\r\n\r\n12\r\n00:00:30,558
--> 00:00:33,259\r\nIf you do that, I'll scream.\r\n\r\n13\r\n00:00:36,430
--> 00:00:38,631\r\nSheldon, I have some\r\nexciting news to tell you.\r\n\r\n14\r\n00:00:38,633
--> 00:00:39,782\r\nThat makes two of us.\r\n\r\n15\r\n00:00:39,784 --> 00:00:41,267\r\nMy
new cuticle scissors\r\nwill be here\r\n\r\n16\r\n00:00:41,269 --> 00:00:43,152\r\nin
one to two business days.\r\n\r\n17\r\n00:00:43,154 --> 00:00:45,721\r\nCome
on, one.\r\n\r\n18\r\n00:00:45,723 --> 00:00:47,824\r\nI've been invited to\r\nconsult
on an experiment\r\n\r\n19\r\n00:00:47,826 --> 00:00:50,193\r\nat your university\r\nfor
a few months.\r\n\r\n20\r\n00:00:50,195 --> 00:00:51,327\r\nIsn't that great?\r\n\r\n21\r\n00:00:51,329
--> 00:00:52,912\r\nWe could have lunch together.\r\n\r\n22\r\n00:00:52,914
--> 00:00:54,314\r\nWe could carpool.\r\n\r\n23\r\n00:00:54,316 --> 00:00:56,466\r\nYou
know, riding with Leonard\r\n\r\n24\r\n00:00:56,468 --> 00:00:58,735\r\nhas
gotten\r\na little tedious lately.\r\n\r\n25\r\n00:00:58,737 --> 00:01:02,205\r\nTh-The
only car game he ever\r\nwants to play is the Quiet Game.\r\n\r\n26\r\n00:01:02,207
--> 00:01:03,306\r\nAnd he's terrible at it.\r\n\r\n27\r\n00:01:03,308 -->
00:01:05,458\r\nI always win.\r\n\r\n28\r\n00:01:06,844 --> 00:01:08,728\r\nSo,
you're okay with this?\r\n\r\n29\r\n00:01:08,730 --> 00:01:10,396\r\nWell,
why wouldn't I be?\r\n\r\n30\r\n00:01:10,398 --> 00:01:12,432\r\nWell, this
project\r\nwould have us working\r\n\r\n31\r\n00:01:12,434 --> 00:01:14,467\r\nin
close proximity\r\nto one another.\r\n\r\n32\r\n00:01:14,469 --> 00:01:15,968\r\nAnd
there's the vulgar adage\r\n\r\n33\r\n00:01:15,970 --> 00:01:19,639\r\nthat
one should not\r\ndefecate where one eats.\r\n\r\n34\r\n00:01:19,641 --> 00:01:21,974\r\nMy
father used to say\r\nthat all the time.\r\n\r\n35\r\n00:01:21,976 --> 00:01:25,161\r\nThat
and, um, \"Who does one\r\nhave to orally gratify\r\n\r\n36\r\n00:01:25,163
--> 00:01:27,880\r\nto get a drink around here?\"\r\n\r\n37\r\n00:01:29,233
--> 00:01:31,718\r\nBut what does that have to do\r\n\r\n38\r\n00:01:31,720
--> 00:01:33,636\r\nwith you working\r\nat the university?\r\n\r\n39\r\n00:01:33,638
--> 00:01:36,239\r\nSheldon, \"Don't defecate\r\nwhere you eat,\"\r\n\r\n40\r\n00:01:36,241
--> 00:01:38,274\r\nmeans don't have a\r\nromantic relationship\r\n\r\n41\r\n00:01:38,276
--> 00:01:39,876\r\nin the workplace.\r\n\r\n42\r\n00:01:41,078 --> 00:01:43,062\r\nReally?\r\n\r\n43\r\n00:01:45,766
--> 00:01:47,383\r\nYes.\r\n\r\n44\r\n00:01:47,385 --> 00:01:48,468\r\nHuh.\r\n\r\n45\r\n00:01:48,470
--> 00:01:50,787\r\nYeah, I always\r\ntook it literally.\r\n\r\n46\r\n00:01:50,789
--> 00:01:53,622\r\nThat's why I have never\r\nonce moved my bowels\r\n\r\n47\r\n00:01:53,624
--> 00:01:55,992\r\nin this or any restaurant.\r\n\r\n48\r\n00:01:55,994 -->
00:01:57,944\r\nHmm.\r\n\r\n49\r\n00:01:57,946 --> 00:01:59,979\r\nI'm relieved
that you\r\ndon't have a problem\r\n\r\n50\r\n00:01:59,981 --> 00:02:01,264\r\nwith
us working together.\r\n\r\n51\r\n00:02:01,266 --> 00:02:03,516\r\nNot as
relieved\r\nas I'm about to be.\r\n\r\n52\r\n00:02:04,518 --> 00:02:06,753\r\nIt's
a brave new world,\r\nlittle lady.\r\n\r\n53\r\n00:02:09,189 --> 00:02:12,825\r\n\u266A
Our whole universe\r\nwas in a hot, dense state \u266A\r\n\r\n54\r\n00:02:12,827
--> 00:02:16,162\r\n\u266A Then nearly 14 billion years\r\nago expansion started...
Wait! \u266A\r\n\r\n55\r\n00:02:16,164 --> 00:02:17,813\r\n\u266A The Earth
began to cool\r\n\r\n56\r\n00:02:17,815 --> 00:02:20,333\r\n\u266A The autotrophs
began to drool,\r\nNeanderthals developed tools \u266A\r\n\r\n57\r\n00:02:20,335
--> 00:02:23,002\r\n\u266A We built the Wall\r\n\u266A <i>We built the pyramids</i>
\u266A\r\n\r\n58\r\n00:02:23,004 --> 00:02:25,688\r\n\u266A Math, Science,
History,\r\nunraveling the mystery \u266A\r\n\r\n59\r\n00:02:25,690 --> 00:02:27,573\r\n\u266A
That all started\r\nwith a big bang \u266A\r\n\r\n60\r\n00:02:27,575 --> 00:02:28,341\r\n\u266A
<i>Bang!</i> \u266A\r\n\r\n61\r\n00:02:28,342 --> 00:02:32,342\r\n<font color=#00FF00>\u266A
The Big Bang Theory 7x05 \u266A</font>\r\n<font color=#00FFFF>The Workplace
Proximity</font>\r\nOriginal Air Date on October 17, 2013\r\n\r\n62\r\n00:02:32,367
--> 00:02:37,367\r\n== sync, corrected by <font color=#00FF00>elderman</font>
==\r\n<font color=#00FFFF>@elder_man</font>\r\n\r\n63\r\n00:02:37,818 -->
00:02:39,385\r\nAre you crazy?\r\n\r\n64\r\n00:02:39,387 --> 00:02:40,436\r\nYou
don't want\r\n\r\n65\r\n00:02:40,438 --> 00:02:42,305\r\nyour girlfriend\r\nat
work with you.\r\n\r\n66\r\n00:02:42,307 --> 00:02:45,007\r\nHell Clam.\r\n\r\n67\r\n00:02:45,009
--> 00:02:46,526\r\nWhy not?\r\n\r\n68\r\n00:02:46,528 --> 00:02:49,112\r\nHairy
Fairy.\r\n\r\n69\r\n00:02:49,114 --> 00:02:50,680\r\nI think it could be romantic.\r\n\r\n70\r\n00:02:50,682
--> 00:02:52,649\r\nYou know, my parents met\r\nat his place of work.\r\n\r\n71\r\n00:02:52,651
--> 00:02:55,685\r\nYour father's a gynecologist.\r\n\r\n72\r\n00:02:55,687
--> 00:02:56,869\r\nI know.\r\n\r\n73\r\n00:02:56,871 --> 00:02:59,822\r\nWhat
started as a pap smear\r\nturned into a date.\r\n\r\n74\r\n00:03:01,292 -->
00:03:02,675\r\nWhich turned\r\ninto her working there,\r\n\r\n75\r\n00:03:02,677
--> 00:03:04,644\r\nwhich turned into marriage,\r\nwhich then turned into
hatred,\r\n\r\n76\r\n00:03:04,646 --> 00:03:07,196\r\nwhich continues to this
day.\r\n\r\n77\r\n00:03:07,298 --> 00:03:10,066\r\nTwo-Eyed Cyclops.\r\n\r\n78\r\n00:03:10,068
--> 00:03:12,902\r\nWould you please tell him\r\nthis isn't a good idea?\r\n\r\n79\r\n00:03:12,904
--> 00:03:14,270\r\nNo, no, I think it'll be great.\r\n\r\n80\r\n00:03:14,272
--> 00:03:15,888\r\nMaybe next time he gets\r\nconjunctivitis at work,\r\n\r\n81\r\n00:03:15,890
--> 00:03:19,942\r\nshe can hold his head and try\r\nto put the drops in his
eyes.\r\n\r\n82\r\n00:03:19,944 --> 00:03:22,428\r\nGiant baby.\r\n\r\n83\r\n00:03:22,430
--> 00:03:24,280\r\nThat's a Raging Ogre.\r\n\r\n84\r\n00:03:24,282 --> 00:03:26,516\r\nYeah,
I know.\r\n\r\n85\r\n00:03:28,519 --> 00:03:30,686\r\nI'm just saying, I'd
never want\r\nto work with Bernadette.\r\n\r\n86\r\n00:03:30,688 --> 00:03:32,655\r\nCan
you imagine seeing\r\nsomeone all day long\r\n\r\n87\r\n00:03:32,657 --> 00:03:34,123\r\nand
then you're\r\nsupposed to hang out\r\n\r\n88\r\n00:03:34,125 --> 00:03:35,825\r\nwith
them after work, too?\r\n\r\n89\r\n00:03:35,827 --> 00:03:37,493\r\nHold on.
We do\r\nthat all the time.\r\n\r\n90\r\n00:03:37,495 --> 00:03:39,228\r\nYou
and I work together\r\nand play together.\r\n\r\n91\r\n00:03:39,230 --> 00:03:42,882\r\nYeah,
I know, and it drove me\r\ninto the arms of another woman.\r\n\r\n92\r\n00:03:44,701
--> 00:03:46,719\r\nBipolar Bear.\r\n\r\n93\r\n00:03:46,721 --> 00:03:49,605\r\nWell,
I appreciate your concern,\r\n\r\n94\r\n00:03:49,607 --> 00:03:52,809\r\nbut
I won't be seeing any more\r\nof Amy than I already do.\r\n\r\n95\r\n00:03:52,811
--> 00:03:55,094\r\nI assume we'll deduct\r\nany extra time we spend together\r\n\r\n96\r\n00:03:55,096
--> 00:03:57,964\r\nat work from our weekly quota.\r\n\r\n97\r\n00:03:59,883
--> 00:04:02,552\r\nPlease let me be there\r\nwhen you tell her that.\r\n\r\n98\r\n00:04:03,520
--> 00:04:05,688\r\nWhy? So you can see the\r\nlook on Amy's face\r\n\r\n99\r\n00:04:05,690
--> 00:04:07,990\r\nwhen she hears\r\nmy top-notch idea?\r\n\r\n100\r\n00:04:07,992
--> 00:04:10,576\r\nPlease, oh, please,\r\njust let me be there.\r\n\r\n101\r\n00:04:12,546
--> 00:04:15,681\r\nSo, Amy, what are you gonna\r\nbe working on at Caltech?\r\n\r\n102\r\n00:04:15,683
--> 00:04:17,467\r\nI'm leading a study to see\r\n\r\n103\r\n00:04:17,469
--> 00:04:19,368\r\nif deficiency of the\r\nmonoamine oxidase enzyme\r\n\r\n104\r\n00:04:19,370
--> 00:04:21,444\r\nleads to paralyzing\r\nfear in monkeys.\r\n\r\n105\r\n00:04:21,469
--> 00:04:22,339\r\nOh.\r\n\r\n106\r\n00:04:22,340 --> 00:04:25,158\r\nIf
they're anything like humans,\r\nthe answer's yes.\r\n\r\n107\r\n00:04:25,160
--> 00:04:27,577\r\nWait, you've-you've done\r\nthis experiment on humans?\r\n\r\n108\r\n00:04:27,579
--> 00:04:30,263\r\nYou mean like death row inmates\r\nwith nothing to lose?\r\n\r\n109\r\n00:04:30,365
--> 00:04:33,082\r\nNo, that would be unethical.\r\n\r\n110\r\n00:04:34,618
--> 00:04:36,586\r\nYou know,\r\nnot a lot of people know this,\r\n\r\n111\r\n00:04:36,588
--> 00:04:37,837\r\nbut the monoamine oxidase enzyme\r\n\r\n112\r\n00:04:37,839
--> 00:04:39,789\r\nwas discovered by a woman,\r\nMary Bernheim.\r\n\r\n113\r\n00:04:42,276
--> 00:04:43,542\r\nThat's right.\r\n\r\n114\r\n00:04:43,544 --> 00:04:46,545\r\nMy
phone is just\r\nas smart as you guys.\r\n\r\n115\r\n00:04:48,316 --> 00:04:49,448\r\nAmy,
Bernadette, Penny.\r\n\r\n116\r\n00:04:49,450 --> 00:04:51,150\r\nAmy, Bernadette,\r\nPenny.\r\n\r\n117\r\n00:04:51,152
--> 00:04:53,536\r\nAmy, Bernadette, Penny.\r\n\r\n118\r\n00:04:53,538 -->
00:04:56,305\r\nHe's never gonna\r\nstop doing that, is he?\r\n\r\n119\r\n00:04:56,307
--> 00:04:57,440\r\nI don't mind.\r\n\r\n120\r\n00:04:57,442 --> 00:04:59,108\r\nI'm
hoping to put\r\nhis love of repetition\r\n\r\n121\r\n00:04:59,110 --> 00:05:00,860\r\nto
good use someday.\r\n\r\n122\r\n00:05:03,246 --> 00:05:05,231\r\nHi. Um...\r\n\r\n123\r\n00:05:05,233
--> 00:05:06,399\r\nI've reconsidered.\r\n\r\n124\r\n00:05:06,401 --> 00:05:07,900\r\nUh,
you can't work\r\nwhere I work.\r\n\r\n125\r\n00:05:07,902 --> 00:05:09,268\r\nEnjoy
the rest\r\nof your evening.\r\n\r\n126\r\n00:05:09,270 --> 00:05:10,903\r\nSheldon.\r\n\r\n127\r\n00:05:10,905
--> 00:05:13,122\r\nI-I already signed\r\nthe contract.\r\n\r\n128\r\n00:05:13,124
--> 00:05:14,523\r\nI cashed a check.\r\n\r\n129\r\n00:05:14,525 --> 00:05:16,575\r\nMmm...
you are not going\r\n\r\n130\r\n00:05:16,577 --> 00:05:18,427\r\nto come out
of\r\nthis looking good.\r\n\r\n131\r\n00:05:18,429 --> 00:05:19,662\r\nSheldon,\r\nI
don't understand.\r\n\r\n132\r\n00:05:19,664 --> 00:05:21,580\r\nI thought
you said\r\nyou were fine with it.\r\n\r\n133\r\n00:05:21,582 --> 00:05:22,698\r\nWell,
I was.\r\n\r\n134\r\n00:05:22,700 --> 00:05:24,333\r\nBut that was before\r\nHoward
explained to me\r\n\r\n135\r\n00:05:24,335 --> 00:05:26,469\r\nhow awful it
would be\r\nif he had to work\r\n\r\n136\r\n00:05:26,471 --> 00:05:28,137\r\nwith
his significant other.\r\n\r\n137\r\n00:05:28,139 --> 00:05:30,723\r\nHe said
what?\r\n\r\n138\r\n00:05:30,725 --> 00:05:32,675\r\nNow, don't be insulted.\r\n\r\n139\r\n00:05:32,677
--> 00:05:36,896\r\nHe just thinks too much of you\r\nwould be mind-numbingly
tedious.\r\n\r\n140\r\n00:05:36,898 --> 00:05:40,066\r\nExcuse me, I need
to have\r\na chat with my husband.\r\n\r\n141\r\n00:05:40,068 --> 00:05:41,901\r\nYeah,
well, now,\r\nwell... keep it short.\r\n\r\n142\r\n00:05:41,903 --> 00:05:45,438\r\nFr-From
what I gather,\r\nbrevity is your friend.\r\n\r\n143\r\n00:05:46,573 --> 00:05:48,741\r\nSo,
are we good here?\r\n\r\n144\r\n00:05:48,743 --> 00:05:50,326\r\nNo, we're
not good here.\r\n\r\n145\r\n00:05:50,328 --> 00:05:51,827\r\nI am working
on this project.\r\n\r\n146\r\n00:05:51,829 --> 00:05:54,080\r\nYeah, and
you can't tell her\r\nwhat she can and cannot do.\r\n\r\n147\r\n00:05:54,082
--> 00:05:56,098\r\nLast week, you told Leonard\r\nhe couldn't wear\r\n\r\n148\r\n00:05:56,100
--> 00:05:58,300\r\nhis Wookiee jacket\r\nout in public.\r\n\r\n149\r\n00:05:58,302
--> 00:05:59,518\r\nThat's different.\r\n\r\n150\r\n00:05:59,520 --> 00:06:01,454\r\nI'm
not going to the mall\r\nwith someone dressed\r\n\r\n151\r\n00:06:01,456 -->
00:06:03,539\r\ndumb space bear.\r\n\r\n152\r\n00:06:05,575 --> 00:06:07,626\r\nSheldon,
you don't have to worry\r\nabout me bothering you.\r\n\r\n153\r\n00:06:07,628
--> 00:06:08,878\r\nI'll be in a different building.\r\n\r\n154\r\n00:06:08,880
--> 00:06:10,746\r\nAnd we don't even have\r\nto have lunch together.\r\n\r\n155\r\n00:06:10,748
--> 00:06:11,864\r\nReally?\r\n\r\n156\r\n00:06:11,866 --> 00:06:14,517\r\nYes.
Before all things,\r\nI'm a scientist.\r\n\r\n157\r\n00:06:14,519 --> 00:06:16,969\r\nI'm
just there to do my work\r\nand, with a little luck,\r\n\r\n158\r\n00:06:16,971
--> 00:06:19,605\r\nscare the living crap\r\nout of some monkeys.\r\n\r\n159\r\n00:06:19,607
--> 00:06:23,142\r\nHmm.\r\n\r\n160\r\n00:06:23,144 --> 00:06:25,811\r\nYou
sure your mothlike\r\npersonality won't be drawn\r\n\r\n161\r\n00:06:25,813
--> 00:06:28,564\r\nto this blazing fire\r\nthat is myself?\r\n\r\n162\r\n00:06:31,535
--> 00:06:33,786\r\nMore and more sure.\r\n\r\n163\r\n00:06:33,788 --> 00:06:36,872\r\nWell,
then, you\r\nhave my permission.\r\n\r\n164\r\n00:06:36,874 --> 00:06:37,957\r\nI
didn't ask\r\nfor your permission.\r\n\r\n165\r\n00:06:37,959 --> 00:06:39,158\r\nToo
late. No backsies.\r\n\r\n166\r\n00:06:41,611 --> 00:06:44,413\r\nNo, no,
listen to me.\r\nSheldon misunderstood.\r\n\r\n167\r\n00:06:44,415 --> 00:06:45,381\r\nWhat
I meant was,\r\n\r\n168\r\n00:06:45,383 --> 00:06:46,448\r\nif we worked together,\r\n\r\n169\r\n00:06:46,450
--> 00:06:48,117\r\nthere'd be too much\r\nof me for you,\r\n\r\n170\r\n00:06:48,119
--> 00:06:50,252\r\nnot the other way around.\r\n\r\n171\r\n00:06:50,254 -->
00:06:52,722\r\nHoward, if you're going\r\nto lie to your wife,\r\n\r\n172\r\n00:06:52,724
--> 00:06:55,324\r\ndon't start the sentence\r\nwith \"Sheldon misunderstood.\"\r\n\r\n173\r\n00:06:56,877
--> 00:06:58,010\r\nThat's a dead giveaway.\r\n\r\n174\r\n00:06:58,012 -->
00:06:59,929\r\nWell?\r\n\r\n175\r\n00:06:59,931 --> 00:07:01,130\r\nOkay,
fine.\r\n\r\n176\r\n00:07:01,132 --> 00:07:02,898\r\nI did say that,\r\nand
I think it's true.\r\n\r\n177\r\n00:07:02,900 --> 00:07:05,017\r\nI think
if we worked together\r\nand lived together,\r\n\r\n178\r\n00:07:05,019 -->
00:07:06,519\r\nwe'd get sick of each other.\r\n\r\n179\r\n00:07:06,521 -->
00:07:08,104\r\nYeah, but to be fair,\r\nhe only said the part\r\n\r\n180\r\n00:07:08,106
--> 00:07:09,188\r\nabout him\r\ngetting sick of you.\r\n\r\n181\r\n00:07:09,190
--> 00:07:11,023\r\nFor the love of God, why?!\r\n\r\n182\r\n00:07:15,212
--> 00:07:17,863\r\nWhat exactly do you\r\nthink you'd get sick of?\r\n\r\n183\r\n00:07:17,865
--> 00:07:20,015\r\nHis only options here\r\nare to fake a heart attack\r\n\r\n184\r\n00:07:20,017
--> 00:07:22,384\r\nor have a real one.\r\n\r\n185\r\n00:07:22,386 --> 00:07:25,654\r\nIt-it's
nothing\r\nin particular. I...\r\n\r\n186\r\n00:07:25,656 --> 00:07:27,823\r\nIs
it my voice?\r\nAm I too bossy?\r\n\r\n187\r\n00:07:27,825 --> 00:07:28,958\r\nWhat...?\r\n\r\n188\r\n00:07:28,960
--> 00:07:31,877\r\nMy arm is feeling numb.\r\n\r\n189\r\n00:07:32,796 -->
00:07:35,781\r\nNailed it.\r\n\r\n190\r\n00:07:35,783 --> 00:07:39,385\r\nThat's
the wrong arm for\r\na heart attack, doofus.\r\n\r\n191\r\n00:07:41,221 -->
00:07:44,356\r\nMy point is, I'm sure\r\nthere are things about me\r\n\r\n192\r\n00:07:44,358
--> 00:07:46,642\r\nthat would drive you crazy\r\nif you had to deal\r\n\r\n193\r\n00:07:46,644
--> 00:07:48,394\r\nwith them all day long.\r\n\r\n194\r\n00:07:48,396 -->
00:07:50,596\r\nLike looking me in the\r\neye and lying to me?\r\n\r\n195\r\n00:07:50,598
--> 00:07:52,148\r\nOh, well, come on, I just...\r\n\r\n196\r\n00:07:52,150
--> 00:07:55,401\r\nWhere am I supposed to\r\nlook when I lie to you?\r\n\r\n197\r\n00:07:55,403
--> 00:07:57,753\r\nFind somewhere else \r\nto sleep tonight.\r\n\r\n198\r\n00:07:57,755
--> 00:07:59,905\r\nOh, Bernie...\r\n\r\n199\r\n00:08:06,863 --> 00:08:10,466\r\nIf
it makes you feel any better,\r\nAmy and I are fine.\r\n\r\n200\r\n00:08:13,069
--> 00:08:15,237\r\nI mean, really good.\r\n\r\n201\r\n00:08:17,474 --> 00:08:19,842\r\nSo,
boys, how was\r\nthe pajama party?\r\n\r\n202\r\n00:08:19,844 --> 00:08:23,729\r\nYou
guys jump on the bed\r\nand sing into hair brushes?\r\n\r\n203\r\n00:08:23,731
--> 00:08:25,931\r\nIt wasn't a pajama party.\r\n\r\n204\r\n00:08:25,933 -->
00:08:28,434\r\nIt was just a couple of bros\r\nhanging out, giggling,\r\n\r\n205\r\n00:08:28,436
--> 00:08:31,520\r\neating cookie dough\r\nand watching <i>Princess Bride.</i>\r\n\r\n206\r\n00:08:33,073
--> 00:08:34,607\r\nPlease, stop talking.\r\n\r\n207\r\n00:08:36,243 --> 00:08:38,861\r\nAs
you wish.\r\n\r\n208\r\n00:08:42,666 --> 00:08:44,733\r\nI mean, you know,
Sheldon,\r\nnone of this would've happened\r\n\r\n209\r\n00:08:44,735 -->
00:08:46,202\r\nif I hadn't tried\r\nto help you.\r\n\r\n210\r\n00:08:46,204
--> 00:08:48,787\r\nUh, it also wouldn't\r\nhave happened\r\n\r\n211\r\n00:08:48,789
--> 00:08:50,289\r\nif, in the early universe,\r\n\r\n212\r\n00:08:50,291
--> 00:08:53,792\r\nhydrogen was a little more\r\ncommon or a little less
common.\r\n\r\n213\r\n00:08:53,794 --> 00:08:56,278\r\nThis is fun. Your turn.\r\n\r\n214\r\n00:08:57,264
--> 00:08:58,597\r\nGentlemen.\r\nHey, Amy.\r\n\r\n215\r\n00:08:58,599 -->
00:09:00,282\r\nHello.\r\n\r\n216\r\n00:09:00,284 --> 00:09:01,684\r\nThat
was kind of icy.\r\n\r\n217\r\n00:09:01,686 --> 00:09:03,335\r\nYou two okay?\r\n\r\n218\r\n00:09:03,337
--> 00:09:04,353\r\nOh, we're fine.\r\n\r\n219\r\n00:09:04,355 --> 00:09:05,771\r\nAs
Howard advised,\r\n\r\n220\r\n00:09:05,773 --> 00:09:07,973\r\nshe's merely
respecting our\r\nprofessional boundaries.\r\n\r\n221\r\n00:09:07,975 -->
00:09:08,941\r\nSmart.\r\n\r\n222\r\n00:09:08,943 --> 00:09:10,543\r\nTake
relationship advice\r\nfrom a man\r\n\r\n223\r\n00:09:10,545 --> 00:09:12,962\r\nwho
spent last night\r\nbraiding Raj's hair.\r\n\r\n224\r\n00:09:15,431 --> 00:09:18,450\r\nYeah,
you make\r\na good point.\r\n\r\n225\r\n00:09:18,452 --> 00:09:20,653\r\nIt
would appear\r\nI was worried for nothing.\r\n\r\n226\r\n00:09:20,655 -->
00:09:22,204\r\nLook at her, desperately wishing\r\n\r\n227\r\n00:09:22,206
--> 00:09:24,156\r\nshe was over here\r\nat the cool table.\r\n\r\n228\r\n00:09:26,576
--> 00:09:28,327\r\nDon't worry, little moth.\r\n\r\n229\r\n00:09:28,329 -->
00:09:30,629\r\nThe flame will come to you.\r\n\r\n230\r\n00:09:32,832 -->
00:09:34,567\r\nOh, uh...\r\n\r\n231\r\n00:09:34,569 --> 00:09:36,385\r\non
the off chance that\r\nBernadette doesn't call back\r\n\r\n232\r\n00:09:36,387
--> 00:09:37,770\r\nand apologize,\r\nhow do you feel\r\n\r\n233\r\n00:09:37,772
--> 00:09:39,672\r\nabout Mexican food\r\nfor dinner tonight?\r\n\r\n234\r\n00:09:39,674
--> 00:09:41,840\r\nI-I don't know.\r\nSounds kind of heavy.\r\n\r\n235\r\n00:09:41,842
--> 00:09:44,810\r\nThat's 'cause you always\r\nfill up on chips.\r\n\r\n236\r\n00:09:44,812
--> 00:09:47,479\r\nAnd this is Dr. Gunderson\r\nfrom Stockholm.\r\n\r\n237\r\n00:09:47,481
--> 00:09:49,031\r\nAh, Sweden.\r\n\r\n238\r\n00:09:49,033 --> 00:09:50,733\r\nYeah,
home of my favorite Muppet\r\n\r\n239\r\n00:09:50,735 --> 00:09:53,719\r\nand,
uh,\r\nsecond favorite meatball.\r\n\r\n240\r\n00:09:57,140 --> 00:10:01,343\r\nOkay,
the Nordic reputation for\r\nlack of humor is well-founded.\r\n\r\n241\r\n00:10:02,812
--> 00:10:05,581\r\nBoy, is his name Gunderson\r\nor No-Funderson?\r\n\r\n242\r\n00:10:06,833
--> 00:10:09,068\r\nWhere are we going\r\nwith this, Dr. Cooper?\r\n\r\n243\r\n00:10:09,070
--> 00:10:11,103\r\nOh, please, I'm your boyfriend.\r\n\r\n244\r\n00:10:11,105
--> 00:10:13,555\r\nYou call me Sheldon.\r\n\r\n245\r\n00:10:13,557 --> 00:10:16,158\r\nThat's
right,\r\nI am in a boy-girl relationship\r\n\r\n246\r\n00:10:16,160 --> 00:10:18,928\r\nwith
this cute little\r\nlump of wool.\r\n\r\n247\r\n00:10:18,930 --> 00:10:20,045\r\nSheldon...\r\n\r\n248\r\n00:10:20,047
--> 00:10:21,764\r\nIt's a physical\r\nrelationship, too.\r\n\r\n249\r\n00:10:21,766
--> 00:10:25,517\r\nHand-holding, hugging...\r\neven on hot days.\r\n\r\n250\r\n00:10:25,519
--> 00:10:27,386\r\nOw.\r\n\r\n251\r\n00:10:28,171 --> 00:10:29,538\r\nOkay,
here's a new one.\r\n\r\n252\r\n00:10:29,540 --> 00:10:31,140\r\nApparently
now\r\nwe kick each other\r\n\r\n253\r\n00:10:31,142 --> 00:10:32,775\r\nin
the shin under the table.\r\n\r\n254\r\n00:10:34,477 --> 00:10:37,012\r\nHow
do you like it\r\nwhen I do it to you?\r\n\r\n255\r\n00:10:38,398 --> 00:10:41,066\r\nNot
so much, huh?\r\n\r\n256\r\n00:10:53,498 --> 00:10:55,883\r\nTest subject
D7,\r\n\r\n257\r\n00:10:55,885 --> 00:10:58,535\r\naka Betsy, fear response
study.\r\n\r\n258\r\n00:10:58,537 --> 00:11:02,389\r\nImage number one: Frenchman\r\non
bicycle carrying baguettes.\r\n\r\n259\r\n00:11:05,393 --> 00:11:08,395\r\nNo
visible reaction.\r\n\r\n260\r\n00:11:08,397 --> 00:11:10,764\r\nImage number
two: sousaphone.\r\n\r\n261\r\n00:11:13,234 --> 00:11:14,735\r\nStill no reaction.\r\n\r\n262\r\n00:11:14,737
--> 00:11:15,736\r\nOkay.\r\n\r\n263\r\n00:11:15,738 --> 00:11:17,371\r\nLet's
kick things up a notch.\r\n\r\n264\r\n00:11:17,373 --> 00:11:20,090\r\nImage
number three: crocodile\r\nwith a mouthful of monkeys.\r\n\r\n265\r\n00:11:24,078
--> 00:11:27,131\r\nOkay, now we're talking.\r\n\r\n266\r\n00:11:27,133 -->
00:11:29,066\r\nDr. Fowler?\r\n\r\n267\r\n00:11:29,068 --> 00:11:31,135\r\nWhat
do you want, Sheldon?\r\n\r\n268\r\n00:11:31,137 --> 00:11:33,220\r\nWell,
I'm done\r\nwith work, so...\r\n\r\n269\r\n00:11:34,423 --> 00:11:36,357\r\nOh,
sorry, sorry, sorry.\r\n\r\n270\r\n00:11:36,359 --> 00:11:39,092\r\nSorry.
Uh...\r\n\r\n271\r\n00:11:39,094 --> 00:11:40,527\r\nBetter?\r\n\r\n272\r\n00:11:40,529
--> 00:11:41,695\r\nOh, baguettes.\r\n\r\n273\r\n00:11:41,697 --> 00:11:43,897\r\nYes,
I like baguettes.\r\n\r\n274\r\n00:11:43,899 --> 00:11:46,099\r\nWhat exactly\r\nare
you doing?\r\n\r\n275\r\n00:11:46,101 --> 00:11:48,535\r\nDetermining baseline
fear levels\r\nin capuchin monkeys\r\n\r\n276\r\n00:11:48,537 --> 00:11:50,871\r\nby
measuring their response\r\nto visual stimuli.\r\n\r\n277\r\n00:11:50,873
--> 00:11:52,339\r\nSo, goofing off.\r\n\r\n278\r\n00:11:54,909 --> 00:11:57,578\r\nAs
I was saying, I'm done\r\nwith work and Leonard's not.\r\n\r\n279\r\n00:11:57,580
--> 00:12:00,214\r\nSo good news,\r\nyou get to take me home.\r\n\r\n280\r\n00:12:00,216
--> 00:12:01,248\r\nPlay your cards right,\r\n\r\n281\r\n00:12:01,250 -->
00:12:02,750\r\nI'll let you drive me\r\n\r\n282\r\n00:12:02,752 --> 00:12:05,836\r\npast
the lot\r\nwhere the buses park at night.\r\n\r\n283\r\n00:12:05,838 --> 00:12:07,638\r\nI
can't leave now, Sheldon.\r\n\r\n284\r\n00:12:07,640 --> 00:12:08,756\r\nI'm
very busy.\r\n\r\n285\r\n00:12:08,758 --> 00:12:10,557\r\nBesides, why would
I want\r\nto do you a favor\r\n\r\n286\r\n00:12:10,559 --> 00:12:12,576\r\nafter
the way you treated\r\nme in the cafeteria?\r\n\r\n287\r\n00:12:12,578 -->
00:12:15,128\r\nImage number four:\r\nboa constrictor.\r\n\r\n288\r\n00:12:18,967
--> 00:12:21,935\r\nWhat on earth\r\nare you talking about?\r\n\r\n289\r\n00:12:21,937
--> 00:12:23,487\r\nMy behavior\r\nin the cafeteria\r\n\r\n290\r\n00:12:23,489
--> 00:12:25,305\r\nwas delightful.\r\n\r\n291\r\n00:12:25,307 --> 00:12:27,491\r\nMaybe
your friend\r\nGunderson needs\r\n\r\n292\r\n00:12:27,493 --> 00:12:29,443\r\nto
head over\r\nto IKEA and assemble\r\n\r\n293\r\n00:12:29,445 --> 00:12:32,379\r\na
sense of humor.\r\n\r\n294\r\n00:12:32,381 --> 00:12:34,364\r\nYou embarrassed
me\r\nin front of my colleagues\r\n\r\n295\r\n00:12:34,366 --> 00:12:35,982\r\non
my first day here.\r\n\r\n296\r\n00:12:36,684 --> 00:12:37,785\r\nImage number
five:\r\n\r\n297\r\n00:12:37,787 --> 00:12:39,186\r\nkitten in a teacup.\r\n\r\n298\r\n00:12:39,188
--> 00:12:41,388\r\nOh.\r\n\r\n299\r\n00:12:44,959 --> 00:12:47,528\r\nOh...
embarrassed you?\r\nYou know what?\r\n\r\n300\r\n00:12:47,530 --> 00:12:50,431\r\nI
don't have time for this.\r\nFind another way home.\r\n\r\n301\r\n00:12:50,433
--> 00:12:53,450\r\nI'm starting to get the sense\r\nthat you're angry with
me.\r\n\r\n302\r\n00:12:53,452 --> 00:12:55,001\r\nReally?\r\nWhat tipped
you off?\r\n\r\n303\r\n00:12:55,003 --> 00:12:56,053\r\nCouple things, actually.\r\n\r\n304\r\n00:12:56,055
--> 00:12:57,170\r\nYour tone of voice,\r\nyour body language...\r\n\r\n305\r\n00:12:57,172
--> 00:12:58,806\r\nGet out.\r\nWell, now, that.\r\n\r\n306\r\n00:13:00,675
--> 00:13:03,310\r\nImage number six:\r\nwoman giving birth.\r\n\r\n307\r\n00:13:12,570
--> 00:13:14,187\r\nIt's 9:00.\r\nWhere you been?\r\n\r\n308\r\n00:13:14,189
--> 00:13:17,307\r\nOh, I had to take\r\nthe bus home.\r\n\r\n309\r\n00:13:17,309
--> 00:13:20,844\r\nFell asleep and missed my stop.\r\n\r\n310\r\n00:13:20,846
--> 00:13:22,646\r\nOh, no.\r\n\r\n311\r\n00:13:22,648 --> 00:13:26,633\r\nDid
you know that Los Angeles\r\nhas a Little Sri Lanka?\r\n\r\n312\r\n00:13:26,635
--> 00:13:28,986\r\nI did not.\r\n\r\n313\r\n00:13:28,988 --> 00:13:31,004\r\nWell,
I do... now.\r\n\r\n314\r\n00:13:31,006 --> 00:13:33,707\r\nThey're a lovely
people.\r\n\r\n315\r\n00:13:33,709 --> 00:13:37,377\r\nAlthough terrifying
when you\r\nwake up face-to-face with them.\r\n\r\n316\r\n00:13:38,379 -->
00:13:39,646\r\nIf you're hungry, I brought home\r\n\r\n317\r\n00:13:39,648
--> 00:13:41,632\r\nsome mutton and coconut milk.\r\n\r\n318\r\n00:13:41,634
--> 00:13:43,617\r\nWhy'd you get that?\r\nYou hate lamb.\r\n\r\n319\r\n00:13:43,619
--> 00:13:45,686\r\nI was asking for directions.\r\n\r\n320\r\n00:13:45,688
--> 00:13:49,206\r\nApparently, there was\r\na communication problem.\r\n\r\n321\r\n00:13:49,208
--> 00:13:52,326\r\nI thought Amy was gonna\r\ndrive you home.\r\n\r\n322\r\n00:13:52,328
--> 00:13:53,610\r\nYeah, I thought so, too,\r\n\r\n323\r\n00:13:53,612 -->
00:13:55,779\r\nbut she's acting very strangely.\r\n\r\n324\r\n00:13:55,781
--> 00:13:58,782\r\nI was discussing it with\r\na Sri Lankan fellow on the
bus,\r\n\r\n325\r\n00:13:58,784 --> 00:14:01,869\r\nand he hypothesized\r\nthat
a tiger may have\r\n\r\n326\r\n00:14:01,871 --> 00:14:04,054\r\nrecently run
across her shadow.\r\n\r\n327\r\n00:14:05,907 --> 00:14:08,342\r\nAlthough
he may have just been\r\ntrying to drum up business\r\n\r\n328\r\n00:14:08,344
--> 00:14:11,345\r\nfor his brother-in-law's\r\nwitch doctor practice.\r\n\r\n329\r\n00:14:14,265
--> 00:14:16,834\r\nOkay, Sheldon, what happened\r\nbetween you and Amy?\r\n\r\n330\r\n00:14:16,836
--> 00:14:20,571\r\nWell, can you believe\r\nshe said I embarrassed her?\r\n\r\n331\r\n00:14:20,573
--> 00:14:22,656\r\nYeah.\r\n\r\n332\r\n00:14:22,658 --> 00:14:25,442\r\nBut
you didn't\r\neven hear the details.\r\n\r\n333\r\n00:14:25,444 --> 00:14:27,477\r\nSheldon...\r\n\r\n334\r\n00:14:29,247
--> 00:14:31,865\r\nI've known you\r\na long time,\r\n\r\n335\r\n00:14:31,867
--> 00:14:33,283\r\nand I'm going\r\nto tell you this\r\n\r\n336\r\n00:14:33,285
--> 00:14:37,154\r\nwith all the love\r\nI can possibly muster.\r\n\r\n337\r\n00:14:37,156
--> 00:14:38,155\r\nAmy's right.\r\n\r\n338\r\n00:14:38,157 --> 00:14:39,606\r\nYou're
wrong.\r\n\r\n339\r\n00:14:40,458 --> 00:14:41,658\r\nBut you don't even know...\r\n\r\n340\r\n00:14:41,660
--> 00:14:43,076\r\nDoesn't matter.\r\n\r\n341\r\n00:14:43,078 --> 00:14:45,696\r\nBut,
now, but in my defense...\r\nDoesn't matter.\r\n\r\n342\r\n00:14:45,698 -->
00:14:47,931\r\nYou're not listening\r\nto my side of it.\r\n\r\n343\r\n00:14:47,933
--> 00:14:50,267\r\nOkay, fine, Sheldon.\r\nWhat is your side?\r\n\r\n344\r\n00:14:50,269
--> 00:14:52,285\r\nWell...\r\n\r\n345\r\n00:14:52,287 --> 00:14:54,788\r\nNope,
got to go with\r\nAmy on this one.\r\n\r\n346\r\n00:15:00,629 --> 00:15:01,678\r\nShrimp
was spicy.\r\n\r\n347\r\n00:15:01,680 --> 00:15:03,113\r\nYou want a TUMS?\r\n\r\n348\r\n00:15:03,115
--> 00:15:04,431\r\nYou got\r\nthe tropical fruit kind?\r\n\r\n349\r\n00:15:04,433
--> 00:15:06,950\r\nNo, if I buy those, I just\r\ngo through them like candy.\r\n\r\n350\r\n00:15:06,952
--> 00:15:08,385\r\nTell me about it.\r\n\r\n351\r\n00:15:08,387 --> 00:15:11,104\r\nOne
time, I swear\r\nI pooped out a stick of chalk.\r\n\r\n352\r\n00:15:13,141
--> 00:15:15,359\r\nI'll get it.\r\nThanks.\r\n\r\n353\r\n00:15:17,278 -->
00:15:18,362\r\nHi.\r\n\r\n354\r\n00:15:18,364 --> 00:15:19,529\r\nOh, hi.\r\n\r\n355\r\n00:15:19,531
--> 00:15:21,698\r\nI may have overreacted.\r\n\r\n356\r\n00:15:21,700 -->
00:15:25,619\r\nYeah, well, I didn't\r\nhandle it so great, either.\r\n\r\n357\r\n00:15:25,621
--> 00:15:28,038\r\nIt's just sometimes I feel\r\nlike you enjoy spending
time\r\n\r\n358\r\n00:15:28,040 --> 00:15:30,090\r\nwith your friends\r\nmore
than with me.\r\n\r\n359\r\n00:15:30,092 --> 00:15:31,909\r\nThat's not true.\r\nIt's
not?\r\n\r\n360\r\n00:15:31,911 --> 00:15:33,594\r\nYou spend all day\r\ntogether
at work,\r\n\r\n361\r\n00:15:33,596 --> 00:15:35,712\r\nand then you all hang
out\r\nat night playing games,\r\n\r\n362\r\n00:15:35,714 --> 00:15:37,230\r\ngoing
to the comic book store.\r\n\r\n363\r\n00:15:37,232 --> 00:15:39,850\r\nLast
week, you two got\r\na couples massage.\r\n\r\n364\r\n00:15:42,487 --> 00:15:45,055\r\nSo,
when you said you wouldn't\r\nwant to spend that much time\r\n\r\n365\r\n00:15:45,057
--> 00:15:48,025\r\nwith me, it really\r\nhurt my feelings.\r\n\r\n366\r\n00:15:48,027
--> 00:15:49,643\r\nOh, wow.\r\n\r\n367\r\n00:15:49,645 --> 00:15:50,978\r\nYeah,
no, I get that.\r\n\r\n368\r\n00:15:50,980 --> 00:15:52,112\r\nI'm so sorry.\r\n\r\n369\r\n00:15:52,114
--> 00:15:54,865\r\nStarting tomorrow, I am\r\nturning over a new leaf.\r\n\r\n370\r\n00:15:54,867
--> 00:15:57,985\r\nTime with you is my\r\nnumber one priority.\r\n\r\n371\r\n00:15:59,989
--> 00:16:01,688\r\nWhy tomorrow?\r\n\r\n372\r\n00:16:03,190 --> 00:16:05,509\r\nWell,
we're real close\r\nto finishing off\r\n\r\n373\r\n00:16:05,511 --> 00:16:07,377\r\nthe
new Batman game.\r\n\r\n374\r\n00:16:08,513 --> 00:16:11,665\r\nIt is awesome.\r\n\r\n375\r\n00:16:13,968
--> 00:16:16,003\r\nUh, you should probably\r\ngo after her.\r\n\r\n376\r\n00:16:16,005
--> 00:16:17,754\r\nShould I go after you?\r\n\r\n377\r\n00:16:17,756 -->
00:16:19,923\r\nNo!\r\n\r\n378\r\n00:16:21,592 --> 00:16:24,094\r\nThanks
for getting me\r\nin trouble.\r\n\r\n379\r\n00:16:26,898 --> 00:16:28,265\r\nAmy.\r\n\r\n380\r\n00:16:29,067
--> 00:16:30,283\r\nAmy.\r\n\r\n381\r\n00:16:31,069 --> 00:16:33,103\r\nAmy.\r\n\r\n382\r\n00:16:34,722
--> 00:16:37,324\r\nSheldon, what are you\r\ndoing here so late?\r\n\r\n383\r\n00:16:37,326
--> 00:16:39,192\r\nI couldn't sleep\r\nbecause I kept thinking\r\n\r\n384\r\n00:16:39,194
--> 00:16:41,445\r\nabout what happened\r\nearlier between us.\r\n\r\n385\r\n00:16:42,246
--> 00:16:45,615\r\nAlso, I had one heck\r\nof a bus nap.\r\n\r\n386\r\n00:16:46,751
--> 00:16:47,901\r\nOh, speaking of which,\r\n\r\n387\r\n00:16:47,903 -->
00:16:50,787\r\ndo you want some mutton\r\nand coconut milk?\r\n\r\n388\r\n00:16:50,789
--> 00:16:51,855\r\nNo.\r\n\r\n389\r\n00:16:51,857 --> 00:16:54,624\r\nWell,
I cannot give\r\nthis stuff away.\r\n\r\n390\r\n00:16:54,626 --> 00:16:57,077\r\nWhat
do you want?\r\n\r\n391\r\n00:16:57,079 --> 00:17:00,647\r\nAmy, this isn't
easy to say.\r\n\r\n392\r\n00:17:01,766 --> 00:17:04,751\r\nAll relationships
are difficult,\r\n\r\n393\r\n00:17:04,753 --> 00:17:07,688\r\nbut even more
so\r\nwhen you're in one\r\n\r\n394\r\n00:17:07,690 --> 00:17:09,523\r\nwith
a person who struggles\r\n\r\n395\r\n00:17:09,525 --> 00:17:11,858\r\nwith
everyday\r\nsocial interactions.\r\n\r\n396\r\n00:17:11,860 --> 00:17:13,527\r\nAnd
frankly...\r\n\r\n397\r\n00:17:13,529 --> 00:17:15,145\r\nwho can strike some
people\r\n\r\n398\r\n00:17:15,147 --> 00:17:17,664\r\nas being kind of a weirdo.\r\n\r\n399\r\n00:17:17,666
--> 00:17:19,649\r\nSheldon...\r\n\r\n400\r\n00:17:19,651 --> 00:17:21,651\r\nyou're
not a weirdo.\r\n\r\n401\r\n00:17:21,653 --> 00:17:24,271\r\nI wasn't speaking
about me.\r\n\r\n402\r\n00:17:26,307 --> 00:17:28,441\r\nI mean, honestly,\r\nthere's
no telling\r\n\r\n403\r\n00:17:28,443 --> 00:17:30,077\r\nwhat will set you
off.\r\n\r\n404\r\n00:17:30,079 --> 00:17:32,295\r\nYou know, introducing\r\nmyself
as your boyfriend.\r\n\r\n405\r\n00:17:32,297 --> 00:17:35,549\r\nGiving you
the opportunity\r\nto drive me home.\r\n\r\n406\r\n00:17:35,551 --> 00:17:37,617\r\nBreaking
the ice\r\nwith your colleagues\r\n\r\n407\r\n00:17:37,619 --> 00:17:40,787\r\nusing
ethnic humor,\r\nthe funniest kind of humor.\r\n\r\n408\r\n00:17:42,557 -->
00:17:44,224\r\nWhat's your point?\r\n\r\n409\r\n00:17:44,226 --> 00:17:46,626\r\nMy
point is, we're a couple.\r\n\r\n410\r\n00:17:46,628 --> 00:17:48,361\r\nAnd...\r\n\r\n411\r\n00:17:48,363
--> 00:17:50,480\r\nI like you for who you are.\r\n\r\n412\r\n00:17:50,482
--> 00:17:52,365\r\nQuirks and all.\r\n\r\n413\r\n00:17:54,102 --> 00:17:55,652\r\nI
like you, too.\r\n\r\n414\r\n00:17:55,654 --> 00:17:58,188\r\nWell, I should
hope so.\r\n\r\n415\r\n00:17:58,190 --> 00:18:00,323\r\nI don't see anyone
else\r\nbanging on this door\r\n\r\n416\r\n00:18:00,325 --> 00:18:02,826\r\nto
put up with your nonsense.\r\n\r\n417\r\n00:18:06,981 --> 00:18:09,583\r\nNot
even a good-bye?\r\n\r\n418\r\n00:18:09,585 --> 00:18:11,084\r\nYou see,\r\nthat's
the kind of thing\r\n\r\n419\r\n00:18:11,086 --> 00:18:13,620\r\nthat makes
people\r\nthink you're weird.\r\n\r\n420\r\n00:18:13,622 --> 00:18:15,422\r\nPoor
kid.\r\n\r\n421\r\n00:18:15,424 --> 00:18:17,507\r\nShe just doesn't see it.\r\n\r\n422\r\n00:18:27,608
--> 00:18:28,691\r\nI'm not apologizing\r\nto Howard.\r\n\r\n423\r\n00:18:28,693
--> 00:18:30,342\r\nHe can come beg me\r\non his knees.\r\n\r\n424\r\n00:18:30,344
--> 00:18:31,694\r\nSheldon, too.\r\n\r\n425\r\n00:18:31,696 --> 00:18:34,196\r\nIf
I see him at work,\r\nI'm just going to ignore him.\r\n\r\n426\r\n00:18:34,198
--> 00:18:36,032\r\nAll right, don't worry.\r\nI talked to Leonard.\r\n\r\n427\r\n00:18:36,034
--> 00:18:38,801\r\nHe is gonna sit the guys down\r\nand set them straight.\r\n\r\n428\r\n00:18:38,803
--> 00:18:40,820\r\nLaser's warmed up.\r\n\r\n429\r\n00:18:40,896 --> 00:18:41,928\r\nPull!\r\n\r\n430\r\n00:18:44,274
--> 00:18:49,274\r\n== sync, corrected by <font color=#00FF00>elderman</font>
==\r\n<font color=#00FFFF>@elder_man</font>\r\n\r\n"}
headers:
Accept-Ranges: [bytes]
Connection: [keep-alive]
Content-Disposition: [attachment; filename=f18de9888230bcd71be8bc7be3add167.srt]
Content-Length: ['30847']
Content-Type: [text/plain]
Date: ['Sat, 04 Jul 2015 17:12:34 GMT']
ETag: ['"5261a4b8-787f"']
Last-Modified: ['Fri, 18 Oct 2013 21:14:32 GMT']
Server: [nginx/1.6.0]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,16 @@
interactions:
- request:
body: null
headers:
User-Agent: ['SubDB/1.0 (subliminal/0.8.0; https://github.com/Diaoul/subliminal)']
method: GET
uri: http://api.thesubdb.com/?action=search&hash=9dbbfb7ba81c9a6237237dae8589fccc
response:
body: {string: 'en,es,fr,pt'}
headers:
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:12:34 GMT']
Server: [nginx/1.6.0]
status: {code: 200, message: OK}
version: 1
+16
View File
@@ -0,0 +1,16 @@
interactions:
- request:
body: null
headers:
User-Agent: ['SubDB/1.0 (subliminal/0.8.0; https://github.com/Diaoul/subliminal)']
method: GET
uri: http://api.thesubdb.com/?action=search&hash=ad32876133355929d814457537e12dc2
response:
body: {string: 'en,pt'}
headers:
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 17:12:33 GMT']
Server: [nginx/1.6.0]
status: {code: 200, message: OK}
version: 1
@@ -0,0 +1,16 @@
interactions:
- request:
body: null
headers:
User-Agent: ['SubDB/1.0 (subliminal/0.8.0; https://github.com/Diaoul/subliminal)']
method: GET
uri: http://api.thesubdb.com/?action=search&hash=11223344556677899877665544332211
response:
body: {string: ''}
headers:
Connection: [keep-alive]
Content-Type: [text/html]
Date: ['Sat, 04 Jul 2015 20:26:34 GMT']
Server: [nginx/1.6.0]
status: {code: 404, message: Not Found}
version: 1
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,308 @@
interactions:
- request:
body: null
headers:
User-Agent: [Subliminal/0.8.0]
method: GET
uri: http://www.tvsubtitles.net/tvshow-154-55.html
response:
body:
string: !!binary |
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgoJPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFu
Zz0iZW4iPgoJPGhlYWQ+CgoJPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRl
dmljZS13aWR0aDsgaW5pdGlhbC1zY2FsZT0xLjAiPgogICA8bWV0YSBodHRwLWVxdWl2PSJjb250
ZW50LXR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4KICAgPGxpbmsg
aHJlZj0iZmF2aWNvbi5pY28iIHJlbD0ic2hvcnRjdXQgaWNvbiI+CiAgIDxsaW5rIHJlbD0ic3R5
bGVzaGVldCIgaHJlZj0ic3R5bGUuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgLz4KICAgPHRpdGxlPlRW
c3VidGl0bGVzLm5ldCAtIFN1YnRpdGxlcyAiVGhlIEJpZyBCYW5nIFRoZW9yeSIgc2Vhc29uIDU1
PC90aXRsZT4KICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgp2YXIgZ29vZ2xldGFn
ID0gZ29vZ2xldGFnIHx8IHt9Owpnb29nbGV0YWcuY21kID0gZ29vZ2xldGFnLmNtZCB8fCBbXTsK
KGZ1bmN0aW9uKCkgewp2YXIgZ2FkcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcp
OwpnYWRzLmFzeW5jID0gdHJ1ZTsKZ2Fkcy50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CnZhciB1
c2VTU0wgPSAnaHR0cHM6JyA9PSBkb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbDsKZ2Fkcy5zcmMg
PSAodXNlU1NMID8gJ2h0dHBzOicgOiAnaHR0cDonKSArCicvL3d3dy5nb29nbGV0YWdzZXJ2aWNl
cy5jb20vdGFnL2pzL2dwdC5qcyc7CnZhciBub2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRh
Z05hbWUoJ3NjcmlwdCcpWzBdOwpub2RlLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGdhZHMsIG5v
ZGUpOwp9KSgpOwo8L3NjcmlwdD4KCjxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4KZ29v
Z2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgewpnb29nbGV0YWcuZGVmaW5lU2xvdCgnLzE4NDgx
NzI3L3R2c3VidGl0bGVzLm5ldCcsIFs0NjgsIDYwXSwgJ2Rpdi1ncHQtYWQtMTM3MDEwOTE5Nzc3
Ny0wJykuYWRkU2VydmljZShnb29nbGV0YWcucHViYWRzKCkpOwpnb29nbGV0YWcucHViYWRzKCku
ZW5hYmxlU2luZ2xlUmVxdWVzdCgpOwpnb29nbGV0YWcuZW5hYmxlU2VydmljZXMoKTsKfSk7Cjwv
c2NyaXB0Pgo8bGluayBocmVmPSJtZWRpYS1xdWVyaWVzLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0
eXBlPSJ0ZXh0L2NzcyI+CjwhLS0gaHRtbDUuanMgZm9yIElFIGxlc3MgdGhhbiA5IC0tPgo8IS0t
W2lmIGx0IElFIDldPgoJPHNjcmlwdCBzcmM9Imh0dHA6Ly9odG1sNXNoaW0uZ29vZ2xlY29kZS5j
b20vc3ZuL3RydW5rL2h0bWw1LmpzIj48L3NjcmlwdD4KPCFbZW5kaWZdLS0+Cgo8IS0tIGNzczMt
bWVkaWFxdWVyaWVzLmpzIGZvciBJRSBsZXNzIHRoYW4gOSAtLT4KPCEtLVtpZiBsdCBJRSA5XT4K
CTxzY3JpcHQgc3JjPSJodHRwOi8vY3NzMy1tZWRpYXF1ZXJpZXMtanMuZ29vZ2xlY29kZS5jb20v
c3ZuL3RydW5rL2NzczMtbWVkaWFxdWVyaWVzLmpzIj48L3NjcmlwdD4KPCFbZW5kaWZdLS0+CgoJ
PC9oZWFkPgoKCgk8Ym9keT4KCQ08ZGl2IHN0eWxlPSJwb3NpdGlvbjpmaXhlZDsNICAgIGxlZnQ6
IDUwJTsNICAgIHRvcDogNTAlOw0gICAgbWFyZ2luLXRvcDogLTMwMHB4OyAvKiA1MCUg4vvx7vL7
ICovDSAgICBtYXJnaW4tbGVmdDogLTY5MHB4OyAgLyogNTAlIPjo8Ojt+yAqLyI+DQ08c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DWlmICghd2luZG93Lk9YX2FkcykgeyBPWF9hZHMgPSBb
XTsgfQ1PWF9hZHMucHVzaCh7ICJhdWlkIiA6ICI0MTc5MTgiIH0pOw08L3NjcmlwdD4NPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg1kb2N1bWVudC53cml0ZSgnPHNjcicrJ2lwdCBzcmM9
Imh0dHA6Ly9heC1kLnBpeGZ1dHVyZS5uZXQvdy8xLjAvanN0YWciPjxcL3NjcicrJ2lwdD4nKTsN
PC9zY3JpcHQ+DTxub3NjcmlwdD48aWZyYW1lIGlkPSI1MTkyNWY0MjA5YTc2IiBuYW1lPSI1MTky
NWY0MjA5YTc2IiBzcmM9Imh0dHA6Ly9heC1kLnBpeGZ1dHVyZS5uZXQvdy8xLjAvYWZyP2F1aWQ9
NDE3OTE4JmNiPUlOU0VSVF9SQU5ET01fTlVNQkVSX0hFUkUiIGZyYW1lYm9yZGVyPSIwIiBzY3Jv
bGxpbmc9Im5vIiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjYwMCI+PGEgaHJlZj0iaHR0cDovL2F4LWQu
cGl4ZnV0dXJlLm5ldC93LzEuMC9yYz9jcz01MTkyNWY0MjA5YTc2JmNiPUlOU0VSVF9SQU5ET01f
TlVNQkVSX0hFUkUiID48aW1nIHNyYz0iaHR0cDovL2F4LWQucGl4ZnV0dXJlLm5ldC93LzEuMC9h
aT9hdWlkPTQxNzkxOCZjcz01MTkyNWY0MjA5YTc2JmNiPUlOU0VSVF9SQU5ET01fTlVNQkVSX0hF
UkUiIGJvcmRlcj0iMCIgYWx0PSIiPjwvYT48L2lmcmFtZT48L25vc2NyaXB0Pg08L2Rpdj4NCgk8
ZGl2IGlkPSJjb250ZW50Ij4KICAgICAgPGRpdiBpZD0iaGVhZGVyIj4KICAgICAgICAgPHAgaWQ9
InRvcF9pbmZvIj48bm9pbmRleD48YSBocmVmPSJodHRwOi8vd3d3LnR2c3VidGl0bGVzLm5ldC90
dnNob3ctMTU0LTU1Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZy1lbmdsaXNoLnBuZyIgd2lk
dGg9IjMwIiBoZWlnaHQ9IjE2IiBhbHQ9ImVuZ2xpc2giIGJvcmRlcj0wIGhzcGFjZT0yPjwvYT4K
ICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2VzLnR2c3VidGl0bGVzLm5ldC90dnNob3ctMTU0LTU1
Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZy1zcGFuaXNoLnBuZyIgd2lkdGg9IjMwIiBoZWln
aHQ9IjE2IiBhbHQ9InNwYW5pc2giIGJvcmRlcj0wIGhzcGFjZT0yPjwvYT4KICAgICAgICAgPGEg
aHJlZj0iaHR0cDovL2ZyLnR2c3VidGl0bGVzLm5ldC90dnNob3ctMTU0LTU1Lmh0bWwiPjxpbWcg
c3JjPSJpbWFnZXMvZmxhZy1mcmVuY2gucG5nIiB3aWR0aD0iMzAiIGhlaWdodD0iMTYiIGFsdD0i
ZnJlbmNoIiBib3JkZXI9MCBoc3BhY2U9Mj48L2E+CiAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly93
d3cudHZzdWJ0aXRsZXMucnUvdHZzaG93LTE1NC01NS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2Zs
YWctcnVzc2lhbi5wbmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIxNiIgYWx0PSJydXNzaWFuIiBib3Jk
ZXI9MCBoc3BhY2U9Mj48L2E+PGJyIC8+CiAgICAgICAgIDxhPjxpbWcgc3JjPSJpbWFnZXMvZmxh
Zy1ub25lLnBuZyIgd2lkdGg9IjMwIiBoZWlnaHQ9IjE2IiBhbHQ9InVrcmFpbmlhbiIgYm9yZGVy
PTAgaHNwYWNlPTI+PC9hPgogICAgICAgICA8YSBocmVmPSJodHRwOi8vdWEudHZzdWJ0aXRsZXMu
bmV0L3R2c2hvdy0xNTQtNTUuaHRtbCI+PGltZyBzcmM9ImltYWdlcy9mbGFnLXVrcmFpbmlhbi5w
bmciIHdpZHRoPSIzMCIgaGVpZ2h0PSIxNiIgYWx0PSJ1a3JhaW5pYW4iIGJvcmRlcj0wIGhzcGFj
ZT0yPjwvYT4KICAgICAgICAgPGEgaHJlZj0iaHR0cDovL2h1LnR2c3VidGl0bGVzLm5ldC90dnNo
b3ctMTU0LTU1Lmh0bWwiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZy1odW5nYXJpYW4ucG5nIiB3aWR0
aD0iMzAiIGhlaWdodD0iMTYiIGFsdD0iaHVuZ2FyaWFuIiBib3JkZXI9MCBoc3BhY2U9Mj48L2E+
CiAgICAgICAgIDxhIGhyZWY9Imh0dHA6Ly9nci50dnN1YnRpdGxlcy5uZXQvdHZzaG93LTE1NC01
NS5odG1sIj48aW1nIHNyYz0iaW1hZ2VzL2ZsYWctZ3JlZWsucG5nIiB3aWR0aD0iMzAiIGhlaWdo
dD0iMTYiIGFsdD0iZ3JlZWsiIGJvcmRlcj0wIGhzcGFjZT0yPjwvYT48YnIgLz4KICAgICAgICAg
PGEgaHJlZj0iaHR0cDovL3d3dy5tb3ZpZXN1YnRpdGxlcy5vcmciIGNsYXNzPSJvdGhlcnNpdGUi
Pk1vdmllIHN1YnRpdGxlczwvYT48L25vaW5kZXg+PC9wPjxkaXYgaWQ9ImxvZ28iPgogICAgICAg
ICAgICA8aDE+PGEgaHJlZj0iLyIgdGl0bGU9IkRvd25sb2FkIGxhdGVzdCBUViBTaG93IGFuZCBU
ViBTZXJpZXMgc3VidGl0bGVzIj5UVnN1YnRpdGxlczxzcGFuIGNsYXNzPSJ0aXRsZSI+Lm5ldDwv
c3Bhbj48L2E+PC9oMT4KICAgICAgICAgICAgPHA+RG93bmxvYWQgbGF0ZXN0IFRWIFNob3cgYW5k
IFRWIFNlcmllcyBzdWJ0aXRsZXM8L3A+CiAgICAgICAgIDwvZGl2PjxkaXYgc3R5bGU9ImZsb2F0
OmxlZnQiPjwvZGl2PjwvZGl2PjxkaXYgaWQ9InRhYnMiPgogICAgICAgICA8dWw+CiAgICAgICAg
ICAgIDxsaT48YSAgaHJlZj0iLyIgYWNjZXNza2V5PSJtIj5Ib21lPC9saT48bGk+PGEgY2xhc3M9
ImN1cnJlbnQiIGhyZWY9Ii90dnNob3dzLmh0bWwiIGFjY2Vzc2tleT0idiI+VFYgU2hvd3M8L2E+
PC9saT48bGk+PGEgIGhyZWY9Ii9uZXcuaHRtbCIgYWNjZXNza2V5PSJyIj5OZXc8L2xpPjxsaT48
YSAgaHJlZj0iL3RvcC5odG1sIiBhY2Nlc3NrZXk9ImkiPlRvcDwvbGk+PGxpPjxhICBocmVmPSIv
YWRkLmh0bWwiIGFjY2Vzc2tleT0iZCI+QWRkPC9saT48bGk+PGEgIGhyZWY9Ii9mZWVkYmFjay5o
dG1sIiBhY2Nlc3NrZXk9ImEiPkZlZWRiYWNrPC9hPjwvbGk+PGxpPjxhICBocmVmPSIvZmVlZGJh
Y2suaHRtbCIgYWNjZXNza2V5PSJhIj5BY2NvdW50PC9hPjwvbGk+CiAgICAgICAgIDwvdWw+Cgk8
c3BhbiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyBsZWZ0OiAtNzkwcHg7dG9wOjY3cHg7Ij5T
aG93IHN1YnRpdGxlcyA8c2VsZWN0IHNpemU9IjEiIG5hbWU9InNldGxhbmciIHN0eWxlPSJmb250
OiAwLjk1ZW0gVGFob21hLCBBcmlhbCwgc2Fucy1zZXJpZjsiIG9uY2hhbmdlPSJqYXZhc2NyaXB0
OiB3aW5kb3cubG9jYXRpb24gPSAnc2V0bGFuZy5waHA/cGFnZT0vdHZzaG93LTE1NC01NS5odG1s
JnNldGxhbmcxPScgKyB0aGlzLnZhbHVlOyI+Cgk8b3B0aW9uIHZhbHVlPSJhbGwiPmFsbDwvb3B0
aW9uPjxvcHRpb24gdmFsdWU9ImVuIiA+ZW5nbGlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImVz
IiA+c3BhbmlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZyIiA+ZnJlbmNoPC9vcHRpb24+PG9w
dGlvbiB2YWx1ZT0iZGUiID5nZXJtYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJiciIgPnBvcnR1
Z3Vlc2UoYnIpPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0icnUiID5ydXNzaWFuPC9vcHRpb24+PG9w
dGlvbiB2YWx1ZT0idWEiID51a3JhaW5pYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJpdCIgPml0
YWxpYW48L29wdGlvbj48b3B0aW9uIHZhbHVlPSJnciIgPmdyZWVrPC9vcHRpb24+PG9wdGlvbiB2
YWx1ZT0iYXIiID5hcmFiaWM8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJodSIgPmh1bmdhcmlhbjwv
b3B0aW9uPjxvcHRpb24gdmFsdWU9InBsIiA+cG9saXNoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0i
dHIiID50dXJraXNoPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibmwiID5kdXRjaCA8L29wdGlvbj48
b3B0aW9uIHZhbHVlPSJwdCIgPnBvcnR1Z3Vlc2U8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJzdiIg
PnN3ZWRpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJkYSIgPmRhbmlzaDwvb3B0aW9uPjxvcHRp
b24gdmFsdWU9ImZpIiA+ZmlubmlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImtvIiA+a29yZWFu
PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY24iID5jaGluZXNlPC9vcHRpb24+PG9wdGlvbiB2YWx1
ZT0ianAiID5qYXBhbmVzZTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImJnIiA+YnVsZ2FyaWFuPC9v
cHRpb24+PG9wdGlvbiB2YWx1ZT0iY3oiID5jemVjaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9InJv
IiA+cm9tYW5pYW48L29wdGlvbj48L3NlbGVjdD48aW1nIHNyYz0iaW1hZ2VzL3NwYWNlci5naWYi
IHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgYWx0PSIiIGJvcmRlcj0iMCIgc3R5bGU9Im1hcmdpbjoy
cHggNXB4OyIgYWxpZ249InRvcCI+Cjwvc3Bhbj4KICAgICAgICAgPGRpdiBpZD0ic2VhcmNoIj4K
ICAgICAgICAgICAgPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249InNlYXJjaC5waHAiPgogICAg
ICAgICAgICAgICA8cD48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icSIgY2xhc3M9InNlYXJjaCIg
dmFsdWU9IiIgLz4gPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlNlYXJjaCIgY2xhc3M9ImJ1
dHRvbiIgLz48L3A+CiAgICAgICAgICAgIDwvZm9ybT4KICAgICAgICAgPC9kaXY+CiAgICAgIDwv
ZGl2PjxkaXYgc3R5bGU9ImNsZWFyOmJvdGgiPiZuYnNwOzwvZGl2PgogICAgICA8ZGl2IGNsYXNz
PSJsZWZ0Ij4KPGRpdiBjbGFzcz0ibGVmdF9hcnRpY2xlcyI+CjxkaXYgc3R5bGU9ImZsb2F0OnJp
Z2h0OyBtYXJnaW46IDEwcHggMDsiPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9
Imh0dHBzOi8vYXBpcy5nb29nbGUuY29tL2pzL3BsdXNvbmUuanMiPjwvc2NyaXB0Pgo8ZzpwbHVz
b25lPjwvZzpwbHVzb25lPjwvZGl2PgoKICAgICAgPGltZyBzcmM9ImltYWdlcy90dnNob3dzLzE1
NC5qcGciIGNsYXNzPSJ0aHVtYm5haWwxIiB3aWR0aD0iODAiIGFsdD0iIi8+CiAgICAgICAgICAg
IDxoMj5UaGUgQmlnIEJhbmcgVGhlb3J5PC9oMj4KICAgICAgICAgICAgPHAgY2xhc3M9ImRlc2Ny
aXB0aW9uIj48YSBocmVmPSJ0dnNob3ctMTU0LTguaHRtbCI+PGI+U2Vhc29uIDg8L2I+PC9hPiB8
IDxhIGhyZWY9InR2c2hvdy0xNTQtNy5odG1sIj48Yj5TZWFzb24gNzwvYj48L2E+IHwgPGEgaHJl
Zj0idHZzaG93LTE1NC02Lmh0bWwiPjxiPlNlYXNvbiA2PC9iPjwvYT4gfCA8YSBocmVmPSJ0dnNo
b3ctMTU0LTUuaHRtbCI+PGI+U2Vhc29uIDU8L2I+PC9hPiB8IDxhIGhyZWY9InR2c2hvdy0xNTQt
NC5odG1sIj48Yj5TZWFzb24gNDwvYj48L2E+IHwgPGEgaHJlZj0idHZzaG93LTE1NC0zLmh0bWwi
PjxiPlNlYXNvbiAzPC9iPjwvYT4gfCA8YSBocmVmPSJ0dnNob3ctMTU0LTIuaHRtbCI+PGI+U2Vh
c29uIDI8L2I+PC9hPiB8IDxhIGhyZWY9InR2c2hvdy0xNTQtMS5odG1sIj48Yj5TZWFzb24gMTwv
Yj48L2E+ICAgICAgPC9wPjxpZnJhbWUgaWQ9JzUyMjQ0YWE3MjkwZTgnIG5hbWU9JzUyMjQ0YWE3
MjkwZTgnCnNyYz0naHR0cDovL2FkLnByb3BlbGxlcmFkcy5jb20vYWZyLnBocD96b25laWQ9NzI1
NicgZnJhbWVib3JkZXI9JzAnCnNjcm9sbGluZz0nbm8nIHdpZHRoPSc0NjgnIGhlaWdodD0nNjAn
PjxhCmhyZWY9J2h0dHA6Ly9hZC5wcm9wZWxsZXJhZHMuY29tL2NrLnBocD9uPTUyMjQ0YWE3Mjkw
ZTgnCnRhcmdldD0nX2JsYW5rJz48aW1nCnNyYz0naHR0cDovL2FkLnByb3BlbGxlcmFkcy5jb20v
YXZ3LnBocD96b25laWQ9Jm49NTIyNDRhYTcyOTBlOCcKYm9yZGVyPScwJyBhbHQ9JycgLz48L2E+
PC9pZnJhbWU+PGJyIGNsZWFyPWFsbD48dGFibGUgc3R5bGU9InRleHQtYWxpZ246IGxlZnQ7IiBi
b3JkZXI9IjAgcHgiIGNlbGxzcGFjaW5nPSIwIiAgY2VsbHBhZGRpbmc9IjMiIHdpZHRoPTcwMD4K
ICAgPHRyPgogICA8dGQgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHJnYigyNTUsIDI0NCwgMjMw
KTsgIiAgY2xhc3M9InRkMSIgd2lkdGg9MTAwJT4KICAgPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBj
ZWxscGFkZGluZz0iMCIgYmdjb2xvcj0iIzc5QjA0OCIgYm9yZGVyPSIwIiBpZD0idGFibGU0IiBh
bGlnbj0iY2VudGVyIiB3aWR0aD0xMDAlPgogICA8dHI+CiAgICAgIDx0ZD4KICAgICAgICAgPHRh
YmxlIGNlbGxzcGFjaW5nPSIxIiBjZWxscGFkZGluZz0iMiIgd2lkdGg9IjEwMCUiIGJvcmRlcj0i
MCIgaWQ9InRhYmxlNSI+Cjx0ciBhbGlnbj0ibWlkZGxlIj48dGggYmdjb2xvcj0iIzExMTExMSIg
d2lkdGg9IjglIj48Yj4jPC9iPjwvdGg+IAo8dGggYmdjb2xvcj0iIzExMTExMSIgd2lkdGg9IjQw
JSI+PGI+RXBpc29kZTwvYj48L3RoPiAKPHRoIGJnY29sb3I9IiMxMTExMTEiIHdpZHRoPSI3JSI+
PGI+QW1vdW50PC9iPjwvdGg+IAo8dGggYmdjb2xvcj0iIzExMTExMSIgd2lkdGg9IjQ1JSI+PGI+
U3VidGl0bGVzPC9iPjwvdGg+IAo8L3RyPgo8dHIgYWxpZ249Im1pZGRsZSIgYmdjb2xvcj0iI2Zm
ZmZmZiI+CjwvdHI+Cjx0ciBhbGlnbj0ibWlkZGxlIiBiZ2NvbG9yPSIjZmZmZmZmIj4KPHRkPjwv
dGQ+Cjx0ZCBhbGlnbj1sZWZ0IHN0eWxlPSJwYWRkaW5nOiAwIDRweDsiPjxhIGhyZWY9ImVwaXNv
ZGUtMTU0LTU1Lmh0bWwiPjxiPkFsbCBlcGlzb2RlczwvYj48L2E+PC90ZD4KPHRkPjA8L3RkPgo8
dGQ+PG5vYnI+PC9ub2JyPjwvdGQ+CjwvdHI+CjwvdGFibGU+CiAgICAgIDwvdGQ+CiAgIDwvdHI+
CiAgIDwvdGFibGU+CiAgIDwvdGQ+CiAgIDwvdHI+CiAgIDwvdGFibGU+CjwvZGl2Pgo8ZGl2IHN0
eWxlPSJtYXJnaW46MDsgcGFkZGluZzogMTVweCAwOyBjbGVhcjpib3RoOyB3aWR0aDo3MjBweDto
ZWlnaHQ6OTBweDsiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmlmICghd2luZG93
Lk9YX2FkcykgeyBPWF9hZHMgPSBbXTsgfQpPWF9hZHMucHVzaCh7ICJhdWlkIiA6ICI0MTc5MjAi
IH0pOwo8L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpkb2N1bWVudC53
cml0ZSgnPHNjcicrJ2lwdCBzcmM9Imh0dHA6Ly9heC1kLnBpeGZ1dHVyZS5uZXQvdy8xLjAvanN0
YWciPjxcL3NjcicrJ2lwdD4nKTsKPC9zY3JpcHQ+Cjxub3NjcmlwdD48aWZyYW1lIGlkPSI1MjQy
ODdhNjE2NjYyIiBuYW1lPSI1MjQyODdhNjE2NjYyIiBzcmM9Imh0dHA6Ly9heC1kLnBpeGZ1dHVy
ZS5uZXQvdy8xLjAvYWZyP2F1aWQ9NDE3OTIwJmNiPUlOU0VSVF9SQU5ET01fTlVNQkVSX0hFUkUi
IGZyYW1lYm9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIiB3aWR0aD0iNzI4IiBoZWlnaHQ9IjkwIj48
YSBocmVmPSJodHRwOi8vYXgtZC5waXhmdXR1cmUubmV0L3cvMS4wL3JjP2NzPTUyNDI4N2E2MTY2
NjImY2I9SU5TRVJUX1JBTkRPTV9OVU1CRVJfSEVSRSIgPjxpbWcgc3JjPSJodHRwOi8vYXgtZC5w
aXhmdXR1cmUubmV0L3cvMS4wL2FpP2F1aWQ9NDE3OTIwJmNzPTUyNDI4N2E2MTY2NjImY2I9SU5T
RVJUX1JBTkRPTV9OVU1CRVJfSEVSRSIgYm9yZGVyPSIwIiBhbHQ9IiI+PC9hPjwvaWZyYW1lPjwv
bm9zY3JpcHQ+CjwvZGl2PjwvZGl2Pgo8ZGl2IGlkPSJyaWdodCI+PGRpdiBzdHlsZT0id2lkdGg6
MzAwcHgiPgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CmlmICghd2luZG93Lk9YX2Fk
cykgeyBPWF9hZHMgPSBbXTsgfQpPWF9hZHMucHVzaCh7ICJhdWlkIiA6ICI0MTc5MTkiIH0pOwo8
L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpkb2N1bWVudC53cml0ZSgn
PHNjcicrJ2lwdCBzcmM9Imh0dHA6Ly9heC1kLnBpeGZ1dHVyZS5uZXQvdy8xLjAvanN0YWciPjxc
L3NjcicrJ2lwdD4nKTsKPC9zY3JpcHQ+Cjxub3NjcmlwdD48aWZyYW1lIGlkPSI1MTkyNWY0MjBh
NjAwIiBuYW1lPSI1MTkyNWY0MjBhNjAwIiBzcmM9Imh0dHA6Ly9heC1kLnBpeGZ1dHVyZS5uZXQv
dy8xLjAvYWZyP2F1aWQ9NDE3OTE5JmNiPUlOU0VSVF9SQU5ET01fTlVNQkVSX0hFUkUiIGZyYW1l
Ym9yZGVyPSIwIiBzY3JvbGxpbmc9Im5vIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjI1MCI+PGEgaHJl
Zj0iaHR0cDovL2F4LWQucGl4ZnV0dXJlLm5ldC93LzEuMC9yYz9jcz01MTkyNWY0MjBhNjAwJmNi
PUlOU0VSVF9SQU5ET01fTlVNQkVSX0hFUkUiID48aW1nIHNyYz0iaHR0cDovL2F4LWQucGl4ZnV0
dXJlLm5ldC93LzEuMC9haT9hdWlkPTQxNzkxOSZjcz01MTkyNWY0MjBhNjAwJmNiPUlOU0VSVF9S
QU5ET01fTlVNQkVSX0hFUkUiIGJvcmRlcj0iMCIgYWx0PSIiPjwvYT48L2lmcmFtZT48L25vc2Ny
aXB0Pgo8L2Rpdj48ZGl2IGNsYXNzPSJib3h0b3AiPjwvZGl2PgogICAgICAgICAJPGRpdiBjbGFz
cz0iYm94Ij4KICAgICAgICAgICAgPHA+PGltZyBzcmM9ImltYWdlcy9zdGF0aXN0aWNzLnBuZyIg
YWx0PSJTaXRlIHN0YXRpc3RpY3MiIHRpdGxlPSJTaXRlIHN0YXRpc3RpY3MiIGNsYXNzPSJpbWFn
ZSIgLz4KICAgICAgICAgICAgPGI+U2l0ZSBzdGF0aXN0aWNzPC9iPjxiciAvPjx0YWJsZSBjZWxs
c3BhY2luZz0wIGNlbGxwYWRkaW5nPTA+PHRyPjx0ZCBhbGlnbj1yaWdodD5Ub3RhbCBzdWJ0aXRs
ZXM6PC90ZD48dGQ+IDI3NDc2ODwvdGQ+PC90cj48dHI+PHRkIGFsaWduPXJpZ2h0PlRWIFNob3dz
OjwvdGQ+PHRkPiAxNjY5PC90ZD48L3RyPjx0cj48dGQgYWxpZ249cmlnaHQ+VFYgRXBpc29kZXM6
PC90ZD48dGQ+IDU2MjY2PC90ZD48L3RyPjx0cj48dGQgYWxpZ249cmlnaHQ+RG93bmxvYWRzOjwv
dGQ+PHRkPiAzNDIgMzE1IDAyMjwvdGQ+PC90cj48L3RhYmxlPjxwIHN0eWxlPSJtYXJnaW4tdG9w
OjAuNWVtIj48Yj5BbW91bnQgc3VidGl0bGVzIGluIGxhbmd1YWdlczo8L2I+PC9wPgo8dGFibGUg
Y2VsbHNwYWNpbmc9MCBjZWxscGFkZGluZz0wIHdpZHRoPTkwJSBzdHlsZT0ibWFyZ2luLXRvcDow
LjVlbSI+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1hZ2VzL2ZsYWdzL2VuLmdpZiIgd2lk
dGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9ImVuZ2xpc2giIHRpdGxlPSJlbmdsaXNoIiBib3JkZXI9
MD4gLSA0OSA1Mjc8L3RkPjx0ZCBjbGFzcz0ic3RhdCI+PGltZyBzcmM9ImltYWdlcy9mbGFncy9m
ci5naWYiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgYWx0PSJmcmVuY2giIHRpdGxlPSJmcmVuY2gi
IGJvcmRlcj0wPiAtIDQwIDg1MzwvdGQ+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1hZ2Vz
L2ZsYWdzL2dyLmdpZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9ImdyZWVrIiB0aXRsZT0i
Z3JlZWsiIGJvcmRlcj0wPiAtIDM5IDgwMzwvdGQ+PC90cj48dHI+PHRkIGNsYXNzPSJzdGF0Ij48
aW1nIHNyYz0iaW1hZ2VzL2ZsYWdzL3B0LmdpZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9
InBvcnR1Z3Vlc2UiIHRpdGxlPSJwb3J0dWd1ZXNlIiBib3JkZXI9MD4gLSAyMiA4NTc8L3RkPjx0
ZCBjbGFzcz0ic3RhdCI+PGltZyBzcmM9ImltYWdlcy9mbGFncy9odS5naWYiIHdpZHRoPSIxOCIg
aGVpZ2h0PSIxMiIgYWx0PSJodW5nYXJpYW4iIHRpdGxlPSJodW5nYXJpYW4iIGJvcmRlcj0wPiAt
IDE4IDUwOTwvdGQ+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1hZ2VzL2ZsYWdzL2JyLmdp
ZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9InBvcnR1Z3Vlc2UoYnIpIiB0aXRsZT0icG9y
dHVndWVzZShicikiIGJvcmRlcj0wPiAtIDE4IDQ4MjwvdGQ+PC90cj48dHI+PHRkIGNsYXNzPSJz
dGF0Ij48aW1nIHNyYz0iaW1hZ2VzL2ZsYWdzL3J1LmdpZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEy
IiBhbHQ9InJ1c3NpYW4iIHRpdGxlPSJydXNzaWFuIiBib3JkZXI9MD4gLSAxNSA1NTg8L3RkPjx0
ZCBjbGFzcz0ic3RhdCI+PGltZyBzcmM9ImltYWdlcy9mbGFncy9lcy5naWYiIHdpZHRoPSIxOCIg
aGVpZ2h0PSIxMiIgYWx0PSJzcGFuaXNoIiB0aXRsZT0ic3BhbmlzaCIgYm9yZGVyPTA+IC0gMTMg
MjEyPC90ZD48dGQgY2xhc3M9InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvcGwuZ2lmIiB3
aWR0aD0iMTgiIGhlaWdodD0iMTIiIGFsdD0icG9saXNoIiB0aXRsZT0icG9saXNoIiBib3JkZXI9
MD4gLSAxMiA5MTg8L3RkPjwvdHI+PHRyPjx0ZCBjbGFzcz0ic3RhdCI+PGltZyBzcmM9ImltYWdl
cy9mbGFncy9yby5naWYiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgYWx0PSJyb21hbmlhbiIgdGl0
bGU9InJvbWFuaWFuIiBib3JkZXI9MD4gLSAxMSA2MTA8L3RkPjx0ZCBjbGFzcz0ic3RhdCI+PGlt
ZyBzcmM9ImltYWdlcy9mbGFncy9pdC5naWYiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgYWx0PSJp
dGFsaWFuIiB0aXRsZT0iaXRhbGlhbiIgYm9yZGVyPTA+IC0gNyA0MDk8L3RkPjx0ZCBjbGFzcz0i
c3RhdCI+PGltZyBzcmM9ImltYWdlcy9mbGFncy9ubC5naWYiIHdpZHRoPSIxOCIgaGVpZ2h0PSIx
MiIgYWx0PSJkdXRjaCAiIHRpdGxlPSJkdXRjaCAiIGJvcmRlcj0wPiAtIDUgMzMyPC90ZD48L3Ry
Pjx0cj48dGQgY2xhc3M9InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvYmcuZ2lmIiB3aWR0
aD0iMTgiIGhlaWdodD0iMTIiIGFsdD0iYnVsZ2FyaWFuIiB0aXRsZT0iYnVsZ2FyaWFuIiBib3Jk
ZXI9MD4gLSA1IDIzNzwvdGQ+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1hZ2VzL2ZsYWdz
L3RyLmdpZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9InR1cmtpc2giIHRpdGxlPSJ0dXJr
aXNoIiBib3JkZXI9MD4gLSA0IDM2MDwvdGQ+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1h
Z2VzL2ZsYWdzL2RlLmdpZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9Imdlcm1hbiIgdGl0
bGU9Imdlcm1hbiIgYm9yZGVyPTA+IC0gMyA4MDc8L3RkPjwvdHI+PHRyPjx0ZCBjbGFzcz0ic3Rh
dCI+PGltZyBzcmM9ImltYWdlcy9mbGFncy9hci5naWYiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIg
YWx0PSJhcmFiaWMiIHRpdGxlPSJhcmFiaWMiIGJvcmRlcj0wPiAtIDIgMDQwPC90ZD48dGQgY2xh
c3M9InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvdWEuZ2lmIiB3aWR0aD0iMTgiIGhlaWdo
dD0iMTIiIGFsdD0idWtyYWluaWFuIiB0aXRsZT0idWtyYWluaWFuIiBib3JkZXI9MD4gLSAxIDE0
NDwvdGQ+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1hZ2VzL2ZsYWdzL2tvLmdpZiIgd2lk
dGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9ImtvcmVhbiIgdGl0bGU9ImtvcmVhbiIgYm9yZGVyPTA+
IC0gNzMwPC90ZD48L3RyPjx0cj48L3RhYmxlPjwvcD48cCBzdHlsZT0ibWFyZ2luLXRvcDowLjVl
bSI+PGI+RG93bmxvYWRzOjwvYj48L3A+Cjx0YWJsZSBjZWxsc3BhY2luZz0wIGNlbGxwYWRkaW5n
PTAgd2lkdGg9OTAlIHN0eWxlPSJtYXJnaW4tdG9wOjAuNWVtIj48dGQgY2xhc3M9InN0YXQiPjxp
bWcgc3JjPSJpbWFnZXMvZmxhZ3MvZW4uZ2lmIiB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIGFsdD0i
ZW5nbGlzaCIgdGl0bGU9ImVuZ2xpc2giIGJvcmRlcj0wPiAtIDEzMy42IG1pbDwvdGQ+PHRkIGNs
YXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1hZ2VzL2ZsYWdzL2ZyLmdpZiIgd2lkdGg9IjE4IiBoZWln
aHQ9IjEyIiBhbHQ9ImZyZW5jaCIgdGl0bGU9ImZyZW5jaCIgYm9yZGVyPTA+IC0gOTguNTMgbWls
PC90ZD48dGQgY2xhc3M9InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvZ3IuZ2lmIiB3aWR0
aD0iMTgiIGhlaWdodD0iMTIiIGFsdD0iZ3JlZWsiIHRpdGxlPSJncmVlayIgYm9yZGVyPTA+IC0g
NDIuMjMgbWlsPC90ZD48L3RyPjx0cj48dGQgY2xhc3M9InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMv
ZmxhZ3MvYnIuZ2lmIiB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIGFsdD0icG9ydHVndWVzZShiciki
IHRpdGxlPSJwb3J0dWd1ZXNlKGJyKSIgYm9yZGVyPTA+IC0gMTAuMTkgbWlsPC90ZD48dGQgY2xh
c3M9InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvZXMuZ2lmIiB3aWR0aD0iMTgiIGhlaWdo
dD0iMTIiIGFsdD0ic3BhbmlzaCIgdGl0bGU9InNwYW5pc2giIGJvcmRlcj0wPiAtIDkuMjkgbWls
PC90ZD48dGQgY2xhc3M9InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvcnUuZ2lmIiB3aWR0
aD0iMTgiIGhlaWdodD0iMTIiIGFsdD0icnVzc2lhbiIgdGl0bGU9InJ1c3NpYW4iIGJvcmRlcj0w
PiAtIDcuOTMgbWlsPC90ZD48L3RyPjx0cj48dGQgY2xhc3M9InN0YXQiPjxpbWcgc3JjPSJpbWFn
ZXMvZmxhZ3MvcHQuZ2lmIiB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIGFsdD0icG9ydHVndWVzZSIg
dGl0bGU9InBvcnR1Z3Vlc2UiIGJvcmRlcj0wPiAtIDcuNTYgbWlsPC90ZD48dGQgY2xhc3M9InN0
YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvaHUuZ2lmIiB3aWR0aD0iMTgiIGhlaWdodD0iMTIi
IGFsdD0iaHVuZ2FyaWFuIiB0aXRsZT0iaHVuZ2FyaWFuIiBib3JkZXI9MD4gLSA3LjMxIG1pbDwv
dGQ+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1hZ2VzL2ZsYWdzL3BsLmdpZiIgd2lkdGg9
IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9InBvbGlzaCIgdGl0bGU9InBvbGlzaCIgYm9yZGVyPTA+IC0g
NS45IG1pbDwvdGQ+PC90cj48dHI+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1hZ2VzL2Zs
YWdzL2l0LmdpZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9Iml0YWxpYW4iIHRpdGxlPSJp
dGFsaWFuIiBib3JkZXI9MD4gLSAzLjk0IG1pbDwvdGQ+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNy
Yz0iaW1hZ2VzL2ZsYWdzL3JvLmdpZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9InJvbWFu
aWFuIiB0aXRsZT0icm9tYW5pYW4iIGJvcmRlcj0wPiAtIDMuMzMgbWlsPC90ZD48dGQgY2xhc3M9
InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvYmcuZ2lmIiB3aWR0aD0iMTgiIGhlaWdodD0i
MTIiIGFsdD0iYnVsZ2FyaWFuIiB0aXRsZT0iYnVsZ2FyaWFuIiBib3JkZXI9MD4gLSAyLjgxIG1p
bDwvdGQ+PC90cj48dHI+PHRkIGNsYXNzPSJzdGF0Ij48aW1nIHNyYz0iaW1hZ2VzL2ZsYWdzL25s
LmdpZiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiBhbHQ9ImR1dGNoICIgdGl0bGU9ImR1dGNoICIg
Ym9yZGVyPTA+IC0gMi41OCBtaWw8L3RkPjx0ZCBjbGFzcz0ic3RhdCI+PGltZyBzcmM9ImltYWdl
cy9mbGFncy9kZS5naWYiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgYWx0PSJnZXJtYW4iIHRpdGxl
PSJnZXJtYW4iIGJvcmRlcj0wPiAtIDIuMzIgbWlsPC90ZD48dGQgY2xhc3M9InN0YXQiPjxpbWcg
c3JjPSJpbWFnZXMvZmxhZ3MvdHIuZ2lmIiB3aWR0aD0iMTgiIGhlaWdodD0iMTIiIGFsdD0idHVy
a2lzaCIgdGl0bGU9InR1cmtpc2giIGJvcmRlcj0wPiAtIDEuOTkgbWlsPC90ZD48L3RyPjx0cj48
dGQgY2xhc3M9InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvYXIuZ2lmIiB3aWR0aD0iMTgi
IGhlaWdodD0iMTIiIGFsdD0iYXJhYmljIiB0aXRsZT0iYXJhYmljIiBib3JkZXI9MD4gLSAxLjEg
bWlsPC90ZD48dGQgY2xhc3M9InN0YXQiPjxpbWcgc3JjPSJpbWFnZXMvZmxhZ3MvdWEuZ2lmIiB3
aWR0aD0iMTgiIGhlaWdodD0iMTIiIGFsdD0idWtyYWluaWFuIiB0aXRsZT0idWtyYWluaWFuIiBi
b3JkZXI9MD4gLSA3MDI5NDI8L3RkPjx0ZCBjbGFzcz0ic3RhdCI+PGltZyBzcmM9ImltYWdlcy9m
bGFncy9jei5naWYiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgYWx0PSJjemVjaCIgdGl0bGU9ImN6
ZWNoIiBib3JkZXI9MD4gLSAzMjYwNzA8L3RkPjwvdHI+PHRyPjwvdGFibGU+PC9wPgogICAgICAg
ICA8L2Rpdj48Y2VudGVyPjxhIGhyZWY9InNob3dyc3MucGhwIj48aW1nIHNyYz0iaW1hZ2VzL3Jz
cy5wbmciIHdpZHRoPSI1NSIgaGVpZ2h0PSIyNCIgYWx0PSJyc3MgY2hhbm5lbCIgYm9yZGVyPSIw
Ij48L2E+PGJyIC8+CjwhLS1MaXZlSW50ZXJuZXQgY291bnRlci0tPjxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij48IS0tCmRvY3VtZW50LndyaXRlKCI8YSBzdHlsZT0nYm9yZGVyOjAnIGhy
ZWY9J2h0dHA6Ly93d3cubGl2ZWludGVybmV0LnJ1L2NsaWNrJyAiKwoidGFyZ2V0PV9ibGFuaz48
aW1nICBzdHlsZT0nYm9yZGVyOjAnIHNyYz0naHR0cDovL2NvdW50ZXIueWFkcm8ucnUvaGl0P3Qx
NC41O3IiKwplc2NhcGUoZG9jdW1lbnQucmVmZXJyZXIpKygodHlwZW9mKHNjcmVlbik9PSJ1bmRl
ZmluZWQiKT8iIjoKIjtzIitzY3JlZW4ud2lkdGgrIioiK3NjcmVlbi5oZWlnaHQrIioiKyhzY3Jl
ZW4uY29sb3JEZXB0aD8Kc2NyZWVuLmNvbG9yRGVwdGg6c2NyZWVuLnBpeGVsRGVwdGgpKSsiO3Ui
K2VzY2FwZShkb2N1bWVudC5VUkwpKwoiO2giK2VzY2FwZShkb2N1bWVudC50aXRsZS5zdWJzdHJp
bmcoMCw4MCkpKyI7IitNYXRoLnJhbmRvbSgpKwoiJyBhbHQ9JycgdGl0bGU9J0xpdmVJbnRlcm5l
dDog7+7q4Ofg7e4g9+jx6+4g7/Du8ezu8vDu4iDn4CAyNCIrCiIg9+Dx4Cwg7+7x5fLo8uXr5ekg
5+AgMjQg9+Dx4CDoIOfgIPHl4+7k7f8nICIrCiJib3JkZXI9MCB3aWR0aD04OCBoZWlnaHQ9MzE+
PFwvYT4iKS8vLS0+PC9zY3JpcHQ+PCEtLS9MaXZlSW50ZXJuZXQtLT4KPC9jZW50ZXI+PC9kaXY+
CjxkaXYgY2xhc3M9ImZvb3RlciI+PGRpdiBhbGlnbj0iY2VudGVyIiBzdHlsZT0iaGVpZ2h0OjFw
eDsgb3ZlcmZsb3c6aGlkZGVuIj48c21hbGw+PC9zbWFsbD48L2Rpdj48ZGl2IHN0eWxlPSJmb250
LXNpemU6MTBweDsgbGluZS1oZWlnaHQ6MTBweDsgY29sb3I6I0MwQzBDMDsgaGVpZ2h0OjEwcHg7
IG92ZXJmbG93OmhpZGRlbiAiPjxhIGhyZWY9Imh0dHA6Ly9yaW5vay5pbi51YS9kb3NrYS1vYnlh
dmxlbml5L3Jhem5vZS1pLXByb2NoZWUvcmFyaXRldC1hbnRpa3ZhcmlhdC5odG1sIj7QotC+0LLQ
sNGA0Ysg0Lgg0YPRgdC70YPQs9C4CjwvYT48L2Rpdj4mY29weTsgQ29weXJpZ2h0IDIwMTUgVFZz
dWJ0aXRsZXMubmV0LiBQYWdlIGdlbmVyYXRpb24gMzAuMTggc2Vjb25kcy4KICAgICAgPC9kaXY+
CiAgIDwvZGl2PgoJPC9ib2R5PgoJPC9odG1sPgo=
headers:
Cache-Control: [no-cache]
Connection: [close]
Content-Type: [text/html; charset=utf-8]
Date: ['Sat, 04 Jul 2015 19:33:51 GMT']
Server: [Apache/2.2.15 (CentOS)]
Set-Cookie: ['visited=1; expires=Sun, 05-Jul-2015 07:33:51 GMT']
X-Powered-By: [PHP/5.3.3]
status: {code: 200, message: OK}
version: 1

Some files were not shown because too many files have changed in this diff Show More