Manuel de déploiement

Configuration de l'environnement (.env)

Ce document détaille les variables d'environnement nécessaires au bon déploiement du conteneur Docker Podcast Utilities, incluant les identifiants de l'hôte et les secrets des API.

🎯 Objectif

Le fichier .env est le premier maillon de la configuration. Il est lu au démarrage par l'application afin de pouvoir récupérer de manière sécurisée les paramètres fondamentaux et les accès externes (comme les paramètres Spotify, les identifiants des réseaux sociaux, ...).

⚙️ Variables d'environnement

1. Configuration Bitly

🔗 👉 Consulter le guide : Obtenir les identifiants Bitly

Variable Type de valeur
BITLY_TOKEN Clé alphanumérique

2. Configuration Discord

🔗 👉 Consulter le guide : Configurer un Webhook Discord

Variable Type de valeur
DISCORD_WEBHOOK_URL URL du webhook Discord (Lié au robot utilisé)

3. Configuration Facebook

🔗 👉 Consulter le guide : Obtenir les identifiants Facebook

Variable Type de valeur
FACEBOOK_TOKEN Clé alphanumérique

4. Configuration MariaDb

🔗 👉 Consulter le guide : Configurer la base de données MariaDB

Variable Type de valeur
MARIADB_USER Chaîne de caractères
MARIADB_PASSWORD Chaîne de caractères

5. Configuration Spotify

🔗 👉 Consulter le guide : Obtenir les identifiants Spotify Creators

Variable Type de valeur
SPOTIFY_REDIRECT_URI URL: La valeur est https://creators.spotify.com
SPOTIFY_SP_DC Clé alphanumérique
SPOTIFY_SP_KEY Clé alphanumérique
SPOTIFY_CLIENT_ID Clé alphanumérique

Astuce: Le plus simple pour obtenir ces valeurs est d'utiliser l'extension fournie sur le dépôt GitLab

6. Configuration X

🔗 👉 Consulter le guide : Obtenir les identifiants API X (Twitter)

Variable Type de valeur
X_CONSUMER_KEY Clé alphanumérique
X_CONSUMER_SECRET Clé alphanumérique
X_ACCESS_TOKEN Clé alphanumérique
X_ACCESS_TOKEN_SECRET Clé alphanumérique

7. Configuration Youtube

🔗 👉 Consulter le guide : Obtenir les identifiants YouTube

Variable Type de valeur
YOUTUBE_CLIENT_ID Clé alphanumérique
YOUTUBE_CLIENT_SECRET Clé alphanumérique
YOUTUBE_REFRESH_TOKEN Clé alphanumérique

Cette dernière configuration n'a pas (pour l'instant) d'utilité et peut donc être ignorée.

⚠️ Points d'attention

Paramétrage du fichier de configuration (.ini)

Ce document détaille l'ensemble des paramètres de fonctionnement de Podcast Utilities via le fichier .ini. Ce fichier est obligatoire.

🎯 Objectif

Le fichier de configuration .ini agit comme le "cerveau" métier de l'application. Il contient tous les réglages de formatage, les chemins locaux vers vos ressources (logos, polices), ainsi que vos préférences d'automatisation.

⚙️ Sections et Paramètres

1. [podcast_details]

Clé Requis Description
podcast_id Oui Identifiant unique de votre podcast (hosté sur Spotify).
podcast_url Oui L'URL du flux RSS de votre podcast.
use_short_url Oui Booléen (True/False) indiquant si les liens générés doivent être raccourcis (via Bitly).

2. [discord_details]

Clé Requis Description
post_message Oui Booléen activant (True) ou désactivant (False) la publication automatique sur Discord.

3. [facebook_details]

Clé Requis Description
default_tags Non Liste de hashtags séparés par des virgules, inclus systématiquement dans vos publications Facebook.
post_message Oui Booléen activant ou désactivant la publication automatique sur Facebook.

4. [X_details]

Clé Requis Description
default_tags Non Liste de hashtags séparés par des virgules, inclus systématiquement dans vos publications X.
max_length Oui Nombre entier définissant la limite de caractères du message pour respecter les contraintes de la plateforme (ex: 280).
post_message Oui Booléen activant ou désactivant la publication automatique sur X.

5. [youtube_details]

Clé Requis Description
auto_upload Oui Booléen activant ou désactivant le téléversement de la vidéo générée sur YouTube.
private Oui Booléen définissant si la vidéo téléversée doit rester en statut "Privé" (True) ou être publique (False).
notify_subscribers Oui Booléen indiquant s'il faut notifier vos abonnés YouTube de cette nouvelle sortie.
category Oui Code numérique définissant la catégorie YouTube de votre vidéo. La liste des valeurs possibles est disponible ici.
playlist_id Non Identifiant unique de la playlist YouTube dans laquelle l'épisode sera classé.
default_tags Non Liste de mots-clés séparés par des virgules, propres au référencement YouTube.

6. [audio_split_details]

Clé Requis Description
start_at Non Horodatage de début si vous souhaitez générer un extrait. Laissez vide pour utiliser l'épisode complet.
duration Non Durée exacte de l'extrait audio à conserver. Laissez vide pour garder l'épisode entier.

7. [graphic_details]

Clé Requis Description
color Oui Code couleur au format hexadécimal (sans le symbole #) utilisé pour l'habillage de la vidéo.
logo_file_name Oui Chemin relatif vers l'image de votre logo à incruster.

8. [text_details]

Clé Requis Description
text_message Non Texte fixe permanent à afficher sur le rendu vidéo (ex: l'adresse de votre site web).
text_length_limit Oui Nombre entier fixant la limite de caractères pour l'affichage dynamique du titre de l'épisode.
font_file_name Oui Chemin relatif vers le fichier de police de caractères (.ttf) à utiliser pour le texte.

9. [mariaDb_details] (Optionnel - pour utilisateurs avancés)

Par défaut, Podcast Utilities gère automatiquement son historique via une base de données locale (SQLite). Vous n'avez donc pas besoin d'inclure cette section.

Si vous êtes un utilisateur avancé et souhaitez utiliser un serveur externe, intégrez les clés ci-dessous.

Clé Requis Description
DBName Non Le nom de la base de données dédiée (Elle doit exister).
host Non L'adresse IP ou le nom d'hôte de votre serveur MariaDB.
port Non Le port de communication du serveur (généralement 3306).

10. [other]

Clé Requis Description
ask_tags Oui Booléen (True/False) indiquant si le script doit faire une pause pour vous demander de taper des tags spécifiques lors de la conversion d'un épisode en vidéo Youtube.
export_stats Oui Booléen définissant si le système doit exporter/sauvegarder les statistiques de votre podcast.
social_network_template_path Oui Chemin relatif vers le fichier modèle (.template) utilisé pour la mise en forme de vos publications textes.

⚠️ Points d'attention

Obtenir les identifiants Bitly

Ce guide explique pas à pas comment générer et récupérer un jeton d'accès personnel (Access Token) depuis la plateforme Bitly afin de l'intégrer à Podcast Utilities.

🎯 Objectif

Dans l'écosystème de Podcast Utilities, Bitly est utilisé pour raccourcir automatiquement les liens de vos épisodes (vers Spotify, YouTube, etc.) lors du formatage de vos publications pour les réseaux sociaux.

Pour autoriser l'application à créer ces liens courts directement sur votre compte, vous devez lui fournir une clé d'authentification unique appelée BITLY_TOKEN.

📝 Étapes à suivre

  1. Rendez-vous sur le site officiel de Bitly et connectez-vous à votre compte (ou créez un compte gratuit si vous n'en possédez pas encore).
  2. Une fois sur votre tableau de bord, regardez dans la barre latérale gauche et cliquez sur l'icône d'engrenage Settings (Paramètres).
  3. Dans le menu des paramètres (souvent situé à gauche), descendez jusqu'à la section Developer settings (Paramètres développeur) et cliquez sur API.
  4. Dans l'encart Access token, il vous sera demandé de saisir à nouveau votre mot de passe Bitly par mesure de sécurité. Entrez-le et validez.
  5. Cliquez sur le bouton Generate token (Générer un jeton).
  6. Une longue clé alphanumérique s'affiche à l'écran. C'est votre jeton d'accès. Cliquez sur le bouton pour la copier dans votre presse-papiers.

⚙️ Intégration dans le fichier .env

Retournez dans votre fichier .env à la racine de votre dossier podcast-utilities, et collez cette clé face à la variable correspondante :

BITLY_TOKEN=collez_votre_cle_alphanumerique_ici

⚠️ Points d'attention

Configurer un Webhook Discord

Ce guide explique pas à pas comment créer et récupérer une URL de Webhook Discord afin de permettre à Podcast Utilities de communiquer avec votre serveur.

🎯 Objectif

Dans l'écosystème de Podcast Utilities, l'intégration Discord permet au système d'envoyer automatiquement des messages (comme des alertes ou des notifications de publication) directement dans l'un de vos salons textuels.

Pour autoriser l'application à publier ces messages sans nécessiter un compte utilisateur complet, vous devez générer une URL unique appelée DISCORD_WEBHOOK_URL.

📝 Étapes à suivre

  1. Ouvrez l'application Discord (sur ordinateur ou via votre navigateur) et rendez-vous sur votre serveur.
  2. Identifiez le salon textuel dans lequel vous souhaitez recevoir les notifications (par exemple, un salon #annonces ou #logs-podcast).
  3. Survolez le nom de ce salon avec votre souris et cliquez sur l'icône d'engrenage ⚙️ Modifier le salon.
  4. Dans le menu latéral de gauche, cliquez sur l'onglet Intégrations.
  5. Cliquez sur Créer un webhook (ou sur Voir les webhooks puis Nouveau webhook si vous en avez déjà d'autres).
  6. Personnalisez votre webhook : donnez-lui un nom clair (ex: "Podcast Utilities") et ajoutez éventuellement le logo de votre projet.
  7. Cliquez sur le bouton Copier l'URL du webhook.
  8. N'oubliez pas de cliquer sur Enregistrer les modifications en bas de l'écran.

⚙️ Intégration dans le fichier .env

Retournez dans votre fichier .env à la racine de votre dossier de déploiement, et collez l'URL face à la variable correspondante :

DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/votre_identifiant/votre_cle_secrete


⚠️ Points d'attention

Obtenir les identifiants Facebook

Ce guide explique pas à pas comment générer et récupérer un jeton d'accès (Access Token) depuis le portail développeur de Meta afin de permettre à Podcast Utilities de publier sur votre page Facebook.

🎯 Objectif

Dans l'écosystème de Podcast Utilities, l'intégration Facebook permet au système d'interagir automatiquement avec la Page Facebook de votre podcast (par exemple, pour y annoncer la sortie d'un nouvel épisode).

Pour autoriser l'application à publier du contenu en votre nom sans interface graphique, vous devez générer une clé d'authentification spécifique appelée FACEBOOK_TOKEN.

📝 Étapes à suivre

  1. Rendez-vous sur le portail Meta for Developers et connectez-vous avec votre compte Facebook habituel.
  2. Cliquez sur Mes applications (My Apps) en haut à droite, puis sur le bouton vert Créer une application.
  3. Suivez l'assistant de création : choisissez un type d'application (généralement Entreprise ou Autre), donnez-lui le nom de votre projet (ex: "Podcast Utilities") et validez.
  4. Une fois sur le tableau de bord de votre nouvelle application, cliquez sur le menu Outils (Tools) dans la barre supérieure, puis sélectionnez Explorateur d'API Graph (Graph API Explorer).
  5. Dans le panneau de droite de l'explorateur :
    • Sous Application, vérifiez que votre nouvelle application est bien sélectionnée.
    • Sous Jeton de l'utilisateur ou de la Page, cliquez sur le menu déroulant et choisissez Obtenir un jeton d'accès de Page (Get Page Access Token).
  6. Sélectionnez la Page Facebook liée à votre podcast. Une fenêtre pop-up vous demandera d'accorder les permissions (assurez-vous d'autoriser la gestion et la création de publications).
  7. Cliquez sur le bouton Générer le jeton d'accès.
  8. Une longue clé alphanumérique s'affiche dans le champ supérieur. Cliquez dessus pour la copier.

⚙️ Intégration dans le fichier .env

Retournez dans votre fichier .env à la racine de votre dossier de déploiement, et collez cette clé face à la variable correspondante :

FACEBOOK_TOKEN=collez_votre_cle_alphanumerique_ici

⚠️ Points d'attention

Configurer la base de données MariaDB

Ce guide explique pas à pas comment préparer une base de données MariaDB dédiée pour Podcast Utilities. Cette configuration est optionnelle : par défaut, le système génère et utilise une base SQLite locale qui ne nécessite aucun paramétrage.

🎯 Objectif

Dans l'écosystème de Podcast Utilities, la base de données sert à stocker l'historique de vos épisodes et l'évolution de vos statistiques (écoutes Spotify et vues YouTube).

Si vous possédez déjà un serveur MariaDB (sur un NAS ou via Docker) et préférez y centraliser vos données, vous pouvez le connecter à l'application. L'avantage de cette intégration est son automatisation : vous avez uniquement besoin de fournir une base de données vide. Le script se chargera lui-même de créer toutes les tables nécessaires (episodes, ecoutes, vues) lors de son premier lancement.

📝 Étapes à suivre

Puisque la structure est gérée automatiquement par le code, la préparation côté serveur est extrêmement rapide :

  1. Connectez-vous à votre serveur MariaDB en utilisant votre outil de gestion habituel (phpMyAdmin, Adminer, ou en ligne de commande).
  2. Créez une nouvelle base de données vide (par exemple, nommez-la podcast_utilities).
  3. Créez un nouvel utilisateur dédié à cette base.
  4. Attribuez à cet utilisateur un mot de passe sécurisé et accordez-lui tous les privilèges (ALL PRIVILEGES) uniquement sur la base de données que vous venez de créer.
  5. C'est tout ! Ne créez aucune table manuellement.

Note : L'adresse de votre serveur (Hôte), le port de connexion et le nom de la base de données devront être renseignés dans votre fichier de configuration général (.ini). Le fichier .env ne gère que le stockage sécurisé des identifiants.

⚙️ Intégration dans le fichier .env

Retournez dans votre fichier .env à la racine de votre dossier de déploiement, et renseignez le nom d'utilisateur et le mot de passe que vous venez de créer :

MARIADB_USER=votre_nom_d_utilisateur
MARIADB_PASSWORD=votre_mot_de_passe_securise

⚠️ Points d'attention

Obtenir les identifiants Spotify Creators

Ce guide explique pas à pas comment récupérer vos identifiants d'authentification depuis Spotify Creators à l'aide de l'extension de navigateur dédiée, afin de permettre à Podcast Utilities d'interagir avec vos statistiques et vos épisodes.

🎯 Objectif

Dans l'écosystème de Podcast Utilities, l'intégration Spotify est cruciale pour récupérer les données de vos épisodes et interagir avec votre tableau de bord créateur.

Étant donné que Spotify Creators n'offre pas d'API publique standard pour ces actions spécifiques, l'application utilise vos cookies de session pour s'authentifier. Vous devez fournir trois clés spécifiques : SPOTIFY_SP_DC, SPOTIFY_SP_KEY et SPOTIFY_CLIENT_ID, ainsi que l'URL de redirection SPOTIFY_REDIRECT_URI.

📝 Étapes à suivre

La récupération manuelle de ces cookies dans les outils de développement du navigateur étant complexe et fastidieuse, une extension Google Chrome a été spécialement créée pour extraire automatiquement ces paramètres.

  1. Téléchargez et installez l'extension de navigateur disponible dans le dossier extension du dépôt GitLab de Podcast Utilities. (Si besoin, suivez les instructions du dépôt pour charger une extension non empaquetée).
  2. Ouvrez votre navigateur Google Chrome et rendez-vous sur le site Spotify Creators.
  3. Connectez-vous à votre compte podcast habituel.
  4. Une fois sur votre tableau de bord Spotify, cliquez sur l'icône de l'extension Podcast Utilities dans la barre de votre navigateur.
  5. Le script de l'extension va automatiquement capturer et afficher vos valeurs exactes pour sp_dc, sp_key et le client_id.
  6. Copiez ces valeurs pour les intégrer dans votre configuration.

⚙️ Intégration dans le fichier .env

Retournez dans votre fichier .env à la racine de votre dossier de déploiement, et renseignez les variables avec les valeurs extraites par l'extension :

SPOTIFY_REDIRECT_URI=https://creators.spotify.com
SPOTIFY_SP_DC=collez_la_valeur_sp_dc_ici
SPOTIFY_SP_KEY=collez_la_valeur_sp_key_ici
SPOTIFY_CLIENT_ID=collez_la_valeur_client_id_ici

⚠️ Points d'attention

Obtenir les identifiants API X (Twitter)

Ce guide explique pas à pas comment générer et récupérer les clés d'API (Consumer Keys et Access Tokens) depuis le portail développeur de X (anciennement Twitter) afin de permettre à Podcast Utilities de publier des messages.

🎯 Objectif

Dans l'écosystème de Podcast Utilities, l'intégration X permet d'automatiser la publication de tweets sur votre compte (par exemple, pour annoncer la mise en ligne d'un nouvel épisode).

Pour autoriser l'application à interagir et publier en votre nom, vous devez générer et fournir quatre clés d'authentification distinctes : X_CONSUMER_KEY, X_CONSUMER_SECRET, X_ACCESS_TOKEN et X_ACCESS_TOKEN_SECRET.

📝 Étapes à suivre

  1. Rendez-vous sur le portail développeur de X et connectez-vous avec le compte sur lequel vous souhaitez publier vos annonces.
  2. Accédez au tableau de bord (Developer Portal). Note : S'il s'agit de votre première visite, il vous sera demandé de vous inscrire au niveau d'accès développeur gratuit (Free tier).
  3. Dans le menu de gauche, sous Projects & Apps, cliquez sur votre application par défaut (ou créez-en une nouvelle en cliquant sur "Add App").
  4. Avant de générer les clés, vous devez configurer les droits. Allez dans les paramètres de l'application et repérez la section User authentication set up (Configuration de l'authentification). Cliquez sur Edit.
  5. C'est l'étape la plus importante : sous "App permissions", sélectionnez impérativement Read and Write (Lecture et Écriture) pour que le script puisse publier. Sauvegardez.
  6. Naviguez ensuite vers l'onglet Keys and Tokens (Clés et jetons) en haut de la page.
  7. Dans la section Consumer Keys, cliquez sur Generate (Générer) pour obtenir votre API Key (X_CONSUMER_KEY) et votre API Key Secret (X_CONSUMER_SECRET). Copiez-les.
  8. Dans la section Authentication Tokens, cliquez sur Generate pour obtenir votre Access Token (X_ACCESS_TOKEN) et votre Access Token Secret (X_ACCESS_TOKEN_SECRET). Copiez-les également.

⚙️ Intégration dans le fichier .env

Retournez dans votre fichier .env à la racine de votre dossier de déploiement, et collez ces quatre valeurs face aux variables correspondantes :

X_CONSUMER_KEY=collez_votre_api_key_ici
X_CONSUMER_SECRET=collez_votre_api_key_secret_ici
X_ACCESS_TOKEN=collez_votre_access_token_ici
X_ACCESS_TOKEN_SECRET=collez_votre_access_token_secret_ici

⚠️ Points d'attention

Obtenir les identifiants YouTube

Ce guide explique pas à pas comment configurer un projet Google Cloud et générer les identifiants OAuth 2.0 (Client ID, Secret et Refresh Token) nécessaires pour permettre à Podcast Utilities de publier des vidéos sur YouTube.

🎯 Objectif

Dans l'écosystème de Podcast Utilities, l'intégration YouTube a pour but de publier automatiquement vos épisodes (convertis au format vidéo) sur votre chaîne.

Cette procédure est la plus complexe car elle nécessite de créer une application sur la console Google Cloud, d'approuver des autorisations (via OAuth 2.0) et de générer manuellement un jeton de rafraîchissement (YOUTUBE_REFRESH_TOKEN). Ce jeton est indispensable pour que votre script puisse publier en arrière-plan sans demander votre accord à chaque exécution.

📝 Étapes à suivre

Phase 1 : Création du projet et activation de l'API

  1. Rendez-vous sur la Console Google Cloud et connectez-vous avec le compte Google lié à votre chaîne YouTube.
  2. Cliquez sur le menu déroulant des projets en haut à gauche de la barre de recherche et sélectionnez Nouveau projet. Nommez-le "Podcast Utilities" et cliquez sur Créer.
  3. Dans la barre de recherche en haut au centre, tapez YouTube Data API v3 et sélectionnez-la dans les résultats. Cliquez sur le bouton bleu Activer.

Phase 2 : Configuration de l'écran de consentement

  1. Dans le menu latéral de gauche, allez dans API et services > Écran de consentement OAuth.
  2. Choisissez le type d'utilisateur Externe et cliquez sur Créer.
  3. Remplissez les informations obligatoires (Nom de l'application, adresse e-mail d'assistance, et adresse e-mail du développeur tout en bas). Le reste peut être laissé vide. Cliquez sur Enregistrer et continuer.
  4. À l'étape des Champs d'application (Scopes), passez directement en cliquant sur Enregistrer et continuer.
  5. À l'étape Utilisateurs tests, cliquez sur Ajouter users et saisissez impérativement l'adresse e-mail de votre propre chaîne YouTube. Enregistrez.

Phase 3 : Création des identifiants

  1. Dans le menu de gauche, allez dans Identifiants (Credentials).
  2. Cliquez sur + CRÉER DES IDENTIFIANTS en haut, puis sur ID client OAuth.
  3. Sélectionnez le type d'application Application Web.
  4. Dans la section URI de redirection autorisés, ajoutez très exactement cette URL : https://developers.google.com/oauthplayground (cela nous servira pour la phase 4). Cliquez sur Créer.
  5. Une fenêtre s'affiche avec votre ID client (YOUTUBE_CLIENT_ID) et votre Code secret du client (YOUTUBE_CLIENT_SECRET). Copiez-les temporairement dans un bloc-notes.

Phase 4 : Obtention du Refresh Token

  1. Ouvrez un nouvel onglet et allez sur le Google OAuth 2.0 Playground.
  2. Cliquez sur l'icône Engrenage ⚙️ en haut à droite. Cochez la case Use your own OAuth credentials.
  3. Collez votre ID client et votre Code secret du client dans les champs correspondants. Fermez le petit menu d'engrenage.
  4. Dans la colonne de gauche (Step 1), cherchez YouTube Data API v3, déroulez le menu, cochez https://www.googleapis.com/auth/youtube.upload et cliquez sur le bouton bleu Authorize APIs.
  5. Connectez-vous avec votre compte Google et acceptez les avertissements de sécurité.
  6. Vous serez redirigé vers le Playground. Dans la colonne de gauche (Step 2), cliquez sur le bouton bleu Exchange authorization code for tokens.
  7. Dans la zone de texte qui s'affiche, repérez la ligne "refresh_token" et copiez la longue chaîne de caractères associée. C'est votre YOUTUBE_REFRESH_TOKEN.

⚙️ Intégration dans le fichier .env

Retournez dans votre fichier .env à la racine de votre dossier de déploiement, et renseignez vos trois clés fraîchement générées :

YOUTUBE_CLIENT_ID=collez_le_client_id_ici
YOUTUBE_CLIENT_SECRET=collez_le_client_secret_ici
YOUTUBE_REFRESH_TOKEN=collez_le_refresh_token_ici

⚠️ Points d'attention