{"id":20829853,"url":"https://github.com/raffaelecalza/transmission-telegram-bot","last_synced_at":"2025-09-03T23:39:51.158Z","repository":{"id":38271895,"uuid":"62660808","full_name":"raffaelecalza/transmission-telegram-bot","owner":"raffaelecalza","description":"🤖 Simple telegram bot that controls the status of your torrents","archived":false,"fork":false,"pushed_at":"2020-10-06T02:21:42.000Z","size":3613,"stargazers_count":43,"open_issues_count":3,"forks_count":12,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-07T22:11:23.237Z","etag":null,"topics":["javascript","nodejs","telegram-bot","torrent","transmission"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/raffaelecalza.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}},"created_at":"2016-07-05T18:41:42.000Z","updated_at":"2023-09-18T12:28:44.000Z","dependencies_parsed_at":"2022-08-09T04:31:08.985Z","dependency_job_id":null,"html_url":"https://github.com/raffaelecalza/transmission-telegram-bot","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/raffaelecalza/transmission-telegram-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raffaelecalza%2Ftransmission-telegram-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raffaelecalza%2Ftransmission-telegram-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raffaelecalza%2Ftransmission-telegram-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raffaelecalza%2Ftransmission-telegram-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raffaelecalza","download_url":"https://codeload.github.com/raffaelecalza/transmission-telegram-bot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raffaelecalza%2Ftransmission-telegram-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273529034,"owners_count":25121822,"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","status":"online","status_checked_at":"2025-09-03T02:00:09.631Z","response_time":76,"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":["javascript","nodejs","telegram-bot","torrent","transmission"],"created_at":"2024-11-17T23:22:20.944Z","updated_at":"2025-09-03T23:39:51.137Z","avatar_url":"https://github.com/raffaelecalza.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"https://github.com/raffaelecalza/transmission-telegram-bot/blob/master/logo/transmission-bot.png?raw=true\" alt=\"WebTorrent\" width=\"200\"\u003e\n  \u003cbr\u003e\n  Transmission Bot for Telegram\n  \u003cbr\u003e\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003eDo you like the project? \u003ca href=\"http://bit.ly/transmission-bot\"\u003eBuy me a coffee or a beer 🍻\u003c/a\u003e\u003c/p\u003e\nSo, you want to controll your torrent status from anywhere in the world, but you don't know how to do this, right? Here is the solution, this is a simple telegram bot that allows you to check the status of your torrents, add, stop, remove, briefly these are all the basic actions that you do with the program or web interface.\n\n#### Summary:\n* [List of available commands](#available-commands)\n* [How to install it](#how-to-install-it)\n* [Note](#note)\n* [Bugs, support and suggestions](#report-bugs-or-suggestions)\n\n## Available commands\n* \u003cb\u003eList of all torrents\u003c/b\u003e;\n* \u003cb\u003eTorrent status\u003c/b\u003e - Get all details about a torrent;\n* \u003cb\u003eTorrent start\u003c/b\u003e - Restart a torrent that is paused;\n* \u003cb\u003eTorrent stop\u003c/b\u003e - Stop a torrent;\n* \u003cb\u003eTorrent remove\u003c/b\u003e - Remove a torrent;\n* \u003cb\u003eAdd torrent\u003c/b\u003e - Add a torrent from a \u003ccode\u003e.torrent\u003c/code\u003e file or from an url;\n\n## How to install it\nClone the repository with \u003ccode\u003egit clone https://github.com/raffaelecalza/transmission-telegram-bot.git\u003c/code\u003e or download it as a zip file from [here](https://github.com/raffaelecalza/transmission-telegram-bot/releases/latest).\n### 1) Register your bot name\nFirst of all you have to register your bot's name. To do this, begin a new chat to \u003cb\u003e@BotFather\u003c/b\u003e. Send \u003ccode\u003e/newbot\u003c/code\u003e command. Then send  to him the name of your bot (e.g. My Wonderful Bot). Then send a username for the bot (NOTE: this must end with the word 'bot'), e.g. MyWonderfulBot. After that the Bot Father will send you a message that contains the TOKEN for the bot. Save it because in the fourth step we'll use it.\u003cbr /\u003e\n\u003cimg src=\"https://github.com/raffaelecalza/transmission-telegram-bot/blob/master/screenshot/1.jpg?raw=true\" width=\"33%\" /\u003e \u003cimg src=\"https://github.com/raffaelecalza/transmission-telegram-bot/blob/master/screenshot/2.jpg?raw=true\" width=\"33%\" /\u003e \u003cimg src=\"https://github.com/raffaelecalza/transmission-telegram-bot/blob/master/screenshot/3.jpg?raw=true\" width=\"33%\" /\u003e\n\n### 2) Set bot commands (Optional)\nThis step is optional because the bot has a custom keyboard, but I suggest you to set the commands.\nAfter you have register your bot and take the token you have to send to BotFather the full list of commands. Use the \u003ccode\u003e/setcommands\u003c/code\u003e and send this string to BotFather:\u003cbr /\u003e\n```\ntorrentlist - Get the list of all torrents\ntorrentstatus - Get all details about a torrent\ntorrentadd - Add a torrent from url\ntorrentstart - Start a paused torrent\ntorrentstop - Stop a torrent\ntorrentremove - Remove a torrent\nsettings - Set your preferences\nhelp - Get the list of available commands\n```\n\u003ch4 align=\"center\"\u003e\u003cimg src=\"https://github.com/raffaelecalza/transmission-telegram-bot/blob/master/screenshot/4.jpg?raw=true\" width=\"33%\" /\u003e\u003c/h4\u003e\n\n### 3) Install NodeJS, NPM and PM2\nGo to the [next step](#4-configure-your-bot) if you have already installed NodeJS, NPM and PM2.\n#### Install NodeJS and NPM\nFor Windows and OSX go to NodeJS site and download the installer (https://nodejs.org/en/download/). This also will install NPM.\n\nFor linux users, follow this guide (https://nodejs.org/en/download/package-manager/).\n#### Install all project dependencies\nOpen up a terminal, go to your bot's folder and then run \u003ccode\u003enpm install\u003c/code\u003e.\n#### Install PM2\nFor running your bot forever and as a daemon, you have to install a simple library called PM2 - Process Manager 2. So, Open a console and type \u003ccode\u003esudo npm install -g pm2\u003c/code\u003e. If everything goes right try to type this command in the terminal \u003ccode\u003epm2 status\u003c/code\u003e, and you should see an empty list of applications.\n### 4) Configure your bot\nNow, open the config.json file with a text editor. Replace the token string with your bot's token. If you already know your chats id insert it in the array.\nIn the transmission section, insert the ip address of the computer where transmission is installed (localhost if the bot runs in the same machine). Insert your username and password if you've set it, otherwise leave this fileds empty (don't delete them). The last step is to specify the number of the port (if you have changed it).\n```javascript\n{\n  \"bot\": {\n      \"token\": \"your bot's token\",\n      \"users\": [000000, 000000, 2222222]\n  },\n  \"transmission\": {\n      \"address\": \"your ip address\",\n      \"credentials\": {\n          \"username\": \"leave this empty if you doesn't have a username\",\n          \"password\": \"leave this empty if you doesn't have a password\"\n      },\n      \"port\": 9091\n  }\n}\n```\nIf you don't know your chat id, open a terminal and go to your bot repo's folder, open the \u003ccode\u003ebot/\u003c/code\u003e folder then start your bot (after have installed all packages in the 3 step) with the command \u003ccode\u003enode bot.js\u003c/code\u003e. Try to send a message to your bot, you'll see in the console your chat id, hit \u003ccode\u003eCtrl + C\u003c/code\u003e to stop the bot and insert your chat id in the config file.\u003cbr /\u003e\n**NOTE: you must have inserted at least the bot token in the config file but i recommend you to configure also Transmission before running your bot.**\n\u003ch4 align=\"center\"\u003e\u003cimg src=\"https://github.com/raffaelecalza/transmission-telegram-bot/blob/master/screenshot/5.gif?raw=true\" /\u003e\u003c/h4\u003e\n\n### 5) Run your bot\nNow you haven't to wait anymore, go to your bot folder and type \u003ccode\u003epm2 start bot.js\u003c/code\u003e. Then your bot will start in background.\n\n## NOTE\nIf you shutdown or reboot your PC, PM2 will stop your application so you have to re-run your bot every time with the command \u003ccode\u003epm2 start bot.js\u003c/code\u003e.\n## Report bugs or suggestions\nIf you have discovered a bug or if you have a suggestion, please open an issue or send me an email (raffaelecalza4@gmail.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraffaelecalza%2Ftransmission-telegram-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraffaelecalza%2Ftransmission-telegram-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraffaelecalza%2Ftransmission-telegram-bot/lists"}