[PYTHON] Partager des listes de lecture VLC entre PC et Android

Aperçu

Je voulais utiliser la même liste de lecture pour les fichiers musicaux du NAS sur PC et Android.

Cette fois, créez-le avec le fichier de playlist "xspf" dans VLC.

Même si je crée une liste de lecture sur mon PC et que je l'utilise sur Android tel quel, j'obtiens une erreur disant "Le fichier de localisation: /// ne peut pas être lu" et je ne peux pas l'utiliser.

À la suite de diverses enquêtes, si le chemin du fichier de la liste de lecture est défini sur ** chemin relatif **, il peut être ouvert sur PC et Android.

Procédure de création de liste de lecture

  1. Créez un dossier pour enregistrer la playlist À ce stade, si vous rendez le fichier cible aussi proche que possible de l'emplacement, il sera plus facile de penser au chemin relatif lors de la réécriture du fichier ultérieurement. プレイリスト作成説明図1.png

  2. Chargez le fichier vidéo dans le VLC de votre PC en déposant et en faisant glisser

  3. Enregistrez la liste de lecture

  4. Ouvrez la liste de lecture enregistrée et réécrivez-la dans un chemin relatif Comme il y a beaucoup de réécriture ici, je vais le faire avec un script etc.

  5. Sera disponible sur PC et Andorid

  6. Très pratique

Python à réécrire dans le chemin relatif utilisé à l'étape 3

プレイリスト作成説明図2.png Quand j'ouvre "xspf" créé côté PC, le chemin du fichier est écrit comme "chemin absolu", j'ai donc décidé d'utiliser Python pour le réécrire comme "chemin relatif".

Le chemin avant la réécriture dans "xspf" est ʻE: // music / Album 01 / music.mp3``, et si vous en faites un chemin relatif à l'emplacement du dossier ci-dessus, ce sera`` ../ Album 01 / Ça devient music.mp3 ''.

Cette fois, le chemin du fichier est ʻE: // `, mais si vous le réécrivez pour la même chose avec ** adresse IP partagée **, vous pouvez l'utiliser tel quel.

Alors, créez le Python suivant dans le ** dossier Playlist ** et exécutez-le pour le réécrire dans un chemin relatif.

import shutil
import os
from pathlib import Path

def replace(file_path):
    file_name = file_path
    #Créer un fichier de sauvegarde
    print('path: ', file_path)
    back_name = str(file_name) + '.bak'
    print('back_name: ', back_name)
    shutil.copy(file_name, back_name)

    with open(file_name , encoding=`utf-8`) as f:
        data_lines = f.read()


    #Remplacement de la chaîne
    # 「["Quand"]""%5B"Quand"%Si vous ne le remplacez pas par "5D", "vlc":Il devient "nop" et ne lit pas
    data_lines = data_lines.replace('file:///E://music/', '../').replace('[', '%5B').replace(']', '%5D')

    #Enregistrer avec le même nom de fichier
    with open(file_name, `w`, encoding=`utf-8`) as f:
        f.write(data_lines)

#Obtenez le dossier où se trouve votre py
p_temp = os.path.dirname(__file__)
#Obtenir une liste de fichiers xspf dans un dossier
for f in Path(p_temp).glob(`**/*.xspf`):
    replace(f)

Recommended Posts

Partager des listes de lecture VLC entre PC et Android
Créez et exécutez Discord Bot sur un appareil Android
Interagissez avec Python sur Android à partir d'un PC via adb
Comment partager le presse-papiers Vim avec OS sur Ubuntu 18.04.3 LTS
Programmation de périphérique USB avec C natif sur Android 5.0 et supérieur