Recherche avancée

Médias (1)

Mot : - Tags -/Christian Nold

Autres articles (105)

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 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 (...)

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang 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.

Sur d’autres sites (10408)

  • avfilter/vf_alphamerge : add AVClass to private context

    8 février 2020, par Paul B Mahol
    avfilter/vf_alphamerge : add AVClass to private context
    
    • [DH] libavfilter/vf_alphamerge.c
  • lavc/avcodec : fix global/private option precendence

    13 octobre 2024, par Anton Khirnov
    lavc/avcodec : fix global/private option precendence
    

    Broken after 7753a9d62725d5bd8313e2d249acbe1c8af79ab1. Apply only the
    whitelist early, and the rest with a single call to av_opt_set_dict2()
    with AV_OPT_SEARCH_CHILDREN, which should be equivalent to the original
    behaviour.

    Reported-by : Cameron Gutman <aicommander@gmail.com>

    • [DH] libavcodec/avcodec.c
  • How to make a basic youtube music bot work with searching titles instead of the URL

    21 janvier 2021, par Brandon

    Hello so i've followed this tutorial and added this code to my current bot to make it have a music bot function. Im wondering how to make the following code work with the youtube search function, for example right now I have to do !play URL but I would also like to be able to do !play name of song then the bot will search and play the most matched song.

    &#xA;&#xA;

    I am new to javascript but I know I shouldn't be looking for handouts, but some help would be appreciated.

    &#xA;&#xA;

    const Discord = require("discord.js");&#xA;const { prefix, token } = require("./config.json");&#xA;const ytdl = require("ytdl-core");&#xA;&#xA;const client = new Discord.Client();&#xA;&#xA;const queue = new Map();&#xA;&#xA;client.once("ready", () => {&#xA;  console.log("Ready!");&#xA;});&#xA;&#xA;client.once("reconnecting", () => {&#xA;  console.log("Reconnecting!");&#xA;});&#xA;&#xA;client.once("disconnect", () => {&#xA;  console.log("Disconnect!");&#xA;});&#xA;&#xA;client.on("message", async message => {&#xA;  if (message.author.bot) return;&#xA;  if (!message.content.startsWith(prefix)) return;&#xA;&#xA;  const serverQueue = queue.get(message.guild.id);&#xA;&#xA;  if (message.content.startsWith(`${prefix}play`)) {&#xA;    execute(message, serverQueue);&#xA;    return;&#xA;  } else if (message.content.startsWith(`${prefix}skip`)) {&#xA;    skip(message, serverQueue);&#xA;    return;&#xA;  } else if (message.content.startsWith(`${prefix}stop`)) {&#xA;    stop(message, serverQueue);&#xA;    return;&#xA;  } else {&#xA;    message.channel.send("You need to enter a valid command!");&#xA;  }&#xA;});&#xA;&#xA;async function execute(message, serverQueue) {&#xA;  const args = message.content.split(" ");&#xA;&#xA;  const voiceChannel = message.member.voice.channel;&#xA;  if (!voiceChannel)&#xA;    return message.channel.send(&#xA;      "You need to be in a voice channel to play music!"&#xA;    );&#xA;  const permissions = voiceChannel.permissionsFor(message.client.user);&#xA;  if (!permissions.has("CONNECT") || !permissions.has("SPEAK")) {&#xA;    return message.channel.send(&#xA;      "I need the permissions to join and speak in your voice channel!"&#xA;    );&#xA;  }&#xA;&#xA;  const songInfo = await ytdl.getInfo(args[1]);&#xA;  const song = {&#xA;    title: songInfo.title,&#xA;    url: songInfo.video_url&#xA;  };&#xA;&#xA;  if (!serverQueue) {&#xA;    const queueContruct = {&#xA;      textChannel: message.channel,&#xA;      voiceChannel: voiceChannel,&#xA;      connection: null,&#xA;      songs: [],&#xA;      volume: 5,&#xA;      playing: true&#xA;    };&#xA;&#xA;    queue.set(message.guild.id, queueContruct);&#xA;&#xA;    queueContruct.songs.push(song);&#xA;&#xA;    try {&#xA;      var connection = await voiceChannel.join();&#xA;      queueContruct.connection = connection;&#xA;      play(message.guild, queueContruct.songs[0]);&#xA;    } catch (err) {&#xA;      console.log(err);&#xA;      queue.delete(message.guild.id);&#xA;      return message.channel.send(err);&#xA;    }&#xA;  } else {&#xA;    serverQueue.songs.push(song);&#xA;    return message.channel.send(`${song.title} has been added to the queue!`);&#xA;  }&#xA;}&#xA;&#xA;function skip(message, serverQueue) {&#xA;  if (!message.member.voice.channel)&#xA;    return message.channel.send(&#xA;      "You have to be in a voice channel to stop the music!"&#xA;    );&#xA;  if (!serverQueue)&#xA;    return message.channel.send("There is no song that I could skip!");&#xA;  serverQueue.connection.dispatcher.end();&#xA;}&#xA;&#xA;function stop(message, serverQueue) {&#xA;  if (!message.member.voice.channel)&#xA;    return message.channel.send(&#xA;      "You have to be in a voice channel to stop the music!"&#xA;    );&#xA;  serverQueue.songs = [];&#xA;  serverQueue.connection.dispatcher.end();&#xA;}&#xA;&#xA;function play(guild, song) {&#xA;  const serverQueue = queue.get(guild.id);&#xA;  if (!song) {&#xA;    serverQueue.voiceChannel.leave();&#xA;    queue.delete(guild.id);&#xA;    return;&#xA;  }&#xA;&#xA;  const dispatcher = serverQueue.connection&#xA;    .play(ytdl(song.url))&#xA;    .on("finish", () => {&#xA;      serverQueue.songs.shift();&#xA;      play(guild, serverQueue.songs[0]);&#xA;    })&#xA;    .on("error", error => console.error(error));&#xA;  dispatcher.setVolumeLogarithmic(serverQueue.volume / 5);&#xA;  serverQueue.textChannel.send(`Start playing: **${song.title}**`);&#xA;}&#xA;&#xA;client.login(token);&#xA;

    &#xA;