[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71248":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":14,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":32,"readmeContent":33,"aiSummary":34,"trendingCount":16,"starSnapshotCount":16,"syncStatus":35,"lastSyncTime":36,"discoverSource":37},71248,"telegram_media_downloader","tangyoha\u002Ftelegram_media_downloader","tangyoha","基于Dineshkarthik的项目， 电报视频下载，电报资源下载，跨平台，支持web查看下载进度 ，支持bot下发指令下载，支持下载已经加入的私有群但是限制下载的资源， telegram media download,Download media files from a telegram conversation\u002Fchat\u002Fchannel up to 2GiB per file","",null,"JavaScript",5294,605,15,89,0,23,93,45,105.15,"MIT License",false,"master",true,[26,27,28,29,30,31],"cosplatfrom","cross-platform","downloader","flask","media-downloader","telegram-bot","2026-06-12 04:01:00","\n\u003Ch1 align=\"center\">Telegram Media Downloader\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n\u003Ca href=\"https:\u002F\u002Fdeepwiki.com\u002Ftangyoha\u002Ftelegram_media_downloader\">\u003Cimg alt=\"DeepWiki\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDeepWiki-Documentation-blue\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Factions\">\u003Cimg alt=\"Unittest\" src=\"https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fworkflows\u002FUnittest\u002Fbadge.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Ftangyoha\u002Ftelegram_media_downloader\">\u003Cimg alt=\"Coverage Status\" src=\"https:\u002F\u002Fcodecov.io\u002Fgh\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fblob\u002Fmaster\u002FLICENSE\">\u003Cimg alt=\"License: MIT\" src=\"https:\u002F\u002Fblack.readthedocs.io\u002Fen\u002Fstable\u002F_static\u002Flicense.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpython\u002Fblack\">\u003Cimg alt=\"Code style: black\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fcode%20style-black-000000.svg\">\u003C\u002Fa>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Freleases\">\n\u003Cimg alt=\"Code style: black\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Ftangyoha\u002Ftelegram_media_downloader?display_name=tag\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ch3 align=\"center\">\n  \u003Ca href=\".\u002FREADME_CN.md\">中文\u003C\u002Fa>\u003Cspan> · \u003C\u002Fspan>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fdiscussions\u002Fcategories\u002Fideas\">Feature request\u003C\u002Fa>\n  \u003Cspan> · \u003C\u002Fspan>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fissues\">Report a bug\u003C\u002Fa>\n  \u003Cspan> · \u003C\u002Fspan>\n  Support: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fdiscussions\">Discussions\u003C\u002Fa>\n  \u003Cspan> & \u003C\u002Fspan>\n  \u003Ca href=\"https:\u002F\u002Ft.me\u002FTeegramMediaDownload\">Telegram Community\u003C\u002Fa>\n\u003C\u002Fh3>\n\n## Overview\n> Support two default running\n\n* The robot is running, and the command `download` or `forward` is issued from the robot\n\n* Download as a one-time download tool\n\n### UI\n\n#### Web page\n\n> After running, open a browser and visit `localhost:5000`\n> If it is a remote machine, you need to configure web_host: 0.0.0.0\n\n\n\u003Cimg alt=\"Code style: black\" style=\"width:100%; high:60%;\" src=\".\u002Fscreenshot\u002Fweb_ui.gif\"\u002F>\n\n### Robot\n\n> Need to configure bot_token, please refer to [Documentation](https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fwiki\u002FHow-to-Download-Using-Robots)\n\n\u003Cimg alt=\"Code style: black\" style=\"width:60%; high:30%; \" src=\".\u002Fscreenshot\u002Fbot.gif\"\u002F>\n\n### Support\n\n| Category             | Support                                          |\n| -------------------- | ------------------------------------------------ |\n| Language             | `Python 3.7` and above                           |\n| Download media types | audio, document, photo, video, video_note, voice |\n\n### Version release plan\n\n* [v2.2.0](https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fissues\u002F2)\n\n## Installation\n\nFor *nix os distributions with `make` availability\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader.git\ncd telegram_media_downloader\nmake install\n```\n\nFor Windows which doesn't have `make` inbuilt\n\n```sh\ngit clone https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader.git\ncd telegram_media_downloader\npip3 install -r requirements.txt\n```\n\n## Docker\n> For more detailed installation tutorial, please check the wiki\n\nMake sure you have **docker** and **docker-compose** installed\n```sh\ndocker pull tangyoha\u002Ftelegram_media_downloader:latest\nmkdir -p ~\u002Fapp && mkdir -p ~\u002Fapp\u002Flog\u002F && cd ~\u002Fapp\nwget https:\u002F\u002Fraw.githubusercontent.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fmaster\u002Fdocker-compose.yaml -O docker-compose.yaml\nwget https:\u002F\u002Fraw.githubusercontent.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fmaster\u002Fconfig.yaml -O config.yaml\nwget https:\u002F\u002Fraw.githubusercontent.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fmaster\u002Fdata.yaml -O data.yaml\n# vi config.yaml and docker-compose.yaml\nvi config.yaml\n\n# The first time you need to start the foreground\n# enter your phone number and code, then exit(ctrl + c)\ndocker-compose run --rm telegram_media_downloader\n\n# After performing the above operations, all subsequent startups will start in the background\ndocker-compose up -d\n\n# Upgrade\ndocker pull tangyoha\u002Ftelegram_media_downloader:latest\ncd ~\u002Fapp\ndocker-compose down\ndocker-compose up -d\n```\n\n## Upgrade installation\n\n```sh\ncd telegram_media_downloader\npip3 install -r requirements.txt\n```\n\n## Configuration\n\nAll the configurations are  passed to the Telegram Media Downloader via `config.yaml` file.\n\n**Getting your API Keys:**\nThe very first step requires you to obtain a valid Telegram API key (API id\u002Fhash pair):\n\n1. Visit  [https:\u002F\u002Fmy.telegram.org\u002Fapps](https:\u002F\u002Fmy.telegram.org\u002Fapps)  and log in with your Telegram Account.\n2. Fill out the form to register a new Telegram application.\n3. Done! The API key consists of two parts:  **api_id**  and  **api_hash**.\n\n**Getting chat id:**\n\n**1. Using web telegram:**\n\n1. Open \u003Chttps:\u002F\u002Fweb.telegram.org\u002F?legacy=1#\u002Fim>\n\n2. Now go to the chat\u002Fchannel and you will see the URL as something like\n   - `https:\u002F\u002Fweb.telegram.org\u002F?legacy=1#\u002Fim?p=u853521067_2449618633394` here `853521067` is the chat id.\n   - `https:\u002F\u002Fweb.telegram.org\u002F?legacy=1#\u002Fim?p=@somename` here `somename` is the chat id.\n   - `https:\u002F\u002Fweb.telegram.org\u002F?legacy=1#\u002Fim?p=s1301254321_6925449697188775560` here take `1301254321` and add `-100` to the start of the id => `-1001301254321`.\n   - `https:\u002F\u002Fweb.telegram.org\u002F?legacy=1#\u002Fim?p=c1301254321_6925449697188775560` here take `1301254321` and add `-100` to the start of the id => `-1001301254321`.\n\n**2. Using bot:**\n\n1. Use [@username_to_id_bot](https:\u002F\u002Ft.me\u002Fusername_to_id_bot) to get the chat_id of\n    - almost any telegram user: send username to the bot or just forward their message to the bot\n    - any chat: send chat username or copy and send its joinchat link to the bot\n    - public or private channel: same as chats, just copy and send to the bot\n    - id of any telegram bot\n\n### config.yaml\n\n```yaml\napi_hash: your_api_hash\napi_id: your_api_id\nchat:\n- chat_id: telegram_chat_id\n  last_read_message_id: 0\n  download_filter: message_date >= 2022-12-01 00:00:00 and message_date \u003C= 2023-01-17 00:00:00\n- chat_id: telegram_chat_id_2\n  last_read_message_id: 0\n# note we remove ids_to_retry to data.yaml\nids_to_retry: []\nmedia_types:\n- audio\n- document\n- photo\n- video\n- voice\n- animation #gif\nfile_formats:\n  audio:\n  - all\n  document:\n  - pdf\n  - epub\n  video:\n  - mp4\nsave_path: D:\\telegram_media_downloader\nfile_path_prefix:\n- chat_title\n- media_datetime\nupload_drive:\n  # required\n  enable_upload_file: true\n  # required\n  remote_dir: drive:\u002Ftelegram\n  # required\n  upload_adapter: rclone\n  # option,when config upload_adapter rclone then this config are required\n  rclone_path: D:\\rclone\\rclone.exe\n  # option\n  before_upload_file_zip: True\n  # option\n  after_upload_file_delete: True\nhide_file_name: true\nfile_name_prefix:\n- message_id\n- file_name\nfile_name_prefix_split: ' - '\nmax_download_task: 5\nweb_host: 127.0.0.1\nweb_port: 5000\nlanguage: EN\nweb_login_secret: 123\nallowed_user_ids:\n- 'me'\ndate_format: '%Y_%m'\nenable_download_txt: false\n```\n\n- **api_hash**  - The api_hash you got from telegram apps\n- **api_id** - The api_id you got from telegram apps\n- **bot_token** - Your bot token\n- **chat** - Chat list\n  - `chat_id` -  The id of the chat\u002Fchannel you want to download media. Which you get from the above-mentioned steps.\n  - `download_filter` - Download filter, see [How to use Filter](https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fwiki\u002FHow-to-use-Filter)\n  - `last_read_message_id` - If it is the first time you are going to read the channel let it be `0` or if you have already used this script to download media it will have some numbers which are auto-updated after the scripts successful execution. Don't change it.\n  - `ids_to_retry` - `Leave it as it is.` This is used by the downloader script to keep track of all skipped downloads so that it can be downloaded during the next execution of the script.\n- **media_types** - Type of media to download, you can update which type of media you want to download it can be one or any of the available types.\n- **file_formats** - File types to download for supported media types which are `audio`, `document` and `video`. Default format is `all`, downloads all files.\n- **save_path** - The root directory where you want to store downloaded files.\n- **file_path_prefix** - Store file subfolders, the order of the list is not fixed, can be randomly combined.\n  - `chat_title`      - Channel or group title, it will be chat id if not exist title.\n  - `media_datetime`  - Media date.\n  - `media_type`      - Media type, also see `media_types`.\n- **upload_drive** - You can upload file to cloud drive.\n  - `enable_upload_file` - Enable upload file, default `false`.\n  - `remote_dir` - Where you upload, like `drive_id\u002Fdrive_name`.\n  - `upload_adapter` - Upload file adapter, which can be `rclone`, `aligo`. If it is `rclone`, it supports all `rclone` servers that support uploading. If it is `aligo`, it supports uploading `Ali cloud disk`.\n  - `rclone_path` - RClone exe path, see [How to use rclone](https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fwiki\u002FRclone)\n  - `before_upload_file_zip` - Zip file before upload, default `false`.\n  - `after_upload_file_delete` - Delete file after upload success, default `false`.\n- **file_name_prefix** - Custom file name, use the same as **file_path_prefix**\n  - `message_id` - Message id\n  - `file_name` - File name (may be empty)\n  - `caption` - The title of the message (may be empty)\n- **file_name_prefix_split** - Custom file name prefix symbol, the default is `-`\n- **max_download_task** - The maximum number of task download tasks, the default is 5.\n- **hide_file_name** - Whether to hide the web interface file name, default `false`\n- **web_host** - Web host\n- **web_port** - Web port\n- **language** - Application language, the default is English (`EN`), optional `ZH`(Chinese),`RU`,`UA`\n- **web_login_secret** - Web page login password, if not configured, no login is required to access the web page\n- **log_level** - see `logging._nameToLevel`.\n- **forward_limit** - Limit the number of forwards per minute, the default is 33, please do not modify this parameter by default.\n- **allowed_user_ids** - Who is allowed to use the robot? The default login account can be used. Please add single quotes to the name with @.\n- **date_format** Support custom configuration of media_datetime format in file_path_prefix.see [python-datetime](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Fdatetime.html)\n- **enable_download_txt** Enable download txt file, default `false`\n\n## Execution\n\n```sh\npython3 media_downloader.py\n```\n\nAll downloaded media will be stored at the root of `save_path`.\nThe specific location reference is as follows:\n\nThe complete directory of video download is: `save_path`\u002F`chat_title`\u002F`media_datetime`\u002F`media_type`.\nThe order of the list is not fixed and can be randomly combined.\nIf the configuration is empty, all files are saved under `save_path`.\n\n## Proxy\n\n`socks4, socks5, http` proxies are supported in this project currently. To use it, add the following to the bottom of your `config.yaml` file\n\n```yaml\nproxy:\n  scheme: socks5\n  hostname: 127.0.0.1\n  port: 1234\n  username: your_username(delete the line if none)\n  password: your_password(delete the line if none)\n```\n\nIf your proxy doesn’t require authorization you can omit username and password. Then the proxy will automatically be enabled.\n\n## Contributing\n\n### Contributing Guidelines\n\nRead through our [contributing guidelines](https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md) to learn about our submission process, coding rules and more.\n\n### Want to Help?\n\nWant to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for [contributing](https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fblob\u002Fmaster\u002FCONTRIBUTING.md).\n\n### Code of Conduct\n\nHelp us keep Telegram Media Downloader open and inclusive. Please read and follow our [Code of Conduct](https:\u002F\u002Fgithub.com\u002Ftangyoha\u002Ftelegram_media_downloader\u002Fblob\u002Fmaster\u002FCODE_OF_CONDUCT.md).\n\n\n### Sponsor\n\n[PayPal](https:\u002F\u002Fpaypal.me\u002Ftangyoha?country.x=C2&locale.x=zh_XC)\n\n\n## Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=tangyoha\u002Ftelegram_media_downloader&type=Date)](https:\u002F\u002Fstar-history.com\u002F#tangyoha\u002Ftelegram_media_downloader&Date)\n","该项目是一个用于从Telegram下载媒体文件的工具，支持视频、文档、图片等多种类型的文件下载。它基于Dineshkarthik的项目开发，具有跨平台特性，支持通过Web界面查看下载进度，并且可以通过Telegram Bot发送指令进行远程下载操作。此外，该工具还能够下载已经加入但受限制访问的私有群组中的资源。适用于需要批量保存Telegram聊天记录或频道内容的用户，如社交媒体管理者、内容创作者等。采用JavaScript编写，遵循MIT许可证。",2,"2026-06-11 03:36:46","high_star"]