Stats

live

Canada

FAST1,127/1,161
Paid85/137
OTA stations301/444
Radio stations463/474

United States

FAST5,395/5,547
Paid749/749
OTA stations0/6,881

Mexico

FAST478/478
Paid175/179

United Kingdom

FAST827/827
Paid401/414
OTA stations0/275

Australia

FAST472/541
Paid126/362
OTA stations0/380

New Zealand

FAST313/316
Paid89/99
OTA stations0/29

Totals with a logo / listed

FAST7,903/8,161258 need a logo
Paid1,625/1,940315 need a logo
OTA stations301/8,0097,708 need a logo
Radio stations463/47411 need a logo
All10,292/18,5848,292 need a logo
19,993logos served
608API 24 h
API calls · 24 h

Harvest

☾ Dark

Find any TV channel logo.

One channel in, one logo out: paste a tvg-id, a call sign or a channel name.

name
Non-Stop '90s
matched
epg.monster: non.stop.90s.plex.us
resolved_level
channel
theme_served
default
fallback
false
source
epg-monster
</> Code
updates live with the options aboveAI prompt
# pip install tvlogo.monster   (imported as: import tvlogo)
from tvlogo import Client

# 1. one client per program (reuses the HTTPS connection, no API key needed)
client = Client()

# 2. resolve one key: tvg-id, epg.monster id, call sign or channel name
logo = client.resolve(
    "Non.Stop.90s.plex.us",
    namespace="epg.monster",  # key is an epg.monster channel id, e.g. CTV.Winnipeg.ca
    size=256,  # 256x256 px PNG
)

# 3. None = no logo for this key (429 rate limits are retried after Retry-After)
if logo is None:
    raise SystemExit("no logo for this key")

# 4. use the image URL, e.g. as tvg-logo="..." in an M3U playlist
print(logo.image_url)
# which level answered: station, brand, network or channel
print(logo.resolved_level)
# True when a fallback was used (e.g. no dark variant -> default)
print(logo.fallback, logo.theme_served)

Matches

LogoChannelLevelImage URL
Non-Stop '90s
Non.Stop.90s.plex.us Plex · FAST · North America · 6a1610bebdf296985fd95603-65bd5a538314c24e11553543
channel https://i.tvlogo.monster/jVx4A-256.png