
Recherche avancée
Médias (1)
-
Video d’abeille en portrait
14 mai 2011, par
Mis à jour : Février 2012
Langue : français
Type : Video
Autres articles (107)
-
Amélioration de la version de base
13 septembre 2013Jolie sélection multiple
Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ; -
Menus personnalisés
14 novembre 2010, parMediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
Menus créés à l’initialisation du site
Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)
Sur d’autres sites (11593)
-
FFMPEG(?) Error : [out#0/s16le @ 000002452f906a00] Output file does not contain any stream
11 mars 2024, par OndoshFFMPEG_OPTIONS = {
 'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
 'options': '-vn'}
YDL_OPTIONS = {
 'format': 'bestaudio/best',
 'extractaudio': True,
 'noplaylist': True,
 'simulate': 'True',
 'preferredquality': '192',
 'preferredcodec': 'mp3',
 'key': 'FFmpegExtractAudio'}
@bot.command(aliases=['Ping', 'PING', 'Пинг', 'ПИНГ', 'зштп', 'ЗШТП', 'Зштп',
 'пинг'])
async def ping(ctx):
 await ctx.message.reply(f'Ping: {round(bot.latency * 1000)}ms')
#########################[PLAY MUSIC BLOCK]#########################
@bot.command()
async def add(ctx, *url):
 url = ' '.join(url)
 with yt_dlp.YoutubeDL(YDL_OPTIONS) as ydl:
 try:
 info = ydl.extract_info(url, download=False)
 except:
 info = ydl.extract_info(f"ytsearch:{url}",
 download=False)['entries'][0]

 URL = info['formats'][0]['url']
 name = info['title']
 time = str(datetime.timedelta(seconds=info['duration']))
 songs_queue.q_add([name, time, URL])
 embed = nextcord.Embed(description=f'Записываю [{name}]({url}) в очередь 📝',
 colour=nextcord.Colour.red())
 await ctx.message.reply(embed=embed)
def step_and_remove(voice_client):
 if loop_flag:
 songs_queue.q_add(songs_queue.get_value()[0])
 songs_queue.q_remove()
 audio_player_task(voice_client)
def audio_player_task(voice_client):
 if not voice_client.is_playing() and songs_queue.get_value():
 voice_client.play(nextcord.FFmpegPCMAudio(
 executable="ffmpeg\\bin\\ffmpeg.exe",
 source=songs_queue.get_value()[0][2],
 **FFMPEG_OPTIONS),
 after=lambda e: step_and_remove(voice_client))
@bot.command(aliases=['Play', 'PLAY', 'играй', 'ИГРАЙ', 'Играй', 'сыграй',
 'Сыграй', 'СЫГРАЙ', 'здфн', 'Здфн', 'ЗДФН', 'p', 'P',
 'pl', 'PL', 'Pl', 'Плей',
 'ПЛЕЙ', 'плей'])
async def play(ctx, *url):
 await join(ctx)
 await add(ctx, ' '.join(url))
 await ctx.message.add_reaction(emoji='🎸')
 voice_client = ctx.guild.voice_client
 audio_player_task(voice_client)
@bot.command(aliases=['Queue', 'QUEUE', 'йгугу', 'Йгугу', 'ЙГУГУ', 'очередь',
 'Очередь', 'ОЧЕРЕДЬ', 'список', 'Список', 'СПИСОК',
 'list', 'List', 'LIST', 'дшые', 'Дшые', 'ДШЫЕ', 'Лист',
 'лист', 'ЛИСТ', 'песни', 'Песни', 'ПЕСНИ', 'songs',
 'Songs', 'SONGS', 'ыщтпы', 'ЫЩТПЫ', 'Ыщтпы', 'q'])
async def queue(ctx):
 if len(songs_queue.get_value()) > 0:
 only_names_and_time_queue = []
 for i in songs_queue.get_value():
 name = i[0]
 if len(i[0]) > 30:
 name = i[0][:30] + '...'
 only_names_and_time_queue.append(f'📀 `{name:<33} {i[1]:>20}`\n')
 c = 0
 queue_of_queues = []
 while c < len(only_names_and_time_queue):
 queue_of_queues.append(only_names_and_time_queue[c:c + 10])
 c += 10

 embed = nextcord.Embed(title=f'ОЧЕРЕДЬ [LOOP: {loop_flag}]',
 description=''.join(queue_of_queues[0]),
 colour=nextcord.Colour.red())
 await ctx.send(embed=embed)

 for i in range(1, len(queue_of_queues)):
 embed = nextcord.Embed(description=''.join(queue_of_queues[i]),
 colour=nextcord.Colour.red())
 await ctx.send(embed=embed)
 else:
 await ctx.send('Очередь пуста')



There is the part of my music bot in Discord, I don't really know why it doesn't work. Actually, I tried to use someone's old code, so it needs to be fixed. I have cut out the most important parts of the code, which most likely had an error.
I found other questions, but there was another errors.
After trying to start the video, I get the following errors :
[out#0/s16le @ 000002452f906a00] Output file does not contain any stream
Error opening output file pipe:1.
Error opening output files : Invalid argument


-
Error opening input files : Invalid data found when processing input
27 mars 2024, par Master's TimeI am creating disnake music bot. The error is :


[in#0 @ 00000233f8d71500] Error opening input: Invalid data found when processing input
Error opening input file https://www.youtube.com/watch?v=duDUqBtxwXk.
Error opening input files: Invalid data found when processing input



Here is part of my code :


import disnake
import asyncio
from yt_dlp import YoutubeDL
import ffmpeg


YTDL_OPTIONS = {'format': 'bestaudio', 'noplaylist': 'False', 'simulate':'True', 'key':"FFmpegExtractAudio"}
FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}


async def play_music(inter):
 global YDTL_OPTIONS, FFMPEG_OPTIONS
 print(tm.now().strftime("%H:%M:%S"),"play_music begin")
 id = int(inter.guild.id)
 with YoutubeDL(YTDL_OPTIONS) as ydl:
 info = ydl.extract_info(url, download=False)

 song = {
 'link': 'https://www.youtube.com/watch?v=' + url,
 'thumbnail': 'https://i.ytimg.com/vi/' + url + '/hqdefault.jpg?sqp=-oaymwEcCOADEI4CSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLD5uL4xKN-IUfez6KIW_j5y70mlig',
 'source': info['formats'][0]['url'],
 'title': info['title']
 } self.vc[id].play(disnake.FFmpegPCMAudio(executable=r"C:\\ffmpeg\\ffmpeg\\bin\\ffmpeg.exe",source=song["source"], **FFMPEG_OPTIONS))
 print(tm.now().strftime("%H:%M:%S"),"play_music end")



I tried to write
source = song['source']
instead ofsource = song['link']
, but it didn't seem helpful.

-
Youtube Dlp returns with error code of 400 [closed]
10 mars 2024, par nikita goncharovI have a python discord bot that can play music and uses discord.py https://discordpy.readthedocs.io/en/stable/. To play get the music I use yt_dlp or youtube_dl. But when requesting a video it returns with a 400 error code.


This is the error with yt_dlp :


WARNING: [youtube] YouTube said: ERROR - Precondition check failed.


WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (1/3)...


WARNING: [youtube] YouTube said: ERROR - Precondition check failed.


WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (2/3)...


WARNING: [youtube] YouTube said: ERROR - Precondition check failed.


WARNING: [youtube] HTTP Error 400: Bad Request. Retrying (3/3)...


WARNING: [youtube] YouTube said: ERROR - Precondition check failed.


WARNING: [youtube] Unable to download API page: HTTP Error 400: Bad Request (caused by <httperror>)</httperror>


I will leave some of the code that I use for my bot... The youtube setup settings :


import youtube_dl


or


import yt_dlp as youtube_dl


youtube_dl.utils.bug_reports_message = lambda: ''


ytdl_format_options = {
 'format': 'bestaudio/best',
 'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
 'restrictfilenames': True,
 'noplaylist': True,
 'nocheckcertificate': True,
 'ignoreerrors': False,
 'logtostderr': False,
 'quiet': True,
 'no_warnings': True,
 'default_search': 'auto',
 'source_address': '0.0.0.0', # bind to ipv4 since ipv6 addresses cause issues sometimes
}

ffmpeg_options = {
 'options': '-vn',
}

ytdl = youtube_dl.YoutubeDL(ytdl_format_options)


class YTDLSource(discord.PCMVolumeTransformer):
 def __init__(self, source, *, data, volume=0.5):
 super().__init__(source, volume)

 self.data = data

 self.title = data.get('title')
 self.url = data.get('url')
 self.duration = data.get('duration')
 self.image = data.get("thumbnails")[0]["url"]
 @classmethod
 async def from_url(cls, url, *, loop=None, stream=False):
 loop = loop or asyncio.get_event_loop()
 data = await loop.run_in_executor(None, lambda: ytdl.extract_info(url, download=not stream))
 #print(data)

 if 'entries' in data:
 # take first item from a playlist
 data = data['entries'][0]
 #print(data["thumbnails"][0]["url"])
 #print(data["duration"])
 filename = data['url'] if stream else ytdl.prepare_filename(data)
 return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)



Approximately the command to run the audio (from my bot) :


sessionChanel = message.author.voice.channel await sessionChannel.connect() url = matched.group(1) player = await YTDLSource.from_url(url, loop=client.loop, stream=True) sessionChannel.guild.voice_client.play(player, after=lambda e: print( f'Player error: {e}') if e else None) 



I searched for posts with the same error and they where either old or didn't solve my problem.


I tried importing instead of yt_dlp, I tried importing youtube_dl. But when I make the request it does not answer, no exception and no warning it just does not answer, as if the funcion is empty


I will link my other post that I asked. It might be usefull : Error : Unable to extract uploader id - Youtube, Discord.py