Skip to content

Releases: jumpers775/Tempo

Tempo 2.0.0 Major Release

22 Jul 02:13
Compare
Choose a tag to compare

Release Message 2.0.0:

I rewrote the whole thing from the ground up. The new release is much more stable and much more extensible, which will allow for some really cool things im planning. First off adding support for new backends (eg youtube, spotify) is now really easy and can be done without knowledge of how the bot works. I have also laid the foundations for voice commands. While this isnt in this release, it will be in the next feature release as most of the work is already done. I have also setup conda so dependencies can be dealt with in a more robust manner. Hopefully not much will change from the users perspective other than the commands which have been reorganized and future updates will improve stability and ability greatly. As always if you experience bugs, want a feature, or are missing one from a previous release let me know on github issues.

Updating

If you are updating to a 2.x.x release from a 1.x.x release you will need to just reinstall. This is because the dependency and database systems have completely changed making it impossible to update. Updates within major versions will never have this issue.

If you are already on a 2.x.x release simply git pull and conda env update -f environment.yml and your good to go.

Instructions:

  1. Install miniconda and git.
  2. Clone this repo and cd into it:
    • git clone https://github.com/jumpers775/Tempo
    • cd Tempo
  3. Install the dependencies:
    • Install espeak
      • If you are on windows you must also follow the instructions here
    • conda env create -f environment.yml
    • conda activate Tempo
  4. Get your bot key ready. If you dont know how:
    1. Go to the Discord developer portal in your web browser.
    2. Sign in, then select New Application
    3. Create the Application (give it a name etc)
    4. Enable Message Content Intent as well as Server Members Intent in the Privileged Gateway Intents category in the Bot section
    5. Click on Reset Token in the Bot section and copy it
  5. In your terminal under the Tempo directory run python bot.py.
  6. It will tell you if there is an update available. If there is, it is recommended to update it.
  7. It will ask for your token, give it your token.
  8. It will run and tell you when it is online.
  9. Invite it to a server. If you dont know how:
    1. Go back to your bot on the Discord developer portal
    2. In General Information copy the Application ID.
    3. Go to the discord bot invite link generator
    4. Paste your Application ID into the Client ID field
    5. Enable the View Channels, Send Messages, Use Application Commands, Connect, and Speak permissions
    6. Click the link at the bottom and add it to a server
  10. In one server it is in put $sync in chat. The bot will sync its slash commands with discord, and will eventually be visible (this is usually fast but can take some time. To do it immediately for one server run $sync ~. This will result in duplicate commands in that server.)

What is in the bot:

  • Basic stop and skip commands
  • Audio streaming from:
    • Youtube (default)
    • Spotify (can be enabled. requires a premium account, so users must provide their username/password)
    • Anything else you may find a backend for (I only provide Youtube and Spotify)
  • Song search from your audio provider
  • Scaleable storage (sqlite3)
  • Fully featured queue system with the following:
    • Song rearrangment
    • Song removal
    • Shuffle
    • Song addition
    • looping
  • Intuitive UI utilizing Discord-bot specific UI features
  • Update notifications on launch
  • Global platform key support (disabled by default, can be set to any supported platform)
  • Update DMs
  • playlists

Future To-Do list:

  • Import playlists from youtube
  • import playlist from spotify (regression, may be included in a minor release)
  • Make UI even better!
  • Publicly host the bot myself
  • Include systemd service for autostart under linux (just need to pretty it up)
  • Remove need for message content intent
  • remove need for espeak to be installed

Full Changelog: 1.1.4...1.2.0

Tempo 1.2.0 Release

21 Dec 22:23
2c4f147
Compare
Choose a tag to compare

Release Message 1.2.1:

The inevitable bugfix release. Thankfully this cycle had much fewer bugs than I expected for such a major change. Playlists required a significant refactoring of multiple sections as well as a lot of new code, 766 lines to be exact. After a lot of use and testing I was only able to find one bug which mattered; Sometimes when playing a playlist librespot would fail to authenticate and the playlist would fail to play, and the bot would not leave meaning new songs could not be played without waiting or manually disconnecting it. This is now fixed. As always feel free to open a bug report if you find any more!

Release Message 1.2.0:

With this release I have full playlist support, as well as some bugfixes. you can now create, modify, and delete playlists, as well as import playlists from spotify. I have also fixed a bug surrounding queues length 25+. This will be the last release of the 1.x.x line (except perhaps a minor update for YT playlists or smth like that.) Expect a 2.0 release within the coming months including support for plugins for more backends than yt and spotify, a better UI, and some fun (completely local, and optional) AI voice controls.

Updating

Just drag and drop the new bot.py on top of the old one (replace it) then run $sync in your server.

Instructions:

  1. Install the dependencies.
    1. If you are on windows or MacOS go Download Python. If you are on linux figure it out.
    2. In your terminal run python3 -m ensurepip to make sure pip is installed.
    3. In your terminal run pip install pynacl discord asyncio youtube_search yt-dlp python-dotenv git+https://github.com/kokarare1212/librespot-python spotipy aiohttp
    4. If you are on windows download sqlite3. MacOS has this preinstalled. Linux guys can figure this out too.
    5. If you are on windows or MacOS download ffmpeg. Once again if you use linux: figure it out.
  2. Download the attached source code .zip file and unzip wherever you would like.
  3. Get your bot key ready. If you dont know how:
    1. Go to the Discord developer portal in your web browser.
    2. Sign in, then select New Application
    3. Create the Application (give it a name etc)
    4. Enable Message Content Intent as well as Server Members Intent in the Privileged Gateway Intents category in the Bot section
    5. Click on Reset Token in the Bot section and copy it
  4. In your terminal under the directory of the unzipped code folder run python3 bot.py.
  5. It will tell you if there is an update available. If there is, update it
  6. It will ask for your token, give it your token
  7. It will run and tell you when it is online.
  8. Invite it to a server. If you dont know how:
    1. Go back to your bot on the Discord developer portal
    2. In General Information copy the Application ID.
    3. Go to the discord bot invite link generator
    4. Paste your Application ID into the Client ID field
    5. Enable the View Channels, Send Messages, Use Application Commands, Connect, and Speak permissions
    6. Click the link at the bottom and add it to a server
  9. In one server it is in put $sync in chat. The bot will sync its slash commands with discord, and will eventually be visible (this is usually fast but can take some time. To do it immediately for one server run $sync ~. This can result in duplicate commands in that server.)

What is in the bot:

  • Basic stop and skip commands
  • Audio streaming from:
    • Youtube (default)
    • Spotify (can be enabled. requires a premium account, so users must provide their username/password)
  • Song search from your audio provider
  • Scaleable storage (sqlite3)
  • Fully featured queue system with the following:
    • Song rearrangment
    • Song removal
    • Shuffle
    • Song addition
  • Intuitive UI utilizing Discord-bot specific UI features
  • Update notifications on launch
  • Global Spotify key support (disabled by default)
  • Update DMs
  • User spotify account trusting (add friends to your account)
  • loop support
  • playlists
  • Import playlists from a linked spotify account

Future To-Do list:

  • Import playlists from youtube
  • Make UI even better!
  • Publicly host the bot myself
  • Include systemd service for autostart under linux (just need to pretty it up)
  • Remove need for message content intent

Full Changelog: 1.1.4...1.2.0

Tempo 1.1.4 Release

21 Nov 23:04
37476a5
Compare
Choose a tag to compare

Release Message 1.1.1, 1.1.2, 1.1.3, and 1.1.4:

Small bugfixes. I messed up the initial release by forgetting the code to update the database (very important), this is now fixed. Additionally a minimum of python 3.12 was required, this has been resolved and 3.10 up have been tested. On top of that a bug which would result in failure to run every launch has been fixed. finally the version number has now been bumped properly. This release is now actually ready.

Release Message 1.1.0:

I have added a bit more polish and some needed bugfixes, as well as a few features! You can now add a user to your spotify account, enable a global spotify account, DM the bot owner when updates are available (checks hourly), and set settings for those. loop and play/pause have also been added.

Updating

Just drag and drop the new bot.py on top of the old one (replace it) then run $sync in your server.

Instructions:

  1. Install the dependencies.
    1. If you are on windows or MacOS go Download Python. If you are on linux figure it out.
    2. In your terminal run python3 -m ensurepip to make sure pip is installed.
    3. In your terminal run pip install pynacl discord asyncio youtube_search yt-dlp python-dotenv git+https://github.com/kokarare1212/librespot-python spotipy aiohttp
    4. If you are on windows download sqlite3. MacOS has this preinstalled. Linux guys can figure this out too.
    5. If you are on windows or MacOS download ffmpeg. Once again if you use linux: figure it out.
  2. Download the attached source code .zip file and unzip wherever you would like.
  3. Get your bot key ready. If you dont know how:
    1. Go to the Discord developer portal in your web browser.
    2. Sign in, then select New Application
    3. Create the Application (give it a name etc)
    4. Enable Message Content Intent as well as Server Members Intent in the Privileged Gateway Intents category in the Bot section
    5. Click on Reset Token in the Bot section and copy it
  4. In your terminal under the directory of the unzipped code folder run python3 bot.py.
  5. It will tell you if there is an update available. If there is, update it
  6. It will ask for your token, give it your token
  7. It will run and tell you when it is online.
  8. Invite it to a server. If you dont know how:
    1. Go back to your bot on the Discord developer portal
    2. In General Information copy the Application ID.
    3. Go to the discord bot invite link generator
    4. Paste your Application ID into the Client ID field
    5. Enable the View Channels, Send Messages, Use Application Commands, Connect, and Speak permissions
    6. Click the link at the bottom and add it to a server
  9. In one server it is in put $sync in chat. The bot will sync its slash commands with discord, and will eventually be visible (this is usually fast but can take some time. To do it immediately for one server run $sync ~. This can result in duplicate commands in that server.)

What is in the bot:

  • Basic stop and skip commands
  • Audio streaming from:
    • Youtube (default)
    • Spotify (can be enabled. requires a premium account, so users must provide their username/password)
  • Song search from your audio provider
  • Scaleable storage (sqlite3)
  • Fully featured queue system with the following:
    • Song rearrangment
    • Song removal
    • Shuffle
    • Song addition
  • Intuitive UI utilizing Discord-bot specific UI features
  • Update notifications on launch
  • Global Spotify key support (disabled by default)
  • Update DMs
  • User spotify account trusting (add friends to your account)

Future To-Do list:

  • Inbuilt playlist support
  • Spotify/Youtube playlist support
  • Make UI even better!
  • Publicly host the bot myself
  • Include systemd service for autostart under linux (just need to pretty it up)
  • Remove need for message content intent

Full Changelog: 1.1.2...1.1.3

Tempo 1.0.0 Release

20 Nov 05:22
d01a165
Compare
Choose a tag to compare

The initial release of Tempo. (Version 1.0.0)

I began development on this bot a year ago when I found out that rythm shut down and i needed a quick song streaming bot, and I have recently found the time to finish a few more features and add a bit more polish to the point where it is now ready for general use. I will be using semantic versioning for this project.

Instructions:

  1. Install the dependencies.
    1. If you are on windows or MacOS go Download Python. If you are on linux figure it out.
    2. In your terminal run python3 -m ensurepip to make sure pip is installed.
    3. In your terminal run pip install pynacl discord asyncio youtube_search yt-dlp python-dotenv git+https://github.com/kokarare1212/librespot-python spotipy aiohttp
    4. If you are on windows download sqlite3. MacOS has this preinstalled. Linux guys can figure this out too.
    5. If you are on windows or MacOS download ffmpeg. Once again if you use linux: figure it out.
  2. Download the attached source code .zip file and unzip wherever you would like.
  3. Get your bot key ready. If you dont know how:
    1. Go to the Discord developer portal in your web browser.
    2. Sign in, then select New Application
    3. Create the Application (give it a name etc)
    4. Enable Message Content Intent in the Privileged Gateway Intents category in the Bot section
    5. Click on Reset Token in the Bot section and copy it
  4. In your terminal under the directory of the unzipped code folder run python3 bot.py.
  5. It will tell you if there is an update available. If there is, update it
  6. It will ask for your token, give it your token
  7. It will run and tell you when it is online.
  8. Invite it to a server. If you dont know how:
    1. Go back to your bot on the Discord developer portal
    2. In General Information copy the Application ID.
    3. Go to the discord bot invite link generator
    4. Paste your Application ID into the Client ID field
    5. Enable the View Channels, Send Messages, Use Application Commands, Connect, and Speak permissions
    6. Click the link at the bottom and add it to a server
  9. In one server it is in put $sync in chat. The bot will sync its slash commands with discord, and will eventually be visible (this is usually fast but can take some time. To do it immediately for one server run $sync ~. This can result in duplicate commands in that server.)

What is in the bot:

  • Basic stop and skip commands
  • Audio streaming from:
    • Youtube (default)
    • Spotify (can be enabled. requires a premium account, so users must provide their username/password)
  • Song search from your audio provider
  • Scaleable storage (sqlite3)
  • Fully featured queue system with the following:
    • Song rearrangment
    • Song removal
    • Shuffle
    • Song addition
  • Intuitive UI utilizing Discord-bot specific UI features
  • Update notifications on launch

Future To-Do list:

  • Support global Spotify key by hoster (concurrent streams may be a limitation)
  • Inbuilt playlist support
  • Spotify/Youtube playlist support
  • Make UI even better!
  • Publicly host the bot myself
  • Include systemd service for autostart under linux (just need to pretty it up)
  • Remove need for message content intent
  • Expand update notifications to DM bot owner.