
Recherche avancée
Autres articles (82)
-
Organiser par catégorie
17 mai 2013, parDans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...) -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...) -
Publier sur MédiaSpip
13 juin 2013Puis-je poster des contenus à partir d’une tablette Ipad ?
Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir
Sur d’autres sites (5789)
-
The Mystery of the No such file or directory exception
22 avril 2022, par JohnWickNo idea what's going on here. Set a breakpoint after the for of loop in the following function. temp/concat.txt exists but the following exception is thrown :




Uncaught Error Error : ffmpeg exited with code 1 : temp/concat.txt : No
such file or directory




Outputting stderr gives a bit more info :




[concat @ 000001e2e30124c0] Impossible to open
'temp/concat.txt#voiceover #funny #fall #lol.mp4' index.js:19
temp/concat.txt : No such file or directory




And here is the contents of concat.txt, standard ffmpeg concat demuxer format :


file '#voiceover #funny #fall #lol.mp4'
file 'part 2 repost 🙄 #fyp #funny @jordond262 @princemoonjq add my snap heroicdw333.mp4'
file 'This is my hair wet wet WOAHHH #GrowUpWithMe #fyp #foryoupage #love #funny #puppy #goldenretriever #cute #dog #wetwet.mp4'
file 'POV calling your friends when your 90#FootlongShuffle #GhostMode #funny #grandma #fyp #halloween #collegegotmelike #tiktok #foryoupage.mp4'
file 'Sam Ki Singing Kaisi Lgi 😂😜 insta-samayranarula #foryou #trending #lockdown #queen_samayra #tiktokindia #funny #gharbaithoindia 🏠 #comedyindia.mp4'
file 'Reply to @juswa646 #fyp#funny #relatable.mp4'
file 'RaNdOm ViDeOs! #fy #fypシ #viral #meme #funny #xyzbca #funnyvideos #randomvideo.mp4'
file 'Reply to @bratzdoll.maya what should I do next 🙄 #fyp #foryoupage #leethe4th #memes #tall #funny #lol.mp4'
file 'Part 2 #fyp #foryou #viral #foryoupageofficiall #funny #trending.mp4'
file 'Lmfao 😂 (via @danibreezy01) #lmao #lmfao #funny #cousins #family #fyp #foryou #foryoupage.mp4'
file 'When you are a clumsy kitty #trend #joke #Khaleesi #funny #kittensoftiktok #foryou #fyp #foryoupage #cute #catsoftiktok.mp4'
file 'Tag That Friend That Always Be Falling Asleep 😂 #foryou #funny #fail #nap #sleep #pennsylvania #SHEINcares #viral #trending #meme #memes #foryoupage.mp4'
file '#funny #funnyvideos #girlfriend #crzy #Birdshit.mp4'
file 'He forgot he was a dog. #dog #fyp #talkingdog #cute #pet #funny.mp4'
file 'Bad Day #part1 #badday #falling #funny #memes #viral #jokes #comedy #trending #fyp #foryou #share #likes #us #uk #xyzbca #epic #pourtoi #fail #wee.mp4'
file 'I think he got offended ( #catsoftiktok #fyp #funny #catlover #MyJob #yellow #foryoupage.mp4'
file 'They took OFF today 🐶🤠🐶 #joshbutlertv #roxyandremi #funny #comedy #dogs #viral #memes.mp4'
file 'Had to make sure momma was there #funny #fyp #raccoons #love #bff #foryoupage #ThisorThatSBLV.mp4'
file 'That\'s not how you get out... #mysterymakers #escaperoom #foryou #fyp #crazystory #friends #funny #crazy #teammate.mp4'



The function throwing the exception.


async function makeCompilation(paths, outPath) {
 for (const filePath of paths) {
 await fs.appendFile(
 "temp/concat.txt",
 `file '${path.basename(filePath).replace("'", "\\'")}'${os.EOL}`
 );
 }
 return new Promise((resolve, reject) => {
 ffmpeg("temp/concat.txt")
 .inputOptions(["-f concat", "-safe 0"])
 .outputOption("-c copy")
 .on("stderr", (line) => console.log(line))
 .on("end", async () => {
 await fs.rm("temp/concat.txt");
 resolve();
 })
 .save(outPath);
 });
}



-
How do I make my discord bot play music by using youtubedl's search function instead of url ? (Python)
28 septembre 2021, par PypypieYumI want it to search for the video and play it, how can i change the following code to achieve that ? Every time I use the ytsearch function in ytdl, I notice that it only searches for the first word of the title and download it, however, it causes error later on and do nothing.


@commands.command()
 async def play(self, ctx, url):
 if ctx.author.voice is None:
 await ctx.send("You are not in a voice channel!")
 voice_channel = ctx.author.voice.channel
 if ctx.voice_client is None:
 await voice_channel.connect()
 else:
 await ctx.voice_client.move_to(voice_channel)

 ctx.voice_client.stop()
 FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
 YDL_OPTIONS = {'format':"bestaudio", 'default_search':"ytsearch"}
 vc = ctx.voice_client

 with youtube_dl.YoutubeDL(YDL_OPTIONS) as ydl:
 info = ydl.extract_info(url, download=False)
 if 'entries' in info:
 url2 = info["entries"][0]["formats"][0]
 elif 'formats' in info:
 url2 = info["formats"][0]['url']
 source = await discord.FFmpegOpusAudio.from_probe(url2, **FFMPEG_OPTIONS)
 vc.play(source)



And this is the error message :


Ignoring exception in command play:
Traceback (most recent call last):
 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped
 ret = await coro(*args, **kwargs)
 File "/home/runner/HandmadeLivelyLines/music.py", line 44, in play
 source = await discord.FFmpegOpusAudio.from_probe(url2, **FFMPEG_OPTIONS)
 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/player.py", line 387, in from_probe
 return cls(source, bitrate=bitrate, codec=codec, **kwargs)
 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/player.py", line 324, in __init__
 super().__init__(source, executable=executable, args=args, **subprocess_kwargs)
 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/player.py", line 138, in __init__
 self._process = self._spawn_process(args, **kwargs)
 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/player.py", line 144, in _spawn_process
 process = subprocess.Popen(args, creationflags=CREATE_NO_WINDOW, **subprocess_kwargs)
 File "/usr/lib/python3.8/subprocess.py", line 858, in __init__
 self._execute_child(args, executable, preexec_fn, close_fds,
 File "/usr/lib/python3.8/subprocess.py", line 1639, in _execute_child
 self.pid = _posixsubprocess.fork_exec(
TypeError: expected str, bytes or os.PathLike object, not dict

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

Traceback (most recent call last):
 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
 await ctx.command.invoke(ctx)
 File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
 await injected(*ctx.args, **ctx.kwargs)
 File "/opt/virtualenvs/python3/lib/python3.8/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: TypeError: expected str, bytes or os.PathLike object, not dict



Thanks.


-
How do I stop ffmpeg from spamming itself when I auto restart ?
15 décembre 2019, par billy61300const fs = require("fs");
const express = require("express");
const app = express();
const path = require("path");
const ffmpeg = require("fluent-ffmpeg");
const md5 = require("md5");
const readline = require("readline");
const formidable = require("formidable");
const dir = "Custom/Dir";
const thumb = __dirname + "/thumb";
const ph = __dirname + "/placeholder";
app.use("/serve", express.static(dir));
app.use("/thumb", express.static(thumb));
app.use("/ph", express.static(ph));
const list = [];
const listThumb = [];
process.on("uncaughtException", (err) => {
console.log("Caught Exception: " + err);
});
let passwords = fs.readFileSync("passwords.txt").toString().split("\n");
app.get("/", (req, res) => {
res.sendFile(__dirname + "/index.html")
});
app.get("/upload", (req, res) => {
res.sendFile(__dirname + "/upload.html");
});
app.post("/uploadFile", (req, res) => {
let form = new formidable.IncomingForm();
form.parse(req, (err, fields, files) => {
if (passwords.includes(md5(fields.password))) {
fs.readFile(files.filetoupload.path, (err, data) => {
let newPath = dir + "/" + files.filetoupload.name;
if (!fs.existsSync(newPath)) {
fs.writeFile(newPath, data, (err) => {
res.writeHead(200, {"Content-Type": "text/html"});
res.write("<h1>File Uploaded</h1>");
res.end();
});
} else {
res.writeHead(200, {"Content-Type": "text/html"});
res.write("<h1>File already exists. Upload with a different name please.</h1>");
res.end();
}
});
}
});
});
fs.readdir(dir, (err, files) => {
if (err) {
throw err;
} else {
let i = 0;
files.forEach((file) => {
list[i] = path.basename(file);
if (!fs.existsSync(__dirname + "\\thumb\\" + list[i] + ".png")) {
console.log("Generating: " + list[i] + ".png");
let proc = new ffmpeg({source: dir + "/" + file, nolog: true});
proc.setFfmpegPath(__dirname + "\\ffmpeg.exe");
proc.screenshots({
timestamps: [0.0],
filename: list[i] + ".png",
folder: __dirname + "\\thumb\\",
size: "100x100"
});
}
i++;
});
let serveDoc = "";
for (let j = 0; j < list.length; j++) {
if (path.extname(list[j]).toLowerCase() !== ".jpg" && path.extname(list[j]).toLowerCase() !== ".jpeg" && path.extname(list[j]).toLowerCase() !== ".png") {
if (path.extname(list[j]).toLowerCase() == ".mp3" || path.extname(list[j]).toLowerCase() == ".wav") {
serveDoc += "<a href="http://stackoverflow.com/feeds/tag/address" + list[j] + "">" + "<img width='100' height='100' src="http://stackoverflow.com/feeds/tag/address" />" + "</a> ";;
}/* else if (path.extname(list[j]).toLowerCase() == ".webm") {
serveDoc += "<a href="http://stackoverflow.com/feeds/tag/address" + list[j] + "">" + "<img width='100' height='100' src="http://stackoverflow.com/feeds/tag/address" />" + "</a> ";;
}*/ else {
serveDoc += "<a href="http://stackoverflow.com/feeds/tag/address" + list[j] + "">" + "<img width='100' height='100' src="http://stackoverflow.com/feeds/tag/address" + list[j] + ".png" />" + "</a> ";
}
} else {
serveDoc += "<a href="http://stackoverflow.com/feeds/tag/address" + list[j] + "">" + "<img width='100' height='100' src="http://stackoverflow.com/feeds/tag/address" + list[j] + "" />" + "</a> ";
}
}
serveDoc += "";
fs.writeFile("index.html", serveDoc, (err) => {
if (err) throw err;
});
}
});
setTimeout(() => {
process.exit(0);
}, 1000 * 60 * 30);
app.listen(80, (err) => {
if (err) {
throw err;
} else {
console.log("Listening on port 80.");
}
});Issue is that the program needs to be restarted every X minutes so that the list of media will update on it’s own. However, upon a restart, ffmpeg goes crazy and starts to spam a batch window under it’s name repeatedly over and over again without stopping. The only way out of it is to restart my computer.
I’ve tried to use PM2, Forever, Supervisor. Nodemon afaik won’t auto restart.