ten bełkot to chyba chat gmd pisał bo
>python
>wywoływanie yt-dlp napisanego w pythonie przez subprocess
>python
>wywoływanie yt-dlp napisanego w pythonie przez subprocess
nowy hosting elo. sprawdzanie statusu bana juz powinno jezdzic
#!/bin/bash
check_silence() {
local input_file=$1
local silence_duration=$(ffmpeg -i "$input_file" -af silencedetect=n=-50dB:d=10 -f null - 2>&1 | grep "silence_duration" | awk '{print $5}' | sort -n | tail -n 1)
if (( $(echo "$silence_duration > 10" | bc -l) )); then
echo "Silence detected for more than 10 seconds. Exiting."
exit 0
fi
}
main() {
local date=$(date +"%Y%m%d_%H%M%S")
local output_file="/srv/picochan/Media/orgonity_$date.ogg"
yt-dlp "https://dlive.tv/RadioRadioPL" -o - | \
ffmpeg -i - -vn -c:a libvorbis -b:a 128k -f ogg "$output_file"
check_silence "$output_file"
echo "File saved: $output_file"
}
main
(((jak sie nie podoba napiszcie lepszy w 2 linijkach)))
import os
import subprocess
import paramiko
from time import sleep
# Funkcja pobierająca transmisję z DLive za pomocą yt-dlp
def download_stream():
try:
subprocess.run([
'yt-dlp',
'https://dlive.tv/RadioRadioPL',
'-o', 'stream.mp4'
], check=True)
except subprocess.CalledProcessError as e:
print(f"Błąd podczas pobierania: {e}")
# Funkcja konwertująca pobrany plik do MP3
def convert_to_mp3():
try:
subprocess.run([
'ffmpeg',
'-i', 'stream.mp4',
'-vn',
'-ab', '128k',
'output.mp3'
], check=True)
except subprocess.CalledProcessError as e:
print(f"Błąd podczas konwersji: {e}")
# Funkcja dzieląca plik na segmenty o maksymalnym rozmiarze 30MB
def split_mp3():
try:
subprocess.run([
'ffmpeg',
'-i', 'output.mp3',
'-f', 'segment',
'-segment_time', '1800', # Czas segmentów w sekundach (np. 30 min)
'-c', 'copy',
'segment_%03d.mp3'
], check=True)
except subprocess.CalledProcessError as e:
print(f"Błąd podczas dzielenia plików: {e}")
# Funkcja przesyłająca plik na serwer
def upload_to_server(filename):
host = "kazachstan.biz"
port = 22
username = "twoje_uzytkownik"
password = "twoje_haslo"
try:
transport = paramiko.Transport((host, port))
transport.connect(username=username, password=password)
sftp = paramiko.SFTPClient.from_transport(transport)
sftp.put(filename, f'/remote/path/{filename}')
sftp.close()
transport.close()
print(f'Plik {filename} został przesłany na serwer.')
except Exception as e:
print(f"Błąd podczas przesyłania: {e}")
# Główna funkcja
def main():
while True:
download_stream()
convert_to_mp3()
split_mp3()
# Przesyłanie każdego segmentu na serwer
for file in os.listdir('.'):
if file.startswith('segment_') and file.endswith('.mp3'):
# Sprawdź, czy plik ma mniej niż 30 MB
if os.path.getsize(file) <= 30 * 1024 * 1024:
upload_to_server(file)
os.remove(file) # Usuń plik po przesłaniu
# Oczekiwanie przed kolejnym cyklem (np. 30 min)
sleep(1800)
if name == "main":
main()