Bienvenue invité ( Connexion | Inscription )
16 Dec 2025, 11:52
Message
#1
|
|
|
Adepte de Macbidouille ![]() Groupe : Membres Messages : 139 Inscrit : 22 Aug 2019 Membre no 208 767 |
🏊♂️ Tutoriel macOS (débutant)
Mettre automatiquement RSS + YouTube sur un lecteur MP3 de natation (clé USB) ⸻ 🔹 À quoi ça sert (en clair) Les lecteurs MP3 étanches pour la natation (Sony, Shokz, H2O Audio, Finis…) ont des limites : • pas de Wi-Fi • pas de streaming • pas d’applications • classement alphabétique uniquement L’idée est donc de préparer à l’avance le contenu audio sur Mac. Ce tutoriel explique comment : • récupérer automatiquement • un journal audio via RSS (radio/podcast) • la dernière vidéo d’une chaîne YouTube (audio uniquement) • convertir en MP3 • copier sur un lecteur MP3 de natation (clé USB) • garantir que ces fichiers soient lus en premier ⸻ 🔹 Résultat final Sur la clé USB / lecteur MP3, on obtient par exemple : 01_2025-11-01_RSS_News.mp3 02_2025-11-01_YouTube_News.mp3 ➡️ Le lecteur lit d’abord le journal radio, puis l’émission YouTube, puis le reste de la musique. ⸻ 🔹 Étape 0 – Vérifier le nom de la clé USB 1. Branche ton lecteur MP3 2. Ouvre le Terminal 3. Tape : Code ls /Volumes Note exactement le nom qui apparaît (ex. MP3 SWIM). ⸻ 🔹 Étape 1 – Installer les outils (une seule fois) Installer Homebrew (si nécessaire) Code /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)” Puis : Code echo ‘eval “$(/opt/homebrew/bin/brew shellenv)”’ >> ~/.zprofile eval “$(/opt/homebrew/bin/brew shellenv)” Vérifier : Code brew –version ⸻ Installer les programmes nécessaires Code brew install python ffmpeg yt-dlp Installer les bibliothèques Python : Code python3 -m pip install requests feedparser ⸻ 🔹 Étape 2 – Créer le dossier des scripts Code mkdir -p ~/Scripts ⸻ 🔹 Étape 3 – Créer le script 1. Ouvrir l’éditeur simple : Code nano ~/Scripts/swim_mp3_sync.py 2. Copier-coller tout le code ci-dessous : Code import os, time, shutil, subprocess, requests, feedparser, tempfile from datetime import datetime ====== A MODIFIER ====== USB_NAME = “MP3 SWIM” # Nom exact de la clé USB RSS_URL = “https://feeds.megaphone.fm/RCS6570791877” YOUTUBE_CHANNEL = “https://www.youtube.com/@tgla7/videos” ======================= DOWNLOAD_DIR = os.path.expanduser(”~/Mp3 Swimming pool”) CHECK_INTERVAL = 5 def ensure_folder(path): os.makedirs(path, exist_ok=True) def usb_path(): path = f”/Volumes/{USB_NAME}” return path if os.path.isdir(path) else None def download_rss(): print(“RSS : récupération du dernier épisode…”) feed = feedparser.parse(RSS_URL) entry = feed.entries[0] url = entry.enclosures[0].href tmp = tempfile.mktemp() r = requests.get(url, stream=True) with open(tmp, "wb") as f: for chunk in r.iter_content(256*1024): f.write(chunk) mp3 = os.path.join(DOWNLOAD_DIR, "rss.mp3") subprocess.run(["ffmpeg", "-y", "-i", tmp, mp3], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) os.remove(tmp) print("RSS : OK") return mp3 def download_youtube(): print(“YouTube : récupération de la dernière vidéo (audio)…”) output = os.path.join(DOWNLOAD_DIR, “yt.%(ext)s”) subprocess.run([ “yt-dlp”, “-x”, “–audio-format”, “mp3”, “–playlist-end”, “1”, “-o”, output, YOUTUBE_CHANNEL ], check=True) print("YouTube : OK") return os.path.join(DOWNLOAD_DIR, "yt.mp3") def sync_files(rss_mp3, yt_mp3): usb = usb_path() if not usb: print(“Clé USB non détectée, attente…”) return False today = datetime.now().strftime("%Y-%m-%d") rss_dest = os.path.join(usb, f"01_{today}_RSS_News.mp3") yt_dest = os.path.join(usb, f"02_{today}_YouTube_News.mp3") # Supprime uniquement les anciens fichiers news for f in os.listdir(usb): if f.startswith(("01_", "02_")) and "News" in f: try: os.remove(os.path.join(usb, f)) except: pass shutil.copy2(rss_mp3, rss_dest) shutil.copy2(yt_mp3, yt_dest) print("Copie terminée sur la clé USB.") return True if name == “main”: ensure_folder(DOWNLOAD_DIR) print(“Téléchargement RSS + YouTube…”) rss_mp3 = download_rss() yt_mp3 = download_youtube() print("Branche la clé MP3 si ce n’est pas déjà fait.") while not sync_files(rss_mp3, yt_mp3): time.sleep(CHECK_INTERVAL) 3. Sauvegarder : • CTRL + O → Entrée • CTRL + X ⸻ 🔹 Étape 4 – Lancer le script Dans le Terminal : Code python3 ~/Scripts/swim_mp3_sync.py Laisser le Terminal ouvert, puis brancher le lecteur MP3. ⸻ 🔹 Ce que fait le script (important) • ❌ ne supprime pas ta musique • ✅ supprime uniquement les anciens fichiers 01_...News.mp3 et 02_...News.mp3 • ✅ garantit l’ordre de lecture sur un MP3 de natation • ✅ fonctionne hors ligne une fois la clé préparée ⸻ 🔹 Personnalisation rapide Changer de chaîne YouTube : Code YOUTUBE_CHANNEL = “https://www.youtube.com/@AutreChaine” Changer de flux RSS : Code RSS_URL = “https://exemple.com/flux_audio.xml” Changer de lecteur MP3 : Code USB_NAME = “NOM_DE_LA_CLE” ⸻ 🔹 Conclusion Ce workflow est né d’un besoin très concret : écouter de l’actualité parlée hors ligne sur un lecteur MP3 de natation. Simple, robuste, sans cloud, sans appli inutile. Une fois en place : on branche → on nage → on écoute. -------------------- MBP 16 M1Max 64G 8T Qwerty APP+, Mac Studio M1 Ultra 20-core CPU 64GB 4TB SSD,
|
|
|
|
emma_xoxoxox Lecteur MP3 de natation : automatiser RSS + YouTube vers une clé USB (macOS)(TUTO) 16 Dec 2025, 11:52
Fars Excellent !
Ça c’est de la bidouille, ça ... 18 Dec 2025, 20:16![]() ![]() |
| Nous sommes le : 30th January 2026 - 07:54 |