Skip to content

Instantly share code, notes, and snippets.

@larsenv
Last active June 1, 2022 23:29
Show Gist options
  • Save larsenv/76a7e51151c1fcfca0946f0d73581e52 to your computer and use it in GitHub Desktop.
Save larsenv/76a7e51151c1fcfca0946f0d73581e52 to your computer and use it in GitHub Desktop.
Download a program break from a randomly picked PBS station.
import datetime
import json
import random
import requests
import subprocess
stations = ["KAET", "KAID", "KAKM", "KAMU", "KAWE", "KBDI", "KBTC", "KCPT", "KCTS", "KCWC", "KDIN", "KEDT", "KEET", "KENW", "KERA", "KETA", "KETC", "KETS", "KFME", "KGTF", "KIXE", "KLRN", "KLRU", "KLCS", "KLVX", "KMOS", "KNME", "KNPB", "KTCA", "KOCE", "KOOD", "KOPB", "KOZK", "KPBS", "KPBT", "KPTS", "KRCB", "KRMA", "KRWG", "KQED", "KSPS", "KSYS", "KTWU", "KUAC", "KUAT", "KUED", "KUHT", "KUON", "KUSD", "KUSM", "KVCR", "KVIE", "KWCM", "WBGU", "WBIQ", "WBRA", "WCBB", "WCFE", "WCMU", "WCTE", "WCVE", "WDCQ", "WDSE", "WEDH", "WEDU", "WEIU", "WENH", "WETA", "WETK", "WETP", "WFSU", "WFWA", "WFYI", "WGBH", "WGBY", "WGCU", "WGTE", "WGTV", "WGVU", "WHRO", "WHUT", "WHYY", "WILL", "WITF", "WJCT", "WKAR", "WKLE", "WKNO", "WLIW", "WLJT", "WLPB", "WLRN", "WLVT", "WMHT", "WMPB", "WMPN", "WMVS", "WNED", "WNEO", "WNET", "WNIN", "WNIT", "WNJT", "WNMU", "WNPT", "WOSU", "WOUB", "WPBS", "WPBT", "WPNE", "WPSU", "WRLK", "WQED", "WQLN", "WQPT", "WSBE", "WSIU", "WSKG", "WSRE", "WTIU", "WTJX", "WTTW", "WTVI", "WTVP", "WTVS", "WVIA", "WUCF", "WUFT", "WUNC", "WVIZ", "WVPB", "WVUT", "WXEL", "WXXI", "WYES", "WYIN"]
station = random.choice(stations)
print("Chose " + station)
url = "https://jaws.pbs.org/localization/false/?callsign=" + station + "&profile=color"
response = requests.get(url).text
livestream_url = json.loads(response)["station"]["skylab_data"]["ga_live_stream_url"]
filename = datetime.datetime.now().strftime(station + "-%Y-%m-%d-%H_%M_%S.mkv")
job = subprocess.call(["/usr/local/bin/ffmpeg", "-i", livestream_url, "-t", "420", filename])
@winnydixiemedia
Copy link

How do I use this?!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment