Telegram public-channel
t.me · 2 records in Netdisk and pan, Storage · JSON
Records 2
- caveatTelegram public-channel web CDN (t.me/s preview -> cdnN.telesco.pe) — anonymous reads
Storagefree tieridentity institution?card?limit write-gatedevidence reportedstale on 2026-11-05
- deadt.me/alistshare (the Telegram index channel)
Netdisk and panidentity anonymousno cardlimit retention-clampedevidence reportedchecked 2026-10-22
- Free allowance
- Not a storage tier — this is the READ path for files already in a public channel.
- Verdict
- caveatusable, with a named limit or an unprobed read path
- Cost
- free tier
- Identity
- institution?placeholder, not evidence; card unknown, phone unknown
- Binding limit
- write-gatedreview of a channel yields directly-fetchable media URLs for every photo and video pos; review HTML never emits a document element — checked t
- Evidence
- reported3 sources; a third party said so
- Freshness
- stale on 2026-11-05checked 2026-10-21 (inherited); stale on 2026-11-05
| Free tier | Not a storage tier — this is the READ path for files already in a public channel. Anonymous, no account, no token, no API key. Scraping the public preview of a channel yields directly-fetchable media URLs for every photo and video post. unit mixed; metered on stored-bytes |
|---|---|
| Price | none stated |
| Limits |
CRITICAL SCOPE LIMIT, probed: this path exposes PHOTOS and VIDEOS only. The preview HTML never emits a document element — checked t.me/s/telegram, /durov, /tginfo, /tgbeta, /apkpure_official, /drweb, /securitylab: zero occurrences of tgme_widget_message_document, zero .pdf links. Arbitrary files (zips, parquet, models) are NOT reachable anonymously; only the media Telegram re-encodes for preview. Max observed media size is bounded by what the preview embeds. |
| Identity | institution (inferred, not read) not published |
| Egress | Free and unmetered, served by Telegram's own nginx-backed web CDN (Server: nginx/1.30.1, Cache-Control: max-age=10800). Access-Control-Allow-Origin: * and Accept-Ranges advertised, so range requests and browser fetching work. This is genuinely CDN-friendly: put Cloudflare in front and the origin pull is a plain HTTP GET. |
| Per-object cap | not stated |
| Retention | It is still validated (bogus token -> 404, no token -> 404), and one minted token 502'd transiently then recovered, so treat tokens as mint-on-demand, not permanent |
| Interface | rest rest |
| Tooling | No client needed — plain curl. Pattern: GET https://t.me/s/<channel> and regex https://cdn\d\.telesco\.pe/file/<hash>.mp4?token=... The t.me embed widget (https://t.me/<channel>/<id>?embed=1) exposes a second, tokenless URL form (e.g. cdn4.telesco.pe/file/<long-hash>.jpg) that also serves 200/206 anonymously. Pagination works: ?before=<msg_id> walks arbitrarily far back. |
| Composes with | Iterate channels x ?before pagination. Anonymous scrape rate was tested at 12 requests back-to-back on t.me/s/telegram with 12x HTTP 200 — no rate limit encountered. Each channel page yields ~20 messages; a file-storage channel where every post is a 2 GB file would expose all of them this way. |
| Reliability | It is still validated (bogus token -> 404, no token -> 404), and one minted token 502'd transiently then recovered, so treat tokens as mint-on-demand, not permanent. cdn2.telesco.pe 302s to another host; cdn1 is the one that serves bytes. |
| Parsed numbers |
|
Evidence 3
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | cdn4.telesco.pe/file/<hash>.jpg | probe: curl -r 0-2047 -> 206, Content-Range: bytes 0-2047/4843, Access-Control-Allow-Origin: * — anonymous partial read works |
| 2026-10-21 | cdn1.telesco.pe/file/<hash>.mp4?token= | probe: curl -r 0-1023 ... -> 206, Content-Type: video/mp4, Content-Range: bytes 0-1023/2633811 — anonymous range read of video works |
| 2026-10-21 | source not published | probe: grep tgme_widget_message_document across 7 public channels -> 0 hits; this path carries media only, never arbitrary documents |
Unknown values 3
- per object cap notes: the field may be stated in a source that was not read
- per object cap stated: the field may be stated in a source that was not read
- retention notes: the field may be stated in a source that was not read