85 lines
3.0 KiB
Python
85 lines
3.0 KiB
Python
import requests
|
|
import time
|
|
|
|
# Configurer l'adresse et le port de l'interface Web de VLC
|
|
VLC_WEB_URL = 'http://localhost:8080'
|
|
VLC_PASSWORD = 'kiki' # Remplacez ceci par le mot de passe configuré dans l'interface Web
|
|
DEBUG = False
|
|
|
|
def is_vlc_running():
|
|
try:
|
|
response = requests.get(f'{VLC_WEB_URL}/requests/status.json', auth=('', VLC_PASSWORD))
|
|
response.raise_for_status()
|
|
return True
|
|
except requests.RequestException:
|
|
return False
|
|
|
|
def get_vlc_status():
|
|
try:
|
|
response = requests.get(f'{VLC_WEB_URL}/requests/status.json', auth=('', VLC_PASSWORD))
|
|
response.raise_for_status()
|
|
return response.json()
|
|
except requests.RequestException as e:
|
|
print(f"Erreur lors de la récupération de l'état de VLC : {e}")
|
|
return None
|
|
|
|
def send_vlc_command(command, check_playing=False):
|
|
if not is_vlc_running():
|
|
print(f"VLC n'est pas accessible à {VLC_WEB_URL}. Assurez-vous que VLC est ouvert et que l'interface Web est activée.")
|
|
return
|
|
|
|
if check_playing:
|
|
status = get_vlc_status()
|
|
if status is not None:
|
|
state = status.get('state')
|
|
if state != 'playing':
|
|
if DEBUG:
|
|
print(f"La commande '{command}' n'est pas nécessaire. État actuel : {state}")
|
|
return
|
|
try:
|
|
response = requests.get(f'{VLC_WEB_URL}/requests/status.json?command={command}', auth=('', VLC_PASSWORD))
|
|
response.raise_for_status()
|
|
if DEBUG:
|
|
print(f"Commande '{command}' envoyée à VLC.")
|
|
except requests.RequestException as e:
|
|
if DEBUG:
|
|
print(f"Erreur lors de l'envoi de la commande '{command}' à VLC : {e}")
|
|
|
|
def seek_to_time(minutes, seconds):
|
|
# Convertir le temps en secondes
|
|
total_seconds = minutes * 60 + seconds
|
|
send_vlc_command(f'seek&val={total_seconds}')
|
|
|
|
def decrease_volume():
|
|
"""
|
|
Decrease the volume of VLC to 0 with fixed step and duration.
|
|
"""
|
|
if not is_vlc_running():
|
|
print(f"VLC n'est pas accessible à {VLC_WEB_URL}. Assurez-vous que VLC est ouvert et que l'interface Web est activée.")
|
|
return
|
|
|
|
try:
|
|
# Récupérer le volume actuel
|
|
status = get_vlc_status()
|
|
if status is None:
|
|
return
|
|
current_volume = int(status.get('volume', 256))
|
|
|
|
# Paramètres fixes
|
|
step_duration = 0.5 # Durée en secondes entre chaque diminution de volume
|
|
volume_step = 5 # Diminution du volume par étape
|
|
|
|
while current_volume > 0:
|
|
current_volume -= volume_step
|
|
if current_volume < 0:
|
|
current_volume = 0
|
|
send_vlc_command(f'volume&val={int(current_volume)}')
|
|
time.sleep(step_duration)
|
|
|
|
# S'assurer que le volume est à 0
|
|
send_vlc_command('volume&val=0')
|
|
if DEBUG:
|
|
print("Volume baissé à 0.")
|
|
except requests.RequestException as e:
|
|
if DEBUG:
|
|
print(f"Erreur lors de la diminution du volume : {e}") |