Skip to content
Python library for querying and controlling the Channels app.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
pychannels
.gitignore
LICENSE
README.md
setup.py

README.md

PyChannels!!

This is a simple Python client that lets you talk to the Channels app while it's running.

Installation

You can install PyChannels from PyPi using pip3 install pychannels (use pip if you're still using Python 2).

Usage

Just create a new client and give it the host name of the device that Channels is running on. You can optionally pass in a port, which defaults to 57000.

from pychannels import Channels

client = Channels("192.168.1.192", 57000)

client.pause()
client.resume()
client.stop()

API

All responses return the current status of Channels. You can get this simply with client.status(), but every other method will return it as well.

Status Data

Status data is returned as a simple Dict. Here's an example.

{
  'status': 'paused',
  'muted': False,
  'channel': {
    'number': '35.1',
    'name': 'Fox-HD',
    'image_url': 'http://fanc.tmsimg.com/h5/NowShowing/28719/s28719_h5_aa.png'
  },
  'now_playing': {
    'title': 'The Mick',
    'season_number': 2,
    'episode_number': 16,
    'episode_title': 'The Accident',
    'image_url': 'http://fanc.tmsimg.com/assets/p12900954_b_h6_ad.jpg',
    'summary': 'Chip offers to help Sabrina get a fake ID in exchange for a night out with her and her friends.'
  }
}

Info

You can fetch 2 sets of information from Channels. Its current status and the current set of favorite channels.

Status

client.status()

This returns the result documented above.

Favorite Channels

client.favorite_channels()

This returns an array of channel Dicts. Here's an example.

[{
	'number': '12.1',
	'call_sign': 'WWBT-HD',
	'image_url': 'http://fanc.tmsimg.com/h5/NowShowing/28717/s28717_h5_aa.png',
	'name': 'NBC HD',
	'hd': True
}, {
	'number': '35.1',
	'call_sign': 'Fox-HD',
	'image_url': 'http://fanc.tmsimg.com/h5/NowShowing/28719/s28719_h5_aa.png',
	'name': 'Fox-HD',
	'hd': True
}, {
	'number': '552',
	'call_sign': 'TBS HD',
	'image_url': 'http://fanc.tmsimg.com/h5/NowShowing/58515/s58515_h5_aa.png',
	'name': 'TBS HD',
	'hd': True
}, {
	'number': '570',
	'call_sign': 'ESPN HD',
	'image_url': 'http://fanc.tmsimg.com/h5/NowShowing/32645/s32645_h5_aa.png',
	'name': 'ESPN HD',
	'hd': True
}]

Commands

You can control Channels with these methods.

Toggle Mute

client.toggle_mute()

Toggle Pause

client.toggle_pause()

Pause

client.pause()

Resume

client.resume()

Stop

client.stop()

Seek By

client.seek_by(seconds)

Seek forward or backward on the timeline with an inputted number of seconds. Negative values go backward.

Seek Forward

client.seek_forward()

Seek forward in the timeline by the set number of seconds in Channels.

Seek Backward

client.seek_backward()

Seek backward in the timeline by the set number of seconds in Channels.

Skip Forward

client.skip_forward()

Skip to the next chapter mark. This is for recordings made with Channels DVR that have their commercials indexed.

Skip Backward

client.skip_backward()

Skip to the previous chapter mark. This is for recordings made with Channels DVR that have their commercials indexed.

Previous Channel

client.previous_channel()

Jump back to the last watched channel.

Play Channel

client.play_channel(channel_number)

Play a channel by passing it the channel number.

Play Recording

client.play_recording(recording_id)

Play a recording from Channels DVR

Contributions

  • fork
  • create a feature branch
  • open a Pull Request
You can’t perform that action at this time.