
Recherche avancée
Autres articles (98)
-
MediaSPIP 0.1 Beta version
25 avril 2011, parMediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
The zip file provided here only contains the sources of MediaSPIP in its standalone version.
To get a working installation, you must manually install all-software dependencies on the server.
If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...) -
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. -
Des sites réalisés avec MediaSPIP
2 mai 2011, parCette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.
Sur d’autres sites (11152)
-
Why is my discord bot not able to find the file that is there when I open the folder manually ?
22 juin 2021, par TomaI made a discord bot that should play music using ffmpeg.


It's connecting and downloading the youtube webm file after which it should convert and rename it to
song.mp3
but it doesn't manage to do so. I check the folder and the error message doesn't match what I see - the file is there and has been renamed.

- 

- Am I using the replace command correctly to move the file ?
- I'd note that I'm using windows10 and that the folders are all read only and that although I'm the admin I can't change that no matter what I do (I guess it's a win10 bug). Does that have anything to do with it ?
- Is there another mistake in the code that'd prevent the file from being found by the bot ?








My code :


import discord
from discord.ext import commands
import youtube_dl #for url music command
import os

client = commands.Bot(command_prefix = '><')

#connect to voice channel
@client.command(aliases = ['c'])
async def connect(ctx, vcName):
 voice = discord.utils.get(client.voice_clients, guild=ctx.guild)
 voiceChannel = discord.utils.get(ctx.guild.channels, name=str(vcName))
 if voice == None: #if voice is not connected to any channel
 await voiceChannel.connect()
 else:
 if voice.channel == vcName: #if trying to connect to the same channel
 await ctx.send('already connected to this channel')
 else:
 await voice.move_to(vcName)

@client.command(aliases = ['d'])
async def delFile(ctx):
 song_there = os.path.exists(os.getcwd()+'/music/current/song.mp3') #true when song.mp3 exists in 'current' folder in 'music' folder
 if song_there:
 await ctx.send('song was detected')
 os.remove('song.mp3')
 if song_there:
 await ctx.send('song was not deleted')
 else:
 await ctx.send('File is not found. check the name again')

#play music from url

@client.command(aliases = ['p'])
async def playMusic(ctx, vcName, url : str): #play music file
 song_there = os.path.exists(os.path.join(os.getcwd(),'/music/current/song.mp3'))
 try:
 if song_there:
 print('previous song found')
 os.remove(os.path.join(os.getcwd(),'/music/current/song.mp3')) #removes the song in current to make room for a new song
 if song_there:
 print('song was not deleted')
 else:
 print('song deleted')
 except PermissionError:
 await ctx.send('A song is currently playing')
 return
 voiceChannel = discord.utils.get(ctx.guild.channels, name=str(vcName))
 ydl_opts = {
 'format': 'bestaudio/best',
 'postprocessors': [{
 'key': 'FFmpegExtractAudio',
 'preferredcodec': 'mp3',
 'preferredquality': '192',
 }]
 }


 for file in os.listdir('./'):
 if file.endswith('.mp3'): #if song.mp3 already exists delete it to make room for a new download
 os.remove('song.mp3')
 else: #download the file from youtube
 with youtube_dl.YoutubeDL(ydl_opts) as ydl:
 ydl.download([url])
 for file in os.listdir('./'): #after downloading rename the file and move it to current folder
 if not file == ('song.mp3') and file.endswith('.mp3'):
 os.rename(file, 'song.mp3')
 print(os.path.join(os.getcwd(), 'song.mp3'))
 print(os.path.join(os.getcwd(), '/music/current/song.mp3'))
 os.replace(os.path.join(os.getcwd(), 'song.mp3'), os.path.join(os.getcwd(), '/music/current/song.mp3')) #move file to current

 voice = discord.utils.get(client.voice_clients, guild=ctx.guild)
 if not voice is None: #if voice is already created
 if not voice.is_connected(): #and is not connected
 await voiceChannel.connect()
 voice.play(discord.FFmpegPCMAudio('song.mp3'))
 else:
 await ctx.send('Bot made an oopsy. Cast mending and heal bot.')
client.run('token')



Error :


[youtube] wkJ7oDMqz0A: Downloading webpage
[download] The Minor Bee-wkJ7oDMqz0A.webm has already been downloaded
[download] 100% of 5.13MiB
[ffmpeg] Destination: The Minor Bee-wkJ7oDMqz0A.mp3
Deleting original file The Minor Bee-wkJ7oDMqz0A.webm (pass -k to keep)
[youtube] wkJ7oDMqz0A: Downloading webpage
[download] Destination: The Minor Bee-wkJ7oDMqz0A.webm
[download] 100% of 5.13MiB in 00:00 
[ffmpeg] Destination: The Minor Bee-wkJ7oDMqz0A.mp3
Deleting original file The Minor Bee-wkJ7oDMqz0A.webm (pass -k to keep)
[youtube] wkJ7oDMqz0A: Downloading webpage
[download] Destination: The Minor Bee-wkJ7oDMqz0A.webm
[download] 100% of 5.13MiB in 00:00 
[ffmpeg] Destination: The Minor Bee-wkJ7oDMqz0A.mp3
Deleting original file The Minor Bee-wkJ7oDMqz0A.webm (pass -k to keep)
C:.....song.mp3 -> **C:/music/current/song.mp3**
Ignoring exception in command playMusic:
Traceback (most recent call last):
 File "C:\Program Files\Python38\lib\site-packages\discord\ext\commands\core.py", line 85, in wrapped
 ret = await coro(*args, **kwargs)
 File "C:...tut-bot.py", line 84, in playMusic
 os.replace(os.path.join(os.getcwd(), 'song.mp3'), os.path.join(os.getcwd(), '/music/current/song.mp3')) #move file to current
FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\....\\song.mp3' -> 'C:/music/current/song.mp3'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
 File "C:\Program Files\Python38\lib\site-packages\discord\ext\commands\bot.py", line 939, in invoke
 await ctx.command.invoke(ctx)
 File "C:\Program Files\Python38\lib\site-packages\discord\ext\commands\core.py", line 863, in invoke
 await injected(*ctx.args, **ctx.kwargs)
 File "C:\Program Files\Python38\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
 raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\...\\song.mp3' -> 'C:/music/current/song.mp3'



-
ffmpeg crop in a loop crops files incrementally
13 septembre 2014, par VoprosnikI have a very large audio mp4 file that contains several songs.
I have generated a script which reads a text file with the times and the song names and successfully assigns starttime, endtime and songtitle in 3 variables. The script successfully echoes the variables and returns the following format :
00:00:00 00:10:15 Song1
00:10:15 00:14:20 Song2and so on...
Now I am intending to use this script with ffmpeg and crop each part of the big file into smaller audio files.
The script thus, after feeding the variables in a while loop, it reaches to the command
ffmpeg -ss $START -t $END -i ${1} -acodec copy $SONGNAME.mp4
Then I realized that the -t option doesn’t refer to the end point of the excerpt, but the duration. Eg. when I attempted to crop a song from 10:00 to 12:00 it resulted to a 12 minutes long sound file, far longer than the song itself. This resulted in increasingly bigger files.
Therefore I found some date-manipulating algorithms. Subtracting
$START
from$END
results to an integer with the song’s duration in seconds. I tested it byecho
ing the results and it resulted to realisting figures (around 100-200).However when I replaced the -t option with
$DUR
instead of$END
, this resulted also to increasingly larger files. I didn’t measure the exact length of each, but it seems that the duration increased itself by each loop. I also added anecho $DUR
line, which returned the realistic amounts it should. However theffmpeg -t $DUR
did not seem to agree.PS. -t has two options, input (before -i) and output (after -i). When I use it after the -i as output (i.e. the duration of the output file) it SEEMS to work, at least it generates realisticly sized files. The question remains why it behaves strangely in the first place.
-
Convert video to mp3 with album art with ffmpeg
30 mars 2014, par daveUsing ffmpeg, I want to extract only the audio of a video and turn it to an mp3, in addition, I want to add some meta information including an image to the mp3.
I can do each of these separately.
First, extracting the audio :
fmpeg -i video.mp4 -f mp3 -vn -b:a 192k -ac 2 -ar 44100 -aq 5 -y out.mp3
Second, add the image and meta info :
ffmpeg -i out.mp3 -i image.jpg -map 0:0 -map 1:0 -c copy -id3v2_version 3 -metadata:s:v title="Song Title" -metadata:s:v comment="This Song" -c:a:0 -y out2.mp3
What I'd like to do however is have this in a single command. This is the question. How do I combine these two into a single workable command (if possible). When I try to combine them, I get issues with no input streams.
Thank you !