Switched to YouTube (instead of Yandex)
This commit is contained in:
parent
be4f7fbdce
commit
63ab1e0ec2
3 changed files with 21 additions and 18 deletions
|
@ -2,7 +2,8 @@ import os
|
||||||
import asyncio
|
import asyncio
|
||||||
import discord
|
import discord
|
||||||
from discord.ext import commands
|
from discord.ext import commands
|
||||||
import yandex_music
|
from youtubesearchpython import VideosSearch
|
||||||
|
from pytube import YouTube
|
||||||
|
|
||||||
# Add bot to a server:
|
# Add bot to a server:
|
||||||
# https://discord.com/api/oauth2/authorize?client_id=861599847441104926&permissions=2184277249&scope=bot
|
# https://discord.com/api/oauth2/authorize?client_id=861599847441104926&permissions=2184277249&scope=bot
|
||||||
|
@ -10,8 +11,6 @@ import yandex_music
|
||||||
# Options
|
# Options
|
||||||
token = '*** YOUR TOKEN ***'
|
token = '*** YOUR TOKEN ***'
|
||||||
bot = commands.Bot(command_prefix='/')
|
bot = commands.Bot(command_prefix='/')
|
||||||
# Setting up YandexMusic
|
|
||||||
ymcl = yandex_music.Client.from_credentials('achtest22@yandex.ru', 'tEs#t22')
|
|
||||||
|
|
||||||
# Command /catplay <search query>
|
# Command /catplay <search query>
|
||||||
@bot.command(name='catplay', description='Plays the music in a voice channel')
|
@bot.command(name='catplay', description='Plays the music in a voice channel')
|
||||||
|
@ -29,19 +28,16 @@ async def catplay(ctx, *args):
|
||||||
song_query = ' '.join(args)
|
song_query = ' '.join(args)
|
||||||
await ctx.send(':mag: **Searching...**')
|
await ctx.send(':mag: **Searching...**')
|
||||||
|
|
||||||
song = ymcl.search(song_query, True, 'track').tracks.results[0]
|
# Find music on YouTube and download it
|
||||||
song.download(str(song.id) + '.mp3', 'mp3')
|
vs = VideosSearch(song_query, limit=1)
|
||||||
artist = ''
|
yt = YouTube(vs.result()['result'][0]['link'])
|
||||||
|
await ctx.send(':open_file_folder: **Downloading...**')
|
||||||
# Joining artists into a string
|
dl = yt.streams.filter(only_audio=True).first().download()
|
||||||
for artist_obj in song.artists:
|
os.rename(yt.streams.filter(only_audio=True).first().default_filename, 'music.mp3')
|
||||||
artist += artist_obj.name + ', '
|
|
||||||
# Removing a comma in the end of the string
|
|
||||||
artist = artist[:len(artist)-2]
|
|
||||||
|
|
||||||
# Beautiful notification
|
# Beautiful notification
|
||||||
notif = discord.Embed(color=0xe3813e, title='Playing:', description=f'{artist} - {song.title}')
|
notif = discord.Embed(color=0xe3813e, title='Playing:', description=f'{yt.author} - {yt.title}')
|
||||||
notif.set_image(url=song.cover_uri)
|
notif.set_image(url=yt.thumbnail_url)
|
||||||
|
|
||||||
# Connecting to the voice channel
|
# Connecting to the voice channel
|
||||||
sp = await music_channel.connect()
|
sp = await music_channel.connect()
|
||||||
|
@ -49,12 +45,12 @@ async def catplay(ctx, *args):
|
||||||
if (sp.is_playing()):
|
if (sp.is_playing()):
|
||||||
sp.stop()
|
sp.stop()
|
||||||
# Playing music to the voice channel
|
# Playing music to the voice channel
|
||||||
sp.play(discord.FFmpegPCMAudio(source=(str(song.id) + '.mp3')), after=None)
|
sp.play(discord.FFmpegPCMAudio(source='music.mp3'), after=None)
|
||||||
await ctx.send(embed=notif)
|
await ctx.send(embed=notif)
|
||||||
while (sp.is_playing()):
|
while (sp.is_playing()):
|
||||||
await asyncio.sleep(1)
|
await asyncio.sleep(1)
|
||||||
sp.stop()
|
sp.stop()
|
||||||
os.remove(str(song.id) + '.mp3')
|
os.remove('music.mp3')
|
||||||
|
|
||||||
# Starting bot after setup
|
# Starting bot after setup
|
||||||
bot.run(token)
|
bot.run(token)
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
aiohttp==3.7.4.post0
|
aiohttp==3.7.4.post0
|
||||||
|
anyio==3.2.1
|
||||||
async-timeout==3.0.1
|
async-timeout==3.0.1
|
||||||
attrs==21.2.0
|
attrs==21.2.0
|
||||||
beautifulsoup4==4.9.3
|
beautifulsoup4==4.9.3
|
||||||
|
@ -7,6 +8,9 @@ cffi==1.14.5
|
||||||
chardet==4.0.0
|
chardet==4.0.0
|
||||||
click==7.1.2
|
click==7.1.2
|
||||||
discord.py==1.7.3
|
discord.py==1.7.3
|
||||||
|
h11==0.12.0
|
||||||
|
httpcore==0.13.6
|
||||||
|
httpx==0.18.2
|
||||||
idna==2.10
|
idna==2.10
|
||||||
multidict==5.1.0
|
multidict==5.1.0
|
||||||
numpy==1.20.2
|
numpy==1.20.2
|
||||||
|
@ -16,11 +20,14 @@ pygal==2.4.0
|
||||||
pygame==2.0.1
|
pygame==2.0.1
|
||||||
PyNaCl==1.4.0
|
PyNaCl==1.4.0
|
||||||
PySocks==1.7.1
|
PySocks==1.7.1
|
||||||
|
pytube==10.9.0
|
||||||
requests==2.25.1
|
requests==2.25.1
|
||||||
|
rfc3986==1.5.0
|
||||||
six==1.15.0
|
six==1.15.0
|
||||||
|
sniffio==1.2.0
|
||||||
soupsieve==2.2.1
|
soupsieve==2.2.1
|
||||||
typing-extensions==3.10.0.0
|
typing-extensions==3.10.0.0
|
||||||
urllib3==1.26.3
|
urllib3==1.26.3
|
||||||
wikipedia==1.4.0
|
wikipedia==1.4.0
|
||||||
yandex-music==1.0.0
|
|
||||||
yarl==1.6.3
|
yarl==1.6.3
|
||||||
|
youtube-search-python==1.4.6
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
python-3.9.5
|
python-3.9.6
|
Loading…
Reference in a new issue