YT_install V1.3 est un outil conçu pour installer du contenu audio et vidéo provenant de YouTube
Il permet de récupérer de la musique ou des vidéos à partir d’un lien YouTube ou d’une playlist
Il suffit de fournir l’URL du contenu souhaité
et le programme s’occupe du reste automatiquement
L’objectif de cet outil est de simplifier l’accès à vos contenus favoris
en les rendant disponibles localement sur votre appareil
yt_install.exe est conçu pour être simple d’utilisation et efficace
afin de proposer une expérience rapide et intuitive
Code OutSond V1.2
Qu’est-ce que Outsond.exe ?
Outsond est un lecteur audio conçu pour écouter de la musique et des podcasts en toute simplicité
Le service est entièrement basé sur le son : il n’y a pas de vidéo
uniquement de l’audio pour une expérience plus légère et rapide
Vous pouvez y écouter vos musiques préférées et découvrir des podcasts
grâce à un lecteur optimisé pour la performance et la simplicité d’utilisation
Outsond a été optimisé pour ce fonctionnement afin d’offrir une expérience
fluide, rapide et centrée uniquement sur l’audio
L’objectif est de proposer une interface simple, efficace et accessible, sans éléments inutiles
Pour utiliser Outsond, vous devez installer vos musiques ou podcasts via l'outil
YT_Install.exe
Code Ultra Booster V9
Code YT_install V2
comming soon
Code Menu_Installer.py
Code Installer_Vidéo.pyw
Code Installer_Music.pyw
import os
import time
from yt_dlp import YoutubeDL
tm = time.sleep
so = os.system
def main():
so("cls")
print(f"retourner au menu = 0")
ds= input("Dossier de sortie (default = downloads) : ").strip()
if ds.lower() == "0":
import menu_installer
menu_installer.menu()
return
if ds.startswith("http"):
print("❌ Tu as mis une URL au lieu d'un dossier.")
return
if not ds:
ds = "downloads"
os.makedirs(ds, exist_ok=True)
output_template = os.path.join(ds, "%(title)s.%(ext)s")
while True:
so("cls")
print(f"retourner au menu = 0")
print("\n - installer musique youtube - ")
url = input("URL (exit pour quitter) : ").strip()
if url == "0":
import menu_installer
menu_installer.menu()
return
if not url.startswith("http"):
print("❌ URL invalide")
tm(2)
so("cls")
continue
opts = {
"format": "bestaudio",
"outtmpl": output_template,
}
with YoutubeDL(opts) as ydl:
ydl.download([url])
input("\n✔ Terminé. Appuie sur Entrée pour continuer...")
os.system("cls")
pour pouvoir voir le code source
cliquer sur un des panneaux
si dessous
et après appuyer sur le
bouton allez voir
import os
player = None
def bind(app):
global player
player = app
def _safe_index(index):
if not player or not player.playlist:
return None
size = len(player.playlist)
if size == 0:
return None
return index % size
def play(index):
if not player or not player.playlist:
return
index = _safe_index(index)
if index is None:
return
path = player.playlist[index]
try:
media = player.instance.media_new(path)
media.add_option("no-video")
player.player.set_media(media)
player.player.play()
player.index = index
name = os.path.splitext(os.path.basename(path))[0]
player.label.config(text=name)
except Exception:
pass
def next_song():
if not player or not player.playlist:
return
play(player.index + 1)
def prev_song():
if not player or not player.playlist:
return
play(player.index - 1)
def replay():
if player and player.index >= 0:
play(player.index)
Code autonext.pyw
import threading
import time
import vlc
import next as nxt
player = None
running = False
_last_trigger = 0
def bind(app):
global player
player = app
def monitor():
global _last_trigger
while running:
if player is not None and player.player is not None:
try:
p = player.player
state = p.get_state()
length = p.get_length()
pos = p.get_time()
current_time = time.time()
if length > 0 and pos > 0:
is_ended = (
state == vlc.State.Ended
or pos >= length - 500
)
if is_ended and (current_time - _last_trigger > 1.0):
_last_trigger = current_time
nxt.next_song()
except Exception:
pass
time.sleep(0.05)
def start_monitor():
global running
if running:
return
running = True
t = threading.Thread(
target=monitor,
daemon=True
)
t.start()
Code addtime.pyw
import vlc
player = None
def bind(app):
global player
player = app
def _get_time():
try:
return player.player.get_time()
except:
return 0
def _get_length():
try:
return player.player.get_length()
except:
return 0
def add_10s():
if player is None:
return
try:
current = _get_time()
length = _get_length()
if length <= 0:
return
new_time = current + 10000
if new_time > length:
new_time = length
player.player.set_time(int(new_time))
except:
pass
def sub_10s():
if player is None:
return
try:
current = _get_time()
new_time = current - 10000
if new_time < 0:
new_time = 0
player.player.set_time(int(new_time))
except:
pass
Code outsond.pyw
player = None
muted = False
def bind(app):
global player
player = app
def apply_volume(volume):
if player is None:
return
if volume is None:
return
try:
player.player.audio_set_volume(volume)
except:
pass
try:
if hasattr(player, "volume"):
player.volume.set(volume)
except:
pass
def set_volume(val):
global user_volume
if player is None:
return
try:
volume = int(float(val))
except:
return
volume = max(0, min(100, volume))
user_volume = volume
apply_volume(volume)
def toggle_mute():
global muted
if player is None:
return
muted = not muted
try:
if muted:
player.player.audio_set_volume(0)
player.btn_mute.config(text="Unmute")
else:
if user_volume is not None:
player.player.audio_set_volume(user_volume)
player.btn_mute.config(text="Mute")
except:
pass