← erion@nezha:~$ cd ../portfolio

$ cat case-study/erion-tv.md

ERiON TV: a self-healing channel list, run from a chat

How a private Telegram bot keeps 300+ live channels working inside an Android app — testing every stream, repairing the important ones, and refusing to publish a bad list.

Telegram botffprobeCloudflare R2Netlify FunctionsAES-256-GCMCron
ERiON TV

An Albanian TV streaming app for Android with 300+ live channels and an EPG guide — live on Google Play.

01 The problem

Live streams come and go: sources change, links expire, channels go dark. Shipping a new app version for every change would be impossible. So I flipped it: the app never changes — the list behind a single, stable link does.

02 One command, the whole pipeline

A private Telegram bot — it answers to me and nobody else — runs everything from a single command:

SourceFind endpoint
Golden listMatch 329
ffprobeTest each
R2Publish

03 Guardrails

# before anything goes live
new list < 60% of last live channels  → held in staging
waiting for                         /confirm  or  /cancel
previous list                       backed up  (last 5 kept)
# after every run, a report in Telegram
requested · live · dead · restored · lost
The most dangerous update is the one that quietly makes things worse. A sudden drop in live channels is treated as a warning, not a result — a human has to say yes.

04 Secrets and schedule

05 What I took from it

Need a pipeline that keeps itself healthy?

Let's talk →

$ cat case-study/erion-tv.md

ERiON TV: një listë kanalesh që shërohet vetë, e drejtuar nga një chat

Si një bot privat në Telegram mban mbi 300 kanale live në punë brenda një aplikacioni Android — duke testuar çdo stream, duke riparuar ato kryesoret dhe duke refuzuar të publikojë një listë të keqe.

Bot TelegramffprobeCloudflare R2Netlify FunctionsAES-256-GCMCron
ERiON TV

Aplikacion streaming për televizionet shqiptare në Android, me mbi 300 kanale live dhe guidë programesh EPG — live në Google Play.

01 Problemi

Stream-et live vijnë e ikin: burimet ndryshojnë, linket skadojnë, kanalet fiken. Të nxjerrësh version të ri të aplikacionit për çdo ndryshim do të ishte e pamundur. Ndaj e ktheva përmbys: aplikacioni nuk ndryshon kurrë — ndryshon lista pas një linku të vetëm e të qëndrueshëm.

02 Një komandë, i gjithë pipeline-i

Një bot privat në Telegram — që i përgjigjet vetëm mua — e drejton gjithçka me një komandë të vetme:

BurimiGjej serverin
Lista e artëPërputh 329
ffprobeTesto secilin
R2Publiko

03 Mbrojtjet

# para se diçka të dalë live
lista e re < 60% e kanaleve live të fundit  → mbahet në staging
pret                                      /konfirmo  ose  /anulo
lista e mëparshme                         backup  (ruhen 5 të fundit)
# pas çdo ekzekutimi, raport në Telegram
kërkuar · live · të vdekur · të kthyer · të humbur
Përditësimi më i rrezikshëm është ai që i përkeqëson gjërat në heshtje. Një rënie e papritur e kanaleve live trajtohet si paralajmërim, jo si rezultat — duhet një njeri të thotë po.

04 Sekretet dhe orari

05 Çfarë mësova

Të duhet një pipeline që kujdeset vetë për shëndetin e tij?

Le të flasim →