2017-07-30 17:52:04 -07:00
|
|
|
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
|
|
|
|
# super quickly hacked together script
|
|
|
|
# for listing your twitch following from the command-line.
|
2017-07-30 18:08:20 -07:00
|
|
|
|
|
|
|
# REQUIREMENTS:
|
|
|
|
# editing this script.
|
|
|
|
# downloading a python script.
|
|
|
|
# python 2 or 3.
|
|
|
|
# a web browser
|
|
|
|
# curl
|
|
|
|
# GNU sort
|
|
|
|
# GNU awk
|
|
|
|
|
|
|
|
# KNOWN ISSUES:
|
|
|
|
# stops printing at the first = character per field.
|
|
|
|
# this should be an easy fix but i'm lazy.
|
|
|
|
# output is not always sorted by viewer count.
|
2017-07-30 17:52:04 -07:00
|
|
|
|
|
|
|
# TODO:
|
|
|
|
# fix known issues.
|
|
|
|
# automatically extract relevant values from a cURL string.
|
|
|
|
# add toggle for colors.
|
|
|
|
# optional CSV output.
|
|
|
|
# automatically download json2?
|
|
|
|
# rewrite in python?
|
|
|
|
|
|
|
|
# fill these in with values extracted from your browser's
|
|
|
|
# "copy as cURL" feature.
|
2017-07-30 18:08:20 -07:00
|
|
|
# 1. open a new tab in Chromium or Firefox; these instructions apply to either.
|
|
|
|
# 2. open the web inspector (ctrl+shift+I) and click on the network tab.
|
|
|
|
# 3. go to https://www.twitch.tv/directory/following/live
|
|
|
|
# make sure this is with the network tab already open!
|
|
|
|
# if it isn't, open it up and just refresh the page.
|
|
|
|
# 4. type "followed" in the filter of the network tab.
|
|
|
|
# 5. right click on the first result and click copy as cURL.
|
|
|
|
# in Chromium, it's in a submenu as "copy as cURL (bash)"
|
|
|
|
# 6. paste into a text editor and extract the following header values:
|
|
|
|
# (each header is specified by a -H flag)
|
|
|
|
cookie="cookie: [fill me in!]"
|
|
|
|
client_id="client-id: [fill me in!]"
|
|
|
|
|
2017-07-30 17:52:04 -07:00
|
|
|
# note: technically, you only need the "persistent" cookie.
|
|
|
|
|
|
|
|
json2() {
|
|
|
|
# download this from https://github.com/vi/json2/blob/master/json2
|
|
|
|
# and edit this line accordingly.
|
|
|
|
python ~/src/json2/json2 "$@"
|
|
|
|
}
|
|
|
|
|
|
|
|
curl -LsS 'https://api.twitch.tv/kraken/streams/followed?limit=100&stream_type=all' \
|
|
|
|
-H 'accept: application/vnd.twitchtv.v5+json' \
|
|
|
|
-H "$cookie" \
|
|
|
|
-H "$client_id" | json2 | sort -n | awk -F'=' '
|
|
|
|
function trunc(s,L) {
|
|
|
|
e = length(s) > L ? "…" : "";
|
|
|
|
return (substr(s, 0, L -(e ? 1 : 0)) e);
|
|
|
|
}
|
|
|
|
$1~/\/game$/{game=$2}
|
|
|
|
$1~/\/channel\/status$/{status=$2}
|
|
|
|
$1~/\/channel\/name$/{name=$2}
|
|
|
|
$1~/\/viewers$/{printf "\x1b[90m%5s\x1b[0m \x1b[97m%-25s\x1b[0m %s\n \x1b[1m%s\x1b[0m\n",$2,name,trunc(game,48),status}
|
|
|
|
'
|