All Projects → fancybits → pychannels

fancybits / pychannels

Licence: MIT License
Python library for querying and controlling the Channels app.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pychannels

Pyatv
A python client library for the Apple TV
Stars: ✭ 322 (+2046.67%)
Mutual labels:  home-automation, apple-tv
Awesome Smart Tv
⚡️A curated list of awesome resources for building Smart TV apps
Stars: ✭ 588 (+3820%)
Mutual labels:  apple-tv, android-tv
Oddworks
[MIRROR]
Stars: ✭ 282 (+1780%)
Mutual labels:  apple-tv, android-tv
Homeassistant
Example Home Assistant Configs
Stars: ✭ 846 (+5540%)
Mutual labels:  home-automation, apple-tv
P1P2Serial
P1P2Serial library and P1P2Monitor program for low-level reading and writing Daikin/Rotex P1/P2 bus (based on Japanese Home Bus System), likely also for DIII-NET (F1/F2) bus, Mitsubishi M-Net bus, Toshiba TCC-Link, Hitachi H-link, Panasonic/Sanyo SIII-Net, Haier, York, ..
Stars: ✭ 91 (+506.67%)
Mutual labels:  home-automation
Home-Assistant-Main
My Home Assistant Configuration Be sure to ⭐ my repo so you can keep up to date on the daily progress!
Stars: ✭ 54 (+260%)
Mutual labels:  home-automation
simple-php-api
An extremely simple API (with authentication) example, written in PHP (server) and JS (client), using JSON
Stars: ✭ 23 (+53.33%)
Mutual labels:  api-client
modbus4mqtt
Modbus TCP <-> MQTT glue. YAML configuration. Robust.
Stars: ✭ 21 (+40%)
Mutual labels:  home-automation
keen-analysis.js
A light JavaScript client for Keen
Stars: ✭ 40 (+166.67%)
Mutual labels:  api-client
downcloud
Download your own Soundcloud tracks (uncompressed)
Stars: ✭ 22 (+46.67%)
Mutual labels:  api-client
pocket-api
A python wrapper around GetPocket API V3.
Stars: ✭ 103 (+586.67%)
Mutual labels:  api-client
ynab.go
Go client for the YNAB API. Unofficial. It covers 100% of the resources made available by the YNAB API.
Stars: ✭ 49 (+226.67%)
Mutual labels:  api-client
tradfri-mqtt
Mirrors Trådfri gateways endpoints into MQTT and send commands to the gateway from MQTT
Stars: ✭ 26 (+73.33%)
Mutual labels:  home-automation
nativescript-android-tv
A little PoC demonstrating code sharing between Android Phone and TV apps
Stars: ✭ 26 (+73.33%)
Mutual labels:  android-tv
dns
dns is a simple CLI tool for DNS-LG API
Stars: ✭ 28 (+86.67%)
Mutual labels:  api-client
Taviloglu.Wrike.ApiClient
.NET Client for Wrike API
Stars: ✭ 24 (+60%)
Mutual labels:  api-client
csrmesh
Reverse engineered bridge implementation of the CSRMesh BTLE protocol
Stars: ✭ 65 (+333.33%)
Mutual labels:  home-automation
gazpar-home-assistant
Retrieve Gazpar consumption in home assistant
Stars: ✭ 26 (+73.33%)
Mutual labels:  home-automation
pushover
Go wrapper for the Pushover API
Stars: ✭ 112 (+646.67%)
Mutual labels:  api-client
nzb
Get Things Done® with nzb, a beautiful terminal interface for Nozbe. Inspired by Wunderline
Stars: ✭ 35 (+133.33%)
Mutual labels:  api-client

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 Captions

client.toggle_cc

Channel Up

client.channel_up

Channel Down

client.channel_down

Previous Channel

client.previous_channel

Jump back to the last watched channel.

Toggle Pause

client.toggle_pause

Toggle Recording

client.toggle_record

Record the program playing on the current channel

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.

Skip Forward

client.skip_forward

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

Seek Backward

client.seek_backward

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

Skip Backward

client.skip_backward

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

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.

Navigate

client.navigate(section)

Change to a section of the app by providing its name. EX, Guide, Library, Live TV

Notify

client.notify(title, message)

Present a notification while playing video.

Contributions

  • fork
  • create a feature branch
  • open a Pull Request
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].