
Recherche avancée
Médias (91)
-
Corona Radiata
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Lights in the Sky
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Head Down
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Echoplex
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Discipline
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
-
Letting You
26 septembre 2011, par
Mis à jour : Septembre 2011
Langue : English
Type : Audio
Autres articles (50)
-
MediaSPIP version 0.1 Beta
16 avril 2011, parMediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...) -
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 (...) -
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 (...)
Sur d’autres sites (5691)
-
Getting Error while trying to download youtube video by using python
23 octobre 2024, par Aditya KumarCode


I'm working on a script that allows users to manually select and download separate video and audio streams from YouTube using yt-dlp. The script lists the available video and audio formats, lets the user choose their desired formats, and then merges them using FFmpeg.


Here’s the complete code :


import yt_dlp
import os
import subprocess

# Function to list and allow manual selection of video and audio formats
def download_and_merge_video_audio_with_selection(url, download_path):
 try:
 # Ensure the download path exists
 if not os.path.exists(download_path):
 os.makedirs(download_path)

 # Get available formats from yt-dlp
 ydl_opts = {'listformats': True}

 with yt_dlp.YoutubeDL(ydl_opts) as ydl:
 info_dict = ydl.extract_info(url, download=False)
 formats = info_dict.get('formats', [])

 # List available video formats (video only)
 print("\nAvailable video formats:")
 video_formats = [f for f in formats if f.get('vcodec') != 'none' and f.get('acodec') == 'none']
 for idx, f in enumerate(video_formats):
 resolution = f.get('height', 'unknown')
 filesize = f.get('filesize', 'unknown')
 print(f"{idx}: Format code: {f['format_id']}, Resolution: {resolution}p, Size: {filesize} bytes")

 # Let user select the desired video format
 video_idx = int(input("\nEnter the number corresponding to the video format you want to download: "))
 video_format_code = video_formats[video_idx]['format_id']

 # List available audio formats (audio only)
 print("\nAvailable audio formats:")
 audio_formats = [f for f in formats if f.get('acodec') != 'none' and f.get('vcodec') == 'none']
 for idx, f in enumerate(audio_formats):
 abr = f.get('abr', 'unknown') # Audio bitrate
 filesize = f.get('filesize', 'unknown')
 print(f"{idx}: Format code: {f['format_id']}, Audio Bitrate: {abr} kbps, Size: {filesize} bytes")

 # Let user select the desired audio format
 audio_idx = int(input("\nEnter the number corresponding to the audio format you want to download: "))
 audio_format_code = audio_formats[audio_idx]['format_id']

 # Video download options (based on user choice)
 video_opts = {
 'format': video_format_code, # Download user-selected video format
 'outtmpl': os.path.join(download_path, 'video.%(ext)s'), # Save video as video.mp4
 }

 # Audio download options (based on user choice)
 audio_opts = {
 'format': audio_format_code, # Download user-selected audio format
 'outtmpl': os.path.join(download_path, 'audio.%(ext)s'), # Save audio as audio.m4a
 }

 # Download the selected video format
 print("\nDownloading selected video format...")
 with yt_dlp.YoutubeDL(video_opts) as ydl_video:
 ydl_video.download([url])

 # Download the selected audio format
 print("\nDownloading selected audio format...")
 with yt_dlp.YoutubeDL(audio_opts) as ydl_audio:
 ydl_audio.download([url])

 # Paths to the downloaded video and audio files
 video_file = os.path.join(download_path, 'video.webm') # Assuming best video will be .mp4
 audio_file = os.path.join(download_path, 'audio.m4a') # Assuming best audio will be .m4a
 output_file = os.path.join(download_path, 'final_output.mp4') # Final merged file

 # FFmpeg command to merge audio and video
 ffmpeg_cmd = [
 'ffmpeg', '-i', video_file, '-i', audio_file, '-c', 'copy', output_file
 ]

 # Run FFmpeg to merge audio and video
 print("\nMerging video and audio...")
 subprocess.run(ffmpeg_cmd, check=True)

 print(f"\nDownload and merging complete! Output file: {output_file}")

 except Exception as e:
 print(f"An error occurred: {e}")

# Example usage
video_url = "https://www.youtube.com/watch?v=SOwk8FhfEZY" # Replace with your desired video URL
download_path = 'C:/Users/vinod/Downloads/VideoDownload' # Replace with your desired download path
download_and_merge_video_audio_with_selection(video_url, download_path)




Explanation :


The script first lists all available video formats (video-only) and audio formats (audio-only) from a given YouTube URL.


It allows the user to manually select their preferred video and audio formats.


After downloading the selected formats, it merges the video and audio streams into a single file using FFmpeg.


Error


while trying to run above mentioned code , I am getting this error :


Merging video and audio...
An error occurred: [WinError 2] The system cannot find the file specified



Requirements :




yt-dlp :
pip install yt-dlp






FFmpeg : Make sure you have FFmpeg installed and added to your system's PATH.




-
Discord.py rewrite play audio from youtube into voice chat
23 avril 2021, par John Henry 5I'm trying to get a bot that can join a voice chat on command and then play some audio extracted from a youtube video. I don't know how to do this and all the code that I've gotten does not seem to work. Does anyone know how to do this ?


@client.command() async def play(ctx):
 channel = ctx.message.author.voice.channel
 voice_client = await channel.connect()

 opts = {'format': 'bestaudio'}
 FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_streamed 1 - 
 reconnect_delay_max 5', 'options': '-vn'}

 with youtube_dl.YoutubeDL(opts) as ydl:
 song_info = ydl.extract_info('video', download=False)
 URL = song_info['formats'][0]['url']
 
 voice_client.play(FFmpegPCMAudio(URL, **FFMPEG_OPTIONS))



-
Set the filename downloaded via youtube-dl to a variable [closed]
22 septembre 2020, par Jim JamilThis is the current script, it's a Windows batch file that prompts for a Youtube url and then downloads the best audio in m4a. It's basically cobbled together and uses aria2 to manage the download.


@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
(set /p var1="Url? " && youtube-dl -f bestaudio[ext=m4a] --external-downloader aria2c --external-downloader-args "-j 16 -s 16 -x 16 -k 5M" --restrict-filenames -o "%%(title)s.%%(ext)s" --add-metadata --embed-thumbnail !Var1!)
ENDLOCAL
pause



After asking for the url, I want to also prompt the user to input the start and end times to trim the audio, which would be done by ffmpeg post download.


Something like :


ffmpeg -i file.m4a -ss 00:00:20 -to 00:00:40 -c copy file-2.m4a



Based on this : https://unix.stackexchange.com/questions/182602/trim-audio-file-using-start-and-stop-times/302469#302469


The beginning and end times would need to be variables set by user input in
00:00:00
format, but not sure how to add the ffmpeg post-processing at the end or how it would all fit together. I want to add this trimming feature to remove some of the preamble on podcasts and get straight to the guest part of the show.

The
--embed-thumbnail
is optional, and won't work anyway unless Atomic Parsley is present. FFmpeg often has trouble with Album Art anyway so I usually just use-vn
on the final output file.