Coder Social home page Coder Social logo

teamdaisyx / daisyxmusic Goto Github PK

View Code? Open in Web Editor NEW
205.0 9.0 832.0 4.25 MB

Free and Open Source Group Voice chat music player for telegram ❤️ with button support youtube playback support

License: MIT License

Python 99.36% Dockerfile 0.24% Shell 0.40%
music-player music vc telegram daisy daisyx vcplayer download-songs play-song music-play youtube

daisyxmusic's Introduction

DAISYX MUSIC V6.0 🎵

A bot that can play music on Telegram Group and Channel Voice Chats

POWERED BY PYTGCALLS

Available on telegram as @DaisyXbot

Features 🔥

  • Thumbnail Support
  • Playlist Support
  • Current playback support
  • Showing track names when skipping
  • Zero downtime, Fully Stable
  • Youtube playback support
  • Settings panel
  • Control with buttons
  • Userbot auto join
  • Channel Music Play
  • Keyboard selection support for youtube play

🚀 Deployment

💜 Heroku

Deploy

Get pyrogram (p) SESSION from here:

Run on Repl.it

⚔ Self-hosting

# First Upgrade Your Terminal
$ sudo su (if terminal not have root access)
$ cd (if terminal not have root access)
$ apt update && apt upgrade -y
$ apt install python ffmpeg -y
$ curl -fssL https://deb.nodesource.com/setup_17.x | sudo -E bash -
$ apt install nodejs -y
$ pip3 install -U pip
$ npm i -g npm
# Now Do Git Clone
$ git clone https://github.com/TeamDaisyX/DaisyXmusic
$ cd DaisyXMusic
# Upgrade sources
# Install All Requirements 
$ pip3 install -U -r requirements.txt
# Now Edit example.env and enter your creds
$ cp example.env .env
# Now start the Bot
$ python3 -m DaisyXMusic

Commands for Group 🛠

For all in group

  • /play <song name> - play song you requested
  • /play <reply to audio> - play replied file
  • /ytplay <song name>: Directly play song via Youtube Music
  • /playlist - Show now playing list
  • /current - Show now playing
  • /song <song name> - download songs you want quickly
  • /search <query> - search videos on youtube with details
  • /video <song name> - download videos you want quickly

Admins only.

  • /player - open music player settings panel
  • /pause - pause song play
  • /resume - resume song play
  • /skip - play next song
  • /end - stop music play
  • /mute - mute song play
  • /unmute - unmute song play
  • /userbotjoin - invite assistant to your chat
  • /userbotleave - remove assistant from your chat
  • /admincache - Refresh admin list
  • /musicplayer [on/off] - Enable/Disable Music Player

Commands for Channel Music Play 🛠

For linked group admins only:

  • /cplay <song name> - play song you requested
  • /cplay <reply to link> - play replied youtube link
  • /cplay <reply to audio> - play replied file
  • /cplaylist - Show now playing list
  • /cccurrent - Show now playing
  • /cplayer - open music player settings panel
  • /cpause - pause song play
  • /cresume - resume song play
  • /cskip - play next song
  • /cend - stop music play
  • /cmute - mute song play
  • /cunmute - unmute song play
  • /userbotjoinchannel - invite assistant to your chat
  • channel is also can be used instead of c

If you donlt like to play in linked channel:

  1. Get your channel ID.
  2. Rename your group to: Channel Music: your_channel_id
  3. Add @DaisyXBot as Channel admin with full perms
  4. add helper to channel
  5. Simply send commands in your group.

Commands for Sudo Users ⚔️

  • /userbotleaveall - remove assistant from all chats
  • /gcast <reply to message> - globally brodcast replied message to all chats
  • /pmpermit [on/off] - enable/disable pmpermit message

Pmpermit

  • .a - approove someone to pm you
  • .da - disapproove someone to pm you
  • Sudo Users can execute any command in any groups

Special Credits

Inspiration

Contributors

Copyright & License 👮

DaisyXMusic is Free Software: You can use, study share and improve it at your will. Specifically you can redistribute and/or modify it under the terms of the MIT License as published by the Free Software Foundation.

Made with ♥️ by TeamDaisyX

daisyxmusic's People

Contributors

achu2234 avatar anjanamadu avatar dasunpamod avatar deshadeeth-thisarana avatar hellboy-op avatar imjanindu avatar inukaasith avatar legendxop avatar officialbemro avatar pranav-saraswat avatar roj1512 avatar rzlamrr avatar subinps avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

daisyxmusic's Issues

Bot Crashes Due To PyTgCalls Update

2021-08-11T15:11:19.398580+00:00 app[worker.1]: �[93mUpdate Available!
2021-08-11T15:11:19.398581+00:00 app[worker.1]: New PyTgCalls v0.6.1 is now available!
2021-08-11T15:11:19.398581+00:00 app[worker.1]: �[0m
2021-08-11T15:11:19.531038+00:00 app[worker.1]: Starting on port: 24859
2021-08-11T15:11:19.725332+00:00 heroku[worker.1]: Process exited with status 0
2021-08-11T15:11:19.846004+00:00 heroku[worker.1]: State changed from up to crashed

How to fix this? These are heroku logs

Read Before Opening YTDL Issue

Youtube is made for humans. not robots

and also youtube officially not allowing to download things from youtube
this is the reason behind this issue
I dont know what to do. I did the only thing i can do by adding saavn and deezer play.

If anyone have a solution. We are always open

HTTP Error 429: Too Many Requests or 402: Payment Required

These two error codes indicate that the service is blocking your IP address because of overuse. Usually this is a soft block meaning that you can gain access again after solving CAPTCHA. Just open a browser and solve a CAPTCHA the service suggests you and after that pass cookies to youtube-dl. Note that if your machine has multiple external IPs then you should also pass exactly the same IP you've used for solving CAPTCHA with --source-address. Also you may need to pass a User-Agent HTTP header of your browser with --user-agent.

If this is not the case (no CAPTCHA suggested to solve by the service) then you can contact the service and ask them to unblock your IP address, or - if you have acquired a whitelisted IP address already - use the --proxy or --source-address options to select another IP address.

ytdl-org/youtube-dl#23638

[Bug] [Not Fixed] Error while deploying

2021-09-27T15:02:17.326774+00:00 app[worker.1]: Traceback (most recent call last):
2021-09-27T15:02:17.326789+00:00 app[worker.1]: File "/usr/local/lib/python3.9/runpy.py", line 197, in _run_module_as_main
2021-09-27T15:02:17.326926+00:00 app[worker.1]: return _run_code(code, main_globals, None,
2021-09-27T15:02:17.326934+00:00 app[worker.1]: File "/usr/local/lib/python3.9/runpy.py", line 87, in _run_code
2021-09-27T15:02:17.327015+00:00 app[worker.1]: exec(code, run_globals)
2021-09-27T15:02:17.327016+00:00 app[worker.1]: File "/app/DaisyXMusic/main.py", line 37, in
2021-09-27T15:02:17.327083+00:00 app[worker.1]: bot.start()
2021-09-27T15:02:17.327085+00:00 app[worker.1]: File "/usr/local/lib/python3.9/site-packages/pyrogram/sync.py", line 56, in async_to_sync_wrap
2021-09-27T15:02:17.327160+00:00 app[worker.1]: return loop.run_until_complete(coroutine)
2021-09-27T15:02:17.327162+00:00 app[worker.1]: File "/usr/local/lib/python3.9/asyncio/base_events.py", line 642, in run_until_complete
2021-09-27T15:02:17.327338+00:00 app[worker.1]: return future.result()
2021-09-27T15:02:17.327339+00:00 app[worker.1]: File "/usr/local/lib/python3.9/site-packages/pyrogram/methods/utilities/start.py", line 68, in start
2021-09-27T15:02:17.327417+00:00 app[worker.1]: await self.initialize()
2021-09-27T15:02:17.327419+00:00 app[worker.1]: File "/usr/local/lib/python3.9/site-packages/pyrogram/methods/auth/initialize.py", line 44, in initialize
2021-09-27T15:02:17.327488+00:00 app[worker.1]: self.load_plugins()
2021-09-27T15:02:17.327490+00:00 app[worker.1]: File "/usr/local/lib/python3.9/site-packages/pyrogram/client.py", line 715, in load_plugins
2021-09-27T15:02:17.327681+00:00 app[worker.1]: module = import_module(module_path)
2021-09-27T15:02:17.327683+00:00 app[worker.1]: File "/usr/local/lib/python3.9/importlib/init.py", line 127, in import_module
2021-09-27T15:02:17.327770+00:00 app[worker.1]: return _bootstrap._gcd_import(name[level:], package, level)
2021-09-27T15:02:17.327772+00:00 app[worker.1]: File "", line 1030, in _gcd_import
2021-09-27T15:02:17.327872+00:00 app[worker.1]: File "", line 1007, in _find_and_load
2021-09-27T15:02:17.327910+00:00 app[worker.1]: File "", line 986, in _find_and_load_unlocked
2021-09-27T15:02:17.327947+00:00 app[worker.1]: File "", line 680, in _load_unlocked
2021-09-27T15:02:17.327985+00:00 app[worker.1]: File "", line 846, in exec_module
2021-09-27T15:02:17.328046+00:00 app[worker.1]: File "", line 983, in get_code
2021-09-27T15:02:17.328084+00:00 app[worker.1]: File "", line 913, in source_to_code
2021-09-27T15:02:17.328122+00:00 app[worker.1]: File "", line 228, in call_with_frames_removed
2021-09-27T15:02:17.328168+00:00 app[worker.1]: File "/app/DaisyXMusic/modules/channelplay.py", line 341
2021-09-27T15:02:17.328170+00:00 app[worker.1]: elif type
== "cmute":
2021-09-27T15:02:17.328178+00:00 app[worker.1]: ^
2021-09-27T15:02:17.328185+00:00 app[worker.1]: SyntaxError: invalid syntax
2021-09-27T15:02:17.328375+00:00 app[worker.1]: Pyrogram v1.2.9, Copyright (C) 2017-2021 Dan https://github.com/delivrance
2021-09-27T15:02:17.328376+00:00 app[worker.1]: Licensed under the terms of the GNU Lesser General Public License v3 or later (LGPLv3+)
2021-09-27T15:02:17.328376+00:00 app[worker.1]:
2021-09-27T15:02:17.616804+00:00 heroku[worker.1]: Process exited with status 1
2021-09-27T15:02:17.662063+00:00 heroku[worker.1]: State changed from up to crashed

/admincache command

when send /reload command on any chat bot are clearing admins dict for any groups.

😇😅

Error waiting for network: Resource temporarily unavailable

Bug

I cloned the repo and hosted the bot in a vps everything works perfectly except the queue function. It queues in the playlist but it doesn't jump to the next song after the first one finishes but the bot leaves the VC and after the bot leave the whole queue is gone missing but if we command /skip before the first song finishes it perfectly skips the song. Please help me to fix this ASAP.

Song format issue

Is your feature request related to a problem? Please describe.
Your previous releases the downloaded song format was m4a but now it is turned to webm and it is cannot be played in telegram. please make that issue ASAP

Describe the solution you'd like
A clear and concise description of what you want to happen.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

Additional context
Add any other context or screenshots about the feature request here.

queue doesn't work

Hi, after finishing the current music bot won't play the next music in queue and instead leaves the voice chat.

How edit the SUDO_USERS ?

As i don't want deploy to heroku, how put my id in this line :

SUDO_USERS = list(map(int, getenv("SUDO_USERS").split()))

Errno 2] No such file or directory:

I don't know why i get this error every time. How can i fix it?
The logs i am getting 👇

[youtube] fm-nXA-K0Dg: Downloading webpage
[youtube] fm-nXA-K0Dg: Downloading thumbnail ...
[youtube] fm-nXA-K0Dg: Writing thumbnail to: Alan Walker, Sabrina Carpenter & Farruko - On My Way (Lyrics)-fm-nXA-K0Dg.webp
[download] Destination: Alan Walker, Sabrina Carpenter & Farruko - On My Way (Lyrics)-fm-nXA-K0Dg.webm

[download] 0.0% of 3.13MiB at 168.96KiB/s ETA 00:19
[download] 0.1% of 3.13MiB at 490.49KiB/s ETA 00:06
[download] 0.2% of 3.13MiB at 1.10MiB/s ETA 00:02
[download] 0.5% of 3.13MiB at 2.30MiB/s ETA 00:01
[download] 1.0% of 3.13MiB at 1.08MiB/s ETA 00:02
[download] 2.0% of 3.13MiB at 1.26MiB/s ETA 00:02
[download] 4.0% of 3.13MiB at 1.72MiB/s ETA 00:01
[download] 8.0% of 3.13MiB at 2.60MiB/s ETA 00:01
[download] 15.9% of 3.13MiB at 4.18MiB/s ETA 00:00
[download] 31.9% of 3.13MiB at 6.97MiB/s ETA 00:00
[download] 63.9% of 3.13MiB at 11.91MiB/s ETA 00:00
[download] 100.0% of 3.13MiB at 9.11MiB/s ETA 00:00
[download] 100% of 3.13MiB in 00:00
[ffmpeg] Destination: Alan Walker, Sabrina Carpenter & Farruko - On My Way (Lyrics)-fm-nXA-K0Dg.mp3
Deleting original file Alan Walker, Sabrina Carpenter & Farruko - On My Way (Lyrics)-fm-nXA-K0Dg.webm (pass -k to keep)
Failed to decode "Alan Walker, Sabrina Carpenter & Farruko - On My Way (Lyrics)-fm-nXA-K0Dg.webm". The value does not represent an existing local file, HTTP URL, or valid file id.
[Errno 2] No such file or directory: 'Alan Walker, Sabrina Carpenter & Farruko - On My Way (Lyrics)-fm-nXA-K0Dg.webm'

stats error

function updated_stats in DaisyXMusic/modules/play.py returns object None/

problem in if condition.
if condition is False,
chat_id in callsmusic.pytgcalls.active_calls >> False
i can't fix it/

Error while deploying

2021-09-27T07:53:00.426552+00:00 app[worker.1]: File "/app/DaisyXMusic/modules/channelplay.py", line 235
2021-09-27T07:53:00.426553+00:00 app[worker.1]: await cb.message.edit(updated_stats(conv, qeue), reply_markup=r_ply("play"))
2021-09-27T07:53:00.426563+00:00 app[worker.1]: IndentationError: unexpected indent

[Bug] Error while deploying

2021-09-27T07:53:00.426552+00:00 app[worker.1]: File "/app/DaisyXMusic/modules/channelplay.py", line 235
2021-09-27T07:53:00.426553+00:00 app[worker.1]: await cb.message.edit(updated_stats(conv, qeue), reply_markup=r_ply("play"))
2021-09-27T07:53:00.426563+00:00 app[worker.1]: IndentationError: unexpected indent

Flood Waits due to heavy requests

pyrogram.errors.exceptions.flood_420.FloodWait: [420 FLOOD_WAIT_X]: A wait of 26 seconds is required (caused by "messages.GetFullChat")
ERROR:pyrogram.dispatcher:[420 FLOOD_WAIT_X]: A wait of 14 seconds is required (caused by "messages.GetFullChat")
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/site-packages/pyrogram/dispatcher.py", line 217, in handler_worker
    await handler.callback(self.client, *args)
  File "/app/DaisyXMusic/modules/play.py", line 465, in play
    administrators = await get_administrators(message.chat)
  File "/app/DaisyXMusic/helpers/admins.py", line 32, in get_administrators
    administrators = await chat.get_members(filter="administrators")
  File "/usr/local/lib/python3.9/site-packages/pyrogram/types/user_and_chats/chat.py", line 862, in get_members
    return await self._client.get_chat_members(
  File "/usr/local/lib/python3.9/site-packages/pyrogram/methods/chats/get_chat_members.py", line 109, in get_chat_members
    r = await self.send(
  File "/usr/local/lib/python3.9/site-packages/pyrogram/methods/advanced/send.py", line 77, in send
    r = await self.session.send(
  File "/usr/local/lib/python3.9/site-packages/pyrogram/session/session.py", line 425, in send
    return await self._send(data, timeout=timeout)
  File "/usr/local/lib/python3.9/site-packages/pyrogram/session/session.py", line 395, in _send
    RPCError.raise_it(result, type(data))
  File "/usr/local/lib/python3.9/site-packages/pyrogram/errors/rpc_error.py", line 78, in raise_it
    raise getattr(
pyrogram.errors.exceptions.flood_420.FloodWait: [420 FLOOD_WAIT_X]: A wait of 14 seconds is required (caused by "messages.GetFullChat")

How to fix this

PM Permit cannot be turned off!

The command /pmpermit does not seems to be working. Even when the PMPERMIT variable is set to DISABLE, pmpermit is still present.

[Bug] Errors

Error while using cplay command:

ERROR:pyrogram.dispatcher:name 'toxt' is not defined
2021-10-01T12:21:07.407681+00:00 app[worker.1]: Traceback (most recent call last):
2021-10-01T12:21:07.407683+00:00 app[worker.1]: File "/usr/local/lib/python3.9/site-packages/pyrogram/dispatcher.py", line 217, in handler_worker
2021-10-01T12:21:07.407683+00:00 app[worker.1]: await handler.callback(self.client, *args)
2021-10-01T12:21:07.407684+00:00 app[worker.1]: File "/app/DaisyXMusic/helpers/decorators.py", line 40, in decorator
2021-10-01T12:21:07.407684+00:00 app[worker.1]: return await func(client, message)
2021-10-01T12:21:07.407685+00:00 app[worker.1]: File "/app/DaisyXMusic/modules/channelplay.py", line 477, in play
2021-10-01T12:21:07.407685+00:00 app[worker.1]: query = toxt
2021-10-01T12:21:07.407685+00:00 app[worker.1]: NameError: name 'toxt' is not defined

Same command, different error:

2021-10-01T12:23:21.814296+00:00 app[worker.1]: ERROR:pyrogram.dispatcher:name 'os' is not defined
2021-10-01T12:23:21.814302+00:00 app[worker.1]: Traceback (most recent call last):
2021-10-01T12:23:21.814303+00:00 app[worker.1]: File "/usr/local/lib/python3.9/site-packages/pyrogram/dispatcher.py", line 217, in handler_worker
2021-10-01T12:23:21.814303+00:00 app[worker.1]: await handler.callback(self.client, *args)
2021-10-01T12:23:21.814304+00:00 app[worker.1]: File "/app/DaisyXMusic/helpers/decorators.py", line 40, in decorator
2021-10-01T12:23:21.814305+00:00 app[worker.1]: return await func(client, message)
2021-10-01T12:23:21.814305+00:00 app[worker.1]: File "/app/DaisyXMusic/modules/channelplay.py", line 618, in play
2021-10-01T12:23:21.814306+00:00 app[worker.1]: os.remove("final.png")
2021-10-01T12:23:21.814306+00:00 app[worker.1]: NameError: name 'os' is not defined

Hope these will be resolved :)

but goes on pending

Hi, how can i manage bot to do multitask?
I mean when you use /play for several times in a group the bot goes down and after the previous commands are done but will start working.

cant deploy

Im having problems when I try to deplot to heroku or railway
image_2021-08-21_164722

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.