{"id":49565295,"url":"https://github.com/saecki/ts3musicbot","last_synced_at":"2026-05-05T20:34:26.195Z","repository":{"id":121694204,"uuid":"197416875","full_name":"saecki/ts3musicbot","owner":"saecki","description":"A musicbot for Teamspeak which uses VLC to directly stream audio from YouTube.","archived":false,"fork":false,"pushed_at":"2021-02-27T05:00:56.000Z","size":195,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-25T08:38:26.132Z","etag":null,"topics":["musicbot","teamspeak","teamspeak3","teamspeak3-bot","vlc","youtube"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saecki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2019-07-17T15:32:32.000Z","updated_at":"2025-10-08T06:52:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"3c615580-500b-4427-ac31-74828c8e3166","html_url":"https://github.com/saecki/ts3musicbot","commit_stats":null,"previous_names":["saecki/ts3musicbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/saecki/ts3musicbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saecki%2Fts3musicbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saecki%2Fts3musicbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saecki%2Fts3musicbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saecki%2Fts3musicbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saecki","download_url":"https://codeload.github.com/saecki/ts3musicbot/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saecki%2Fts3musicbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32567189,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["musicbot","teamspeak","teamspeak3","teamspeak3-bot","vlc","youtube"],"created_at":"2026-05-03T11:32:01.811Z","updated_at":"2026-05-03T11:32:02.490Z","avatar_url":"https://github.com/saecki.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ts3musicbot\nA musicbot for Teamspeak which uses VLC to directly stream audio from YouTube.\n\n\n## Table of Content\n- [Command Line Interface](#command-line-interface)\n    - [Usage](#usage)\n    - [Syntax](#syntax)\n    - [Prefixes](#prefixes)\n    - [Commands](#commands)\n    - [Short Forms](#short-forms)\n    - [Examples](#examples)\n        - [Teamspeak](#teamspeak)\n        - [Terminal](#terminal)\n- [Startup Parameters](#startup-parameters)\n- [Dependencies](#dependencies)\n- [Setup](#setup)\n\n## Command Line Interface\n\n### Usage\nTo control the bot on teamspeak send a command to the the bot or a channel it is currently inside.  \n\n### Syntax\nCommands are built upon a structure.\nA command starts with a keyword and can be followed up by certain arguments seperated with spaces which further specify the behavior of the command.  \nArguments on their own can require values, if so they will end with a colon and the values will need to be specified behind them, seperated by spaces aswell.  \nDepending on the platform commands can have prefixes to which the command keywords are simply appended.  \n\nAn example command for teamspeak could look like this:  \n```!command arg1: value1 arg2 arg3: value3```\n\n### Prefixes\n| Plattform | Prefix |\n| ---       | --- |\n| Teamspeak | ! or : |\n| Terminal  | ```None``` |\n\n### Commands \n| Function                                                    | Command |\n| ---                                                         | --- |\n| adding a song to the queue                                  | ```prefix```play ```song*``` |\n| playing a song right after the current song                 | ```prefix```playnext ```song*``` |\n| playing a song right now                                    | ```prefix```playnow ```song*``` |\n| playing a song at a certain index in the queue              | ```prefix```playqueue ```index``` |\n| resuming the song                                           | ```prefix```play |\n| removing the song at a certain index                        | ```prefix```remove ```index``` |\n| removing the next song                                      | ```prefix```removenext |\n| removing the current song                                   | ```prefix```removecurrent |\n| pausing the song                                            | ```prefix```pause |\n| toggling the playback state                                 | ```prefix```toggle |\n| playing the next song                                       | ```prefix```next |\n| playing the previous song                                   | ```prefix```prev |\n| stopping the song                                           | ```prefix```stop |\n| clearing the queue                                          | ```prefix```clear |\n| repeating one song                                          | ```prefix```repeat |\n| repeating all songs                                         | ```prefix```repeat all |\n| stop repeating                                              | ```prefix```repeat stop |\n| shuffling the queue                                         | ```prefix```shuffle |\n| listing the queue                                           | ```prefix```list |\n| setting the playback position in percent                    | ```prefix```position ```value```|\n| adding a value to the position                              | ```prefix```position ```+value```|\n| subtracting a value from the position                       | ```prefix```position ```-value```|\n| setting the playback speed in percent                       | ```prefix```speed ```value```|\n| adding a value to the speed                                 | ```prefix```speed ```+value```|\n| subtracting a value from the speed                          | ```prefix```speed ```-value```|\n| setting the volume to a value between 0 to 120              | ```prefix```volume ```value```|\n| adding a value to the volume                                | ```prefix```volume ```+value```|\n| subtracting a value from the volume                         | ```prefix```volume ```-value```|\n|                                                             |\n| creating a playlist                                         | ```prefix```playlist create: ```name``` |\n| creating a playlist from the queue                          | ```prefix```playlist create: ```name``` from: queue |\n| creating a playlist from another playlist                   | ```prefix```playlist create: ```name``` from: ```playlist``` |\n| deleteting a playlist                                       | ```prefix```playlist delete: ```name``` |\n| adding a song to a playlist                                 | ```prefix```playlist add: ```song*``` to: ```name``` |\n| adding a song at a certain index of the queue to a playlist | ```prefix```playlist add: ```index``` to: ```name``` |\n| adding the current song to a playlist                       | ```prefix```playlist add: currentsong to: ```name``` |\n| adding the queue to a playlist                              | ```prefix```playlist add: queue to: ```name``` |\n| adding a playlist to another playlist                       | ```prefix```playlist add: ```playlist``` to: ```name``` |\n| removing a song at a certain index from a playlist          | ```prefix```playlist remove: ```index``` from: ```name``` |\n| adding the playlist to the queue                            | ```prefix```playlist queue: ```name``` |\n| replacing the queue with a playlist                         | ```prefix```playlist play: ```name``` |\n| shuffling a playlist                                        | ```prefix```playlist shuffle: ```name``` |\n| clearing a playlist                                         | ```prefix```playlist clear: ```name``` |\n| listing all playlists                                       | ```prefix```playlist list: all |\n| listing a playlist                                          | ```prefix```playlist list: ```name``` |\n|                                                             |\n| make the bot join your channel                              | ```prefix```comeover |\n\n\\* songs can be youtube urls or just text which will be used to search a song on youtube\n\n### Short Forms\n| Command       | Short Form |\n| ---           | --- |\n| play          | pl |\n| playnext      | pnx |\n| playnow       | pnw |\n| playqueue     | pq |\n| remove        | rm |\n| removenext    | rn |\n| removecurrent | rc |\n| pause         | pa |\n| toggle        | tg |\n| next          | nx |\n| prev          | pr |\n| stop          | st |\n| clear         | cl |\n| shuffle       | sh |\n| repeat        | rp |\n| list          | ls |\n| position      | ps |\n| speed         | sp |\n| volume        | vl |\n| playlist      | pll |\n| comeover      | co |\n\n| Argument | Short Form |\n| ---      | --- |\n| create:  | cr: |\n| delete:  | dl: |\n| add:     | ad: |\n| remove:  | rm: |\n| play:    | pl: |\n| queue:   | qu: |\n| shuffle: | sh: |\n| clear:   | cl: |\n| list:    | ls: |\n| from:    | fr: |\n\n| Argument Values | Short Form |\n| ---             | --- |\n| all             | a |\n| stop            | s |\n| queue           | q |\n| currentsong     | cs |\n\n### Examples\n\n#### Teamspeak\n- **Play Owl City - Fireflies from YouTube:**  \n  \n  by the automatic search function  \n  ```!play owl city fireflies```  \n  \n  by directly providing a YouTube URL  \n  ```!play https://www.youtube.com/watch?v=psuRGfAaju4```  \n\n- **Create a playlist named myplaylist:**  \n\n  ```!playlist create: myplaylist```  \n\n- **Add a song to the playlist myplaylist:**  \n\n  ```!playlist add: https://www.youtube.com/watch?v=psuRGfAaju4 to: myplaylist```  \n\n- **Queue the playlist myplaylist:**  \n\n  ```!playlist queue: myplaylist```  \n\n#### Terminal\n\n- **Play Owl City - Fireflies from YouTube:**  \n  \n  by the automatic search function  \n  ```play owl city fireflies```  \n  \n  by directly providing a YouTube URL  \n  ```play https://www.youtube.com/watch?v=psuRGfAaju4```  \n\n- **Create a playlist named myplaylist:**  \n\n  ```playlist create: myplaylist```  \n\n- **Add a song to the playlist myplaylist:**  \n\n  ```playlist add: https://www.youtube.com/watch?v=psuRGfAaju4 to: myplaylist```  \n\n- **Queue the playlist myplaylist:**  \n\n  ```playlist queue: myplaylist```  \n\n## Startup Parameters\nThe bots functionality is provided by modules which can be enabled through startup parameters.  \nThese parameters have to be specified after the main.py file when executing.  \nAn example could look like this:  \n```python3 main.py ctz```\n\n| Module    | Parameter | Function |\n| ---       | ---       | --- |\n| CLI       | c         | provides a direct command line interface in the terminal |\n| Teamspeak | t         | provides a command line interface through teamspeak chat messages |\n| ZMQ       | z         | provides a command line interface through a zmq server which can be locally accessed through the zmqinterface.py script in the tools dir |\n| Debug     | d         | provides debug functionality and logs |\n| Silent    | s         | writes all text output to a log file |\n\n## Dependencies\n- [Python 3.7](https://www.python.org/downloads/)\n    - [requirements.txt](https://github.com/Saecki/ts3musicbot-git/blob/master/requirements.txt)\n- [TeamSpeak 3 client](https://www.teamspeak.com/en/downloads/)\n    - [ClientQuery plugin](https://www.myteamspeak.com/addons/943dd816-7ef2-48d7-82b8-d60c3b9b10b3)\n- [VLC media player 3.0](https://www.videolan.org/vlc/)\n- [VB-CABLE](https://www.vb-audio.com/Cable/) (or another app for routing audio as an input to teamspeak)\n\n## Setup\n- Clone or download ts3musicbot-git\n- Download and install Python, TeamSpeak, VLC media player and VB-CABLE\n- Navigate into the ts3musicbot-git/ts3musicbot directory that you've downloaded and install all python dependencies by executing the command: ```pip3 install -r requirements.txt```.\n- Install the ClientQuery plugin in TeamSpeak directly by going to: Tools - Options - Addons - Browse online and then searching ClientQuery and installing it\n- Start the bot once by executing the main.py file in the ts3musicbot dir which will create the data folder inside it with a config file and then close it.\n- Open the config.json file and fill in the apikey which can be found in your teamspeak client at: tools - options - addons - clientquery - settings.\n- Optionally change the nickname of the bot and add a default server address aswell as a teamspeak path to automatically start teamspeak.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaecki%2Fts3musicbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaecki%2Fts3musicbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaecki%2Fts3musicbot/lists"}