
Recherche avancée
Autres articles (109)
-
Multilang : améliorer l’interface pour les blocs multilingues
18 février 2011, parMultilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela. -
Participer à sa traduction
10 avril 2011Vous pouvez nous aider à améliorer les locutions utilisées dans le logiciel ou à traduire celui-ci dans n’importe qu’elle nouvelle langue permettant sa diffusion à de nouvelles communautés linguistiques.
Pour ce faire, on utilise l’interface de traduction de SPIP où l’ensemble des modules de langue de MediaSPIP sont à disposition. ll vous suffit de vous inscrire sur la liste de discussion des traducteurs pour demander plus d’informations.
Actuellement MediaSPIP n’est disponible qu’en français et (...) -
ANNEXE : Les plugins utilisés spécifiquement pour la ferme
5 mars 2010, parLe site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)
Sur d’autres sites (18684)
-
I cannot play a mp3 file on Discord's voice channel using discord.py
1er décembre 2024, par ra1nedI am creating a discord bot that plays lofi for me. It does not play a song for me even though it shows a green indicator on a voice channel.


Here's what I've written :


if message.content == "!join":
 await message.author.voice.channel.connect()
 await message.channel.send("Successfully connected")

if message.content == "!play":
 if message.guild.voice_client is None: 
 await message.channel.send("use !join")
 return
 
 await message.channel.send("playing a song rn")
 print('*** playing a song rn')
 
 message.guild.voice_client.play(discord.FFmpegPCMAudio('lofi.mp3'))



I put
FFmpeg.exe
andlofi.mp3
in the same directory as this script.
Also, it is strange that FFmpeg does not return any exception nor output on console although it seems to have failed to load the file. I have seen people who had the same problem, but it seems like that they get some error messages, unlike me.

Here's the output on console after using !join


2024-12-01 16:59:39 INFO discord.voice_state Connecting to voice...
2024-12-01 16:59:39 INFO discord.voice_state Starting voice handshake... (connection attempt 1)
2024-12-01 16:59:40 INFO discord.voice_state Voice handshake complete. Endpoint found: japan8946.discord.media
2024-12-01 16:59:40 INFO discord.voice_state Voice connection complete.



after using !play, it only displays the message I wrote :


*** playing a song rn



Can someone help me with this ?


-
How to batch downsample alac files using ffmepg ? [closed]
1er octobre 2022, par A memeSo I've got a libarary of songs I wan to throw on an Ipod photo I modified flash modded, sadly due to the fact I want to stick to iTunes for syncing I cant import some of my alac's due to their sample rate being at 88200Hz, I've read that the iPod can only handle up to 48000hz but I can't figure how to make a simple single line lookup script to just downsample them all in one go.


I've tried :


find . -type f -name '*.m4a' -print -exec sh -c 'i="{}"; ffmpeg -i "$i" -compression_level 12 [-ar 48000 -sample_fmt 16] "$i"\; 



but it just blinks the cursor and trying


ffmpeg -i <my song="song"> -compression_level 12 [-ar 48000 -sample_fmt 16] <my output="output">
</my></my>


gave me an error of failed to convert
I also tried sox but it doesn't have a handler for .m4a which is what alac is.


-
Need help to create a queue system with a discord.py bot
19 août 2024, par Zamvim trying to create a bot with discord.py, i'll start saying that the bot is for personal use so please don't point out that i shouldn't use ydl in the comments, ty :
Also, im a beginner, so please tell me what I can improve and any errors there are, I will be happy to listen.
That said, i've been stuck on trying to create this queue system for songs for the past 3 days, the bot was working perfectly fine and played some urls before i implemented the play_next function, now it doesn't even play the first song, even if it sends confirmation messages both in the terminal that in the discord channel, i know that the code might be a little confusing, but please i really need to know how to make this work


i wrote two main functions : "play_next" to play the next song in the queue and "play", the main command.
Here is my play_next function :


async def play_next(self,ctx):
 if not ctx.voice_client.is_playing: #(don't know if this is correct as I also check if the bot isn't playing anything in the play function)
 
 if self.song.queue: 
 next_song = self.song_queue.pop(0) #deleting the first element of the queue, so if we have (song_0, song_1 and song_2) the bot should delete (song_0) making in fact song_1 the "next" song_0
 try:
 ctx.voice_client.play(discord.FFmpegPCMAudio(next_song), 
 after=lambda e: self.bot.loop.create_task(self.play_next(ctx))) #Not gonna lie here, i asked chat gpt for this line, it should make the bot automatically play the next song one after another, correct me if I am wrong

#this is not important
 embed = discord.Embed(
 title="Song",
 description=f"Now playing {next_song}",
 color = 0x1DB954
 )
 await ctx.send(embed=embed)
 except Exception as e:
 print(f"Error playing the next song: {e}")

 else:
 await ctx.voice_client.disconnect() # disconnecting from the voice channel if the queue is empty
 print("Disconnected from the voice channel as the queue is empty.")



I think that the main problem of my bot is the play_next function, but here it is my "play" function :


@commands.command(pass_context=True)
 async def play(self, ctx, url: str): 
 if ctx.author.voice: # first checking if the user is in a voice channel
 if not ctx.voice_client: #then checking if the bot is already connected to a voice channel
 channel = ctx.message.author.voice.channel 
 try:
 await channel.connect() #then joining
 print("I joined the voice channel!")
 except Exception as e:
 print(f"Failed to connect to the voice channel: {e}")
 return

 song_path = f"song_{self.song_index}.mp3" #note, im using cogs, i declared self.song_index with the value of 0 
 self.song_index += 1 #i thought that this was the easiest way of creating a new file for each song

 ydl_opts = {
 'format': 'bestaudio/best',
 'postprocesors': [{
 'key': 'FFmpegExtractAudio',
 'preferredcodec': 'mp3',
 'preferredquality': '192',
 }],
 'outtmpl': song_path
 }
 try:
 with youtube_dl.YoutubeDL(ydl_opts) as ydl:
 print("Starting download...")
 ydl.download([url]) #this is where it should download the song provided by the url
 print("Download finished.")
 except Exception as e:
 await ctx.send(f"Failed to download the song: {e}")
 return

#i think that the next two if statements are the main threats
 if os.path.exists(song_path): #if there is atleast 1 song in the queue
 self.song_queue.append(song_path) #append the next one
 embed = discord.Embed(
 title="Added to Queue!",
 description = f"{url} has been added to the queue.",
 color=0x33ff33
 )
 await ctx.send(embed=embed)


 if not ctx.voice_client.is_playing(): #checking if the bot is already playing something, don't know if i should put this if statement here
 print("Starting playback...")
 await self.play_next(ctx) #if nothing is playing, then the bot should play the next song



 else:
 await ctx.send("Failed to download or find the audio file.")

 else:
 embed = discord.Embed(
 title="❌You must be in a voice channel",
 color=0xff6666
 )
 await ctx.send(embed=embed)



thanks in advance, i will try to read and answer any questions as soon as possible