Python library for interacting with the E2E encrypted Hulu API
Project description
pyhulu
Python library for interacting with the E2E encrypted Hulu API
Usage
First, initialize the HuluClient
class with a device code, device key, and cookies:
client = pyhulu.HuluClient(device_code, device_key, cookies)
device_code
is a three-digit string or integer (doesn't matter) denoting the device you will make requests as.
device_key
is a 16-byte AES key that corresponds to the device code you're using. This is used to decrypt the device config response.
cookies
can either be a cookie jar object or a dict of cookie key / value pairs. This is passed to the requests
library, so whatever it takes will work. Examples here: http://docs.python-requests.org/en/master/user/quickstart/#cookies.
With the initialized client
object, you can use the load_playlist()
method:
client.load_playlist(video_id)
video_id
is either a string or integer denoting the video ID to request a playlist for. This is NOT the ID in the /watch/
URL! If you view the page source of a /watch/
page, you'll find \"content_id\"
which has the actual video ID used by the API.
This method returns a dict of the playlist response, which contains stream and license URLs.
Device Codes and Keys
PC
- Device code:
159
- Device key (hex):
6ebfc84f3c304217b20fd9a66cb5957f
Example Code
import pyhulu
from http.cookiejar import MozillaCookieJar
cj = MozillaCookieJar('cookies.txt')
cj.load()
client = pyhulu.HuluClient('159', bytes.fromhex('6ebfc84f3c304217b20fd9a66cb5957f'), cj)
print(client.load_playlist(61085964))
Installation
To install, either clone the repository and run python setup.py install
or run pip install pyhulu
.
To-Do
- Add unit tests
- Add to PyPI
- Add documentation
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file pyhulu-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: pyhulu-1.1.2-py3-none-any.whl
- Upload date:
- Size: 17.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b42aaf2c976d00b7cc562de33a2302c420e04cf8f4c2d9803ca8b2baf8f9ac8f |
|
MD5 | 7cca80e77d56dc83d890c2f9248d8334 |
|
BLAKE2b-256 | 31109d44b07c299093cdf292eeed21bd2cde3126775caa7041eeb307fb92331f |