{"id":50475736,"url":"https://github.com/myl7/tdl-viewer","last_synced_at":"2026-06-01T13:01:39.469Z","repository":{"id":345956176,"uuid":"1169314759","full_name":"myl7/tdl-viewer","owner":"myl7","description":"Telegram-like viewer for tdl chat exports and downloaded media","archived":false,"fork":false,"pushed_at":"2026-03-21T13:52:26.000Z","size":112,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-22T04:17:52.122Z","etag":null,"topics":["nextjs","tdl","telegram","viewer"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/myl7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-28T13:57:46.000Z","updated_at":"2026-03-21T13:52:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/myl7/tdl-viewer","commit_stats":null,"previous_names":["myl7/tdl-viewer"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/myl7/tdl-viewer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myl7%2Ftdl-viewer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myl7%2Ftdl-viewer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myl7%2Ftdl-viewer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myl7%2Ftdl-viewer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/myl7","download_url":"https://codeload.github.com/myl7/tdl-viewer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/myl7%2Ftdl-viewer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33775864,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs","tdl","telegram","viewer"],"created_at":"2026-06-01T13:01:38.644Z","updated_at":"2026-06-01T13:01:39.463Z","avatar_url":"https://github.com/myl7.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tdl-viewer\n\nTelegram Web-style viewer for browsing multiple tdl chat exports with media playback\n\n## Features\n\n- Multi-channel support with a collapsible sidebar for switching between channels\n- Telegram Web-style chat bubble layout with infinite scroll\n- Rich text rendering with hyperlink entities and automatic URL detection\n- Inline image preview with click-to-zoom\n- Video and audio playback with seek support\n- File download for non-media attachments\n- Per-message Raw JSON inspector\n\n### Supported media\n\n| Type  | Extensions                      |\n| ----- | ------------------------------- |\n| Image | jpg, jpeg, png, gif, webp, bmp  |\n| Video | mp4, webm, mov, mkv             |\n| Audio | mp3, m4a, aac, wav, ogg, flac   |\n| File  | everything else (download only) |\n\n## Get Started\n\n### 1. Export messages\n\nExport messages from a target chat or channel (`CHAT` can be a username, link, or ID):\n\n```bash\ntdl chat export -c CHAT --all --with-content --raw -o tdl-export.json\n```\n\n### 2. Download attachments\n\n```bash\ntdl dl -f tdl-export.json -d downloads\n```\n\n### 3. Organize channel data\n\nPlace each channel's export and downloads into a subdirectory under `channels/`:\n\n```\nchannels/\n  my_channel/\n    tdl-export.json\n    downloads/\n  another_channel_@someid/\n    tdl-export.json\n    downloads/\n```\n\nDirectory names follow the format `{channel_name}` or `{channel_name}_@{channel_str_id}`. The `_@{channel_str_id}` suffix is optional and will be displayed in the sidebar when present.\n\n### 4. Run the viewer\n\n```bash\npnpm install\npnpm dev\n```\n\nOpen http://localhost:3000.\n\n## Config\n\n| Option         | Type            | Default    | Description                                             |\n| -------------- | --------------- | ---------- | ------------------------------------------------------- |\n| `CHANNELS_DIR` | Environment var | `channels` | Path to the directory containing channel subdirectories |\n\nAttachments are matched by the `{channel_id}_{msg_id}_` prefix, so renamed files (e.g. spaces replaced with underscores by `tdl dl`) are resolved correctly.\n\n## Limitations\n\n- Designed for local offline browsing only; no authentication or access control\n- No message editing, replying, searching, or real-time sync\n\n## License\n\nCopyright (C) 2026 Yulong Ming \u003ci@myl.moe\u003e.\n\nApache License, Version 2.0.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyl7%2Ftdl-viewer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmyl7%2Ftdl-viewer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmyl7%2Ftdl-viewer/lists"}