
Recherche avancée
Autres articles (111)
-
Le profil des utilisateurs
12 avril 2011, parChaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...) -
Configurer la prise en compte des langues
15 novembre 2010, parAccéder à la configuration et ajouter des langues prises en compte
Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...) -
Sélection de projets utilisant MediaSPIP
29 avril 2011, parLes exemples cités ci-dessous sont des éléments représentatifs d’usages spécifiques de MediaSPIP pour certains projets.
Vous pensez avoir un site "remarquable" réalisé avec MediaSPIP ? Faites le nous savoir ici.
Ferme MediaSPIP @ Infini
L’Association Infini développe des activités d’accueil, de point d’accès internet, de formation, de conduite de projets innovants dans le domaine des Technologies de l’Information et de la Communication, et l’hébergement de sites. Elle joue en la matière un rôle unique (...)
Sur d’autres sites (14389)
-
Download a part of youtube video using a powershell script
26 octobre 2024, par Nguyễn Đức MinhI'm writing this Powershell script :


$URL = "https://www.youtube.com/watch?v=KbuwueqEJL0"
$from = 00:06:15
$to = 00:09:17

$cmdOutput = (youtube-dl --get-url $URL) 

ffmpeg -ss $from -to $to -i -ss $from -to $to -i output.mkv



This script's purpose is to download a part of a Youtube video. I've set the variable $URL to specify the Youtube URL, while
$from
and$to
is the start and end time of the part I want to download.

$cmdOutput
is used to output the stream URL. The output would have two lines : the first one is the URL for the video stream, while the second one is the audio stream URL.

Currently, I don't know how to use the output as a variable and specify the line number of $cmdOutput to put it into the correct stream. I guess
and
would be replaced by something like
$cmdOutput[line 1]
, and$cmdOutput[line 2]
, though I know that those are incorrect.

I've consulted this answer, and it is handy for me to write this script. I've also read Boris Lipschitz's answer on how to do the same thing with Python, but his answer does not work.


In that script, the
-ss
flag inputs the seeking point, and the-t <duration></duration>
flag tells FFmpeg to stop encoding after the specified duration. For example, if the start time is 00:02:00 and the duration is 00:03:00, FFmpeg would download from 00:02:00 to 00:05:00, which is not the expected outcome. For some reason, his Python script skips the first 5 seconds of output, even if I replace the-t
flag with-to
. I've tried to edit his script, but it does not work unless you explicitly specify the time for both video and audio stream, as well as their respective stream URL.

-
My music doesn't play correctly and other problems - Discord.py
24 mars 2021, par DiaconoSo, I'm triying to let my bot play songs directly from the url (without downloading them like the song.mp3 method) but I'm having a hard time. The bot plays only 1 song and when I try to play another song it doesn't play it.
I'm also getting 2 errors :
video_link
is not defined andself
is not defined.
Also when I try to play live music like "lofi hip hop radio - beats to relax/study to" nothing happens.
Can you help me please ???

This is my code


import asyncio
import discord
from discord.ext import commands, tasks
import requests
import json
from random import choice
from discord.utils import get
from discord import FFmpegPCMAudio
import youtube_dl
bot = commands.Bot(command_prefix="!")



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')

 @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))

 if 'entries' in data:
 data = data['entries'][0]

 filename = data['url'] if stream else ytdl.prepare_filename(data)
 return cls(discord.FFmpegPCMAudio(filename, **ffmpeg_options), data=data)


@bot.command()
async def play(ctx, url):
 voice = await ctx.author.voice.channel.connect()
 player = await YTDLSource.from_url(url, loop=client.loop)
 ctx.voice_client.play(player, after=lambda e: print('Player error: %s' % e) if e else None)
 ydl_opts = {'format': 'bestaudio'}
 FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5', 'options': '-vn'}
 with youtube_dl.YoutubeDL(ydl_opts) as ydl:
 info = ydl.extract_info(video_link, download=False)
 URL = info['formats'][0]['url']
 voice = get(self.bot.voice_clients, guild=ctx.guild)
 voice.play(discord.FFmpegPCMAudio(URL, **FFMPEG_OPTIONS))



-
Nodejs youtube-dl ffmpeg audio stream
19 septembre 2015, par MajsterI have an issue with streaming video from YouTube. I have a http server which attempts to grab the raw video url, pull out the audio, convert it to mp3 and stream it to clients. The issue is that I’m not getting any audio on my client. Code is below (it’s all work in progress so there’s a lot of hardcoded stuff in there).
// The obvious stuff
var exec = require('child_process').exec;
var spawn = require('child_process').spawn;
var request = require('request');
var http = require('http');
//Listen for requests
var server = http.createServer(function(req, response) {
//This command runs youtube-dl and gets the video url
var command = './node_modules/youtube-dl/bin/youtube-dl --simulate --get-url http://www.youtube.com/watch?v=5qF_qbaWt3Q';
var exc = exec(command, function(error, stdout, stderr) {
var downloadUrl = stdout.toString(); //Convert the buffer to string
downloadUrl = downloadUrl.substring(0, downloadUrl.length - 1); //And strip the '\n' sign at the end
console.log("This thing is: '" + downloadUrl + "'");
response.writeHead(200, {
'Content-Type': 'audio/mpeg'
}); //When this is mpeg3 browser will download a blank .mp3 file now it tries to stream it
//Spawn the ffmpeg child process
var child = spawn('ffmpeg', ['-i', 'pipe:0', '-acodec', 'libmp3lame','-f', 'mp3', '-']);
child.stdout.pipe(response); //Pipe it so it writes to our response
// fs.createReadStream(filePath).pipe(child.stdin); - this is a testing thing ---> fs is filesystem and filePath is a link to a file - works
request({url: downloadUrl, headers: {'Youtubedl-no-compression': 'True'}}).pipe(child.stdin); //Request the data and pipe it to ffmpeg for processing
});
});I can provide any additional info if needed. But the thing works if I try to use a file instead of
request
call so there is no problem with ffmpeg and other settings. Is it possible that YouTube has a protection against downloading videos this way ? I tried to paste the URL ofconsole.log
into my browser and nothing happens - no video. How can I fix this ?