{"id":23951650,"url":"https://github.com/jarvis2f/telegram-files","last_synced_at":"2025-04-15T08:37:19.215Z","repository":{"id":269120562,"uuid":"906490557","full_name":"jarvis2f/telegram-files","owner":"jarvis2f","description":"A self-hosted Telegram file downloader for continuous, stable, and unattended downloads.","archived":false,"fork":false,"pushed_at":"2025-04-03T07:44:47.000Z","size":57829,"stargazers_count":1299,"open_issues_count":14,"forks_count":76,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-08T01:34:10.153Z","etag":null,"topics":["docker","downloader","nextjs","self-hosted","shadcn-ui","tdlib","telegram","unraid","vertx"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jarvis2f.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2024-12-21T03:49:33.000Z","updated_at":"2025-04-07T18:24:48.000Z","dependencies_parsed_at":"2024-12-21T04:29:38.998Z","dependency_job_id":"aaac18ba-1660-481f-a8c9-78116d1da29d","html_url":"https://github.com/jarvis2f/telegram-files","commit_stats":null,"previous_names":["jarvis2f/telegram-files"],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarvis2f%2Ftelegram-files","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarvis2f%2Ftelegram-files/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarvis2f%2Ftelegram-files/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jarvis2f%2Ftelegram-files/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jarvis2f","download_url":"https://codeload.github.com/jarvis2f/telegram-files/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249038437,"owners_count":21202702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["docker","downloader","nextjs","self-hosted","shadcn-ui","tdlib","telegram","unraid","vertx"],"created_at":"2025-01-06T13:00:46.536Z","updated_at":"2025-04-15T08:37:19.194Z","avatar_url":"https://github.com/jarvis2f.png","language":"Java","funding_links":[],"categories":["Java"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./web/public/favicon.svg\" align=\"center\" width=\"30%\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\u003ch1 align=\"center\"\u003eTelegram Files\u003c/h1\u003e\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\t\u003cem\u003e\u003ccode\u003eA self-hosted Telegram file downloader for continuous, stable, and unattended downloads.\u003c/code\u003e\u003c/em\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n\t\u003cimg src=\"https://img.shields.io/github/license/jarvis2f/telegram-files?style=default\u0026logo=opensourceinitiative\u0026logoColor=white\u0026color=0080ff\" alt=\"license\"\u003e\n\t\u003cimg src=\"https://img.shields.io/github/last-commit/jarvis2f/telegram-files?style=default\u0026logo=git\u0026logoColor=white\u0026color=0080ff\" alt=\"last-commit\"\u003e\n\t\u003cimg src=\"https://img.shields.io/github/v/release/jarvis2f/telegram-files?style=default\u0026logo=git\u0026logoColor=white\u0026color=0080ff\" alt=\"release\"\u003e\n    \u003ca href=\"https://codecov.io/gh/jarvis2f/telegram-files\" \u003e \n        \u003cimg src=\"https://codecov.io/gh/jarvis2f/telegram-files/graph/badge.svg?token=Y4YN2W8ARV\"/\u003e \n    \u003c/a\u003e\n\u003c/p\u003e\n\u003cbr\u003e\n\n## 🔗 Table of Contents\n\n- [📍 Overview](#-overview)\n- [🧩 Screenshots](#-screenshots)\n- [🚀 Getting Started](#-getting-started)\n- [⌨️ Development](#️-development)\n    - [☑️ Prerequisites](#-prerequisites)\n    - [⚙️ Installation](#-installation)\n- [📌 Project Roadmap](#-project-roadmap)\n- [🔰 Contributing](#-contributing)\n- [🎗 License](#-license)\n- [🆗 FAQs](#-faqs)\n\n---\n\n## 📍 Overview\n\n* Support for downloading files from telegram channels and groups.\n* Support multiple telegram accounts for downloading files.\n* Support suspending and resuming downloads, and auto transfer files to other destinations.\n* Preview of downloaded videos and pictures.\n* Responsive design supports mobile access, PWAs, and offline access.\n\n---\n\n## 🧩 Screenshots\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./misc/preview-files-pc.gif\" width=\"70%\"\u003e\n    \u003cimg src=\"./misc/preview-files-mobile.gif\" width=\"17.6%\"\u003e\n\u003c/div\u003e\n\n\u003cdetails closed\u003e\n\u003csummary\u003eMore Screenshots\u003c/summary\u003e\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./misc/screenshot-3.png\" align=\"center\" style=\"width: 300px; height: 500px;\"\u003e\n    \u003cimg src=\"./misc/screenshot-4.png\" align=\"center\" style=\"width: 300px; height: 500px;\"\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./misc/screenshot.png\" align=\"center\" width=\"40%\"\u003e\n    \u003cimg src=\"./misc/screenshot-2.png\" align=\"center\" width=\"40%\"\u003e\n\u003c/div\u003e\n\u003c/details\u003e\n\n## 🚀 Getting Started\n\nBefore getting started with telegram-files, you should apply a telegram api id and hash. You can apply for it on\nthe [Telegram API](https://my.telegram.org/apps) page.\n\n**Using `docker`**\n\u0026nbsp; [\u003cimg align=\"center\" src=\"https://img.shields.io/badge/Docker-2CA5E0.svg?style={badge_style}\u0026logo=docker\u0026logoColor=white\" /\u003e](https://www.docker.com/)\n\n```shell\ndocker run -d \\\n  --name telegram-files \\\n  --restart always \\\n  -e APP_ENV=${APP_ENV:-prod} \\\n  -e APP_ROOT=${APP_ROOT:-/app/data} \\\n  -e TELEGRAM_API_ID=${TELEGRAM_API_ID} \\\n  -e TELEGRAM_API_HASH=${TELEGRAM_API_HASH} \\\n  -p 6543:80 \\\n  -v ./data:/app/data \\\n  ghcr.io/jarvis2f/telegram-files:latest\n```\n\n**Using `docker-compose`**\n\nCopy [docker-compose.yaml](docker-compose.yaml) and [.env.example](.env.example) to your project directory and run the following command:\n\n```sh\ndocker-compose up -d\n```\n\n**Install on unRaid**\n\nOn unRaid, install from the Community Repositories by searching for `telegram-files`.\n\n\u003e **Important Note:** You should NOT expose the service to the public internet. Because the service is not secure.\n\n---\n\n## ⌨️ Development\n\n### ☑️ Prerequisites\n\nBefore getting started with telegram-files, ensure your runtime environment meets the following requirements:\n\n- **Programming Language:** JDK21,TypeScript\n- **Package Manager:** Gradle,Npm\n- **Container Runtime:** Docker\n\n### ⚙️ Installation\n\nInstall telegram-files using one of the following methods:\n\n**Build from source:**\n\n1. Clone the telegram-files repository:\n\n```sh\ngit clone https://github.com/jarvis2f/telegram-files\n```\n\n2. Navigate to the project directory:\n\n```sh\ncd telegram-files\n```\n\n3. Install the project dependencies:\n\n**Using `npm`**\n\u0026nbsp; [\u003cimg align=\"center\" src=\"https://img.shields.io/badge/npm-CB3837.svg?style={badge_style}\u0026logo=npm\u0026logoColor=white\" /\u003e](https://www.npmjs.com/)\n\n```sh\ncd web\nnpm install\n```\n\n**Using `gradle`**\n\u0026nbsp; [\u003cimg align=\"center\" src=\"https://img.shields.io/badge/Gradle-02303A.svg?style={badge_style}\u0026logo=gradle\u0026logoColor=white\" /\u003e](https://gradle.org/)\n\n```sh\ncd api\ngradle build\n```\n\n**Using `docker`**\n\u0026nbsp; [\u003cimg align=\"center\" src=\"https://img.shields.io/badge/Docker-2CA5E0.svg?style={badge_style}\u0026logo=docker\u0026logoColor=white\" /\u003e](https://www.docker.com/)\n\n```sh\ndocker build -t jarvis2f/telegram-files .\n```\n\n## 📌 Project Roadmap\n\n- ✅ **`Task 1`**: Automatically download files based on set rules.\n- ✅ **`Task 2`**: Download statistics and reports.\n- ✅ **`Task 3`**: Improve Telegram’s login functionality.\n- ✅ **`Task 4`**: Support auto transfer files to other destinations.\n- ✅ **`Task 5`**: File table is optimized using virtual lists.\n- ✅ **`Task 6`**: Preload file information to support responsible searches.\n\n---\n\n## 🔰 Contributing\n\n- **💬 [Join the Discussions](https://github.com/jarvis2f/telegram-files/discussions)**: Share your insights, provide\n  feedback, or ask questions.\n- **🐛 [Report Issues](https://github.com/jarvis2f/telegram-files/issues)**: Submit bugs found or log feature requests\n  for the `telegram-files` project.\n- **💡 [Submit Pull Requests](https://github.com/jarvis2f/telegram-files/blob/main/CONTRIBUTING.md)**: Review open PRs,\n  and submit your own PRs.\n\n\u003cdetails closed\u003e\n\u003csummary\u003eContributing Guidelines\u003c/summary\u003e\n\n1. **Fork the Repository**: Start by forking the project repository to your github account.\n2. **Clone Locally**: Clone the forked repository to your local machine using a git client.\n   ```sh\n   git clone https://github.com/jarvis2f/telegram-files\n   ```\n3. **Create a New Branch**: Always work on a new branch, giving it a descriptive name.\n   ```sh\n   git checkout -b new-feature-x\n   ```\n4. **Make Your Changes**: Develop and test your changes locally.\n5. **Commit Your Changes**: Commit with a clear message describing your updates.\n   ```sh\n   git commit -m 'Implemented new feature x.'\n   ```\n6. **Push to github**: Push the changes to your forked repository.\n   ```sh\n   git push origin new-feature-x\n   ```\n7. **Submit a Pull Request**: Create a PR against the original project repository. Clearly describe the changes and\n   their motivations.\n8. **Review**: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your\n   contribution!\n\n\u003c/details\u003e\n\n---\n\n## 🎗 License\n\nThis project is protected under the MIT License. For more details,\nrefer to the [LICENSE](LICENSE) file.\n\n---\n\n## 🆗 FAQs\n\n~~**Q.** Can't start the api server, error：`java.lang.UnsatisfiedLinkError: no tdjni in java.library.path`~~\n\n~~**A.** Maybe download tdlib failed, you can see the [entrypoint.sh](entrypoint.sh) file, then download tdlib\nmanually.~~\n\n**Q.** Web's spoiler is static, how to solve it?\n\n**A.** 1. Because `CSS Houdini Paint API` is not supported by all browsers. 2. It is only supported on https.\n\u003cdetails closed\u003e\n\u003csummary\u003eUse in http environment, you can use the following method to solve it\u003c/summary\u003e\n\nOpen the `chrome://flags` page, search for `Insecure origins treated as secure`, and add the address of the web page to\nthe list.\n\u003c/details\u003e\n\n**Q.** How to use the telegram-files maintenance tool?\n\n**A.** You can use the following command to run the maintenance tool(**before running the command, you should stop telegram-files container**):\n\u003cdetails closed\u003e\n\u003csummary\u003eCommand\u003c/summary\u003e\n\n```shell\ndocker run --rm \\\n  --entrypoint tfm \\\n  -v $(pwd)/data:/app/data \\\n  -e APP_ROOT=${APP_ROOT:-/app/data} \\\n  -e TELEGRAM_API_ID=${TELEGRAM_API_ID} \\\n  -e TELEGRAM_API_HASH=${TELEGRAM_API_HASH} \\\n  ghcr.io/jarvis2f/telegram-files:latest ${Maintenance Command}\n```\n\n**Maintenance Command:**\n\n- `album-caption`: Fixed issue with missing caption for album messages before `0.1.15`.\n- `thumbnail`: Fixed issue with missing clear thumbnail.\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjarvis2f%2Ftelegram-files","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjarvis2f%2Ftelegram-files","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjarvis2f%2Ftelegram-files/lists"}