Comment synchroniser WMC avec une tablette Windows

Merci à @DFox pour ce script et ces instructions

Un script simple et un processus pour synchroniser automatiquement mes enregistrements TV du Media Center, les fichiers convertis par MCE Buddy et ceux sur mon Surface RT, y compris lorsque je les ai regardés sur ma Surface.

Deux fichiers sont nécessaires et peuvent être téléchargés ici :

  1. PurgeWatchedTV.vbs
  2. Sync TV.xml

Le script et le processus sont simples, mais j’ai pensé décrire tous les détails ci-dessous.

En résumé, sur l’appareil cible, vous devez importer la tâche planifiée Windows « Sync TV » et le script « PurgeWatchedTV ». J’ai exporté cette tâche Sync TV. Faites-moi savoir comment je peux vous envoyer ces deux fichiers texte.

Flux de travail de haut niveau :
J’ai mon ordinateur Media Center (nom du PC : « MediaCenter ») qui enregistre la TV dans le dossier « Recorded TV ». MCE Buddy convertit ces fichiers (en mp4 dans mon cas) dans un dossier appelé « Converted TV » sur ce même PC. Sur ma Surface RT, à chaque connexion, il copie le delta des fichiers de Converted TV vers le dossier de la carte SD « TV » et supprime ceux qui ont été retirés de Converted TV. Quand je suis hors de chez moi et après avoir regardé une émission sur ma Surface, je déplace ce fichier vers un dossier appelé « Watched TV » sur la SD. Quand je rentre et me connecte à ma Surface, il supprime les fichiers de Watched TV, Converted TV et Recorded TV via la tâche planifiée Sync TV et le script « PurgeWatchedTV ».

Prérequis :

  1. Le renommage des fichiers par MCE Buddy doit inclure « ; » puis le nom de fichier original. Je pense que le script suppose aussi qu’il n’y a pas de fichiers à la racine ; c’est-à-dire qu’il faut des sous-dossiers par nom d’émission et Films. Par exemple, le mien est : %ismovie%<Movies\%showname% ;%originalfilename%,%showname%\S%season%##E%episode%## - %airyear%_%airmonth%_%airday% - %episodename% ;%originalfilename%>
  2. MCE Buddy configuré pour garder les fichiers synchronisés.
  3. Homegroup.
  4. Partages configurés pour Homegroup sur le PC hôte pour Recorded TV et Converted TV. Dans mon cas \\MediaCenter\Recorded TV et \\MediaCenter\Converted TV.
  5. Un dossier sur la tablette/ordinateur portable contenant le dossier des fichiers TV, le script et un sous-dossier dédié appelé « Watched TV ». Dans mon cas j’ai D:\TV puis D:\TV\Watched TV et D:\TV\TV.
  6. Tâche planifiée appelée « Sync TV » configurée sur la tablette/ordinateur portable.

Détails de la tâche planifiée « Sync TV » :

  1. Exécute le script PurgeWatchedTV. Ce script supprime tout fichier du partage Converted TV qui existe dans le dossier local D:\Watched TV, ainsi que tout dossier vide. Il supprime ensuite le fichier .wtv original correspondant dans le partage Recorded TV.

  2. Exécute la commande robocopy mirror entre \\MediaCenter\Converted TV et D:\TV\TV.

  3. Le script PurgeWatchedTV supprime aussi tout fichier orphelin entre Recorded TV et Watched TV. Cela m’arrivait si je supprimais une émission sur mon Media Center pendant la conversion. Dans ce cas, MCE Buddy ne supprime pas automatiquement le fichier converti. Le script vérifie si un fichier existe dans Converted TV mais pas dans Recorded TV et le supprime de Recorded TV.

  4. La tâche planifiée est configurée pour ne s’exécuter que sur le réseau domestique. Sans cela, dès que vous vous connectez à un réseau à l’extérieur, elle tente de lancer Sync TV. Le problème est que la commande robocopy essaie de se relancer et ne se termine jamais. Je veux ce comportement chez moi, mais pas à l’extérieur. Heureusement, c’est un paramètre dans les tâches planifiées Windows.

Les paramètres :

  1. Le nom du PC Media Center et du partage. S’ils diffèrent, modifiez le script PurgeWatchedTV avec vos chemins de partage, ainsi que la commande robocopy dans la tâche Sync TV.
  2. Le format des fichiers convertis. S’il n’est pas mp4, modifiez la variable FileExtension dans PurgeWatchedTV.
  3. Le chemin de stockage local de l’appareil cible. Si différent, modifiez la commande robocopy et PurgeWatchedTV.
  4. Spécifiez le type d’OS dans la tâche Sync TV lors de l’importation. Je ne sais pas si cela change quelque chose, mais c’est une bonne pratique.
  5. Le nom d’utilisateur qui exécute la tâche dans Sync TV. Lors de l’importation, spécifiez l’utilisateur sur le premier écran. Ce devrait être vous, en supposant que vous ayez les droits administrateur sur votre appareil.
  6. Le nom de votre réseau domestique dans la tâche Sync TV. Lors de l’importation, sous conditions, spécifiez le nom du réseau domestique auquel vous connectez votre appareil. Dans mon cas, mon réseau domestique est le même que mon Wi-Fi.

Problèmes connus :

  1. La tâche Sync TV ne s’exécute qu’à la connexion. Pas de problème pour moi car j’éteins ma Surface chaque nuit. Vous pouvez personnaliser ou ajouter d’autres tâches planifiées, comme une planification spécifique ou au réveil, mais je ne les ai pas testées. Notez aussi les autres limitations potentielles ci-dessous avec d’autres types de tâches.
  2. Le réseau doit être pleinement initialisé. Comme la tâche planifiée est configurée pour ne s’exécuter que sur un réseau particulier, l’appareil doit être pleinement connecté à ce réseau. Le problème survient quand ma Surface démarre : elle met environ une seconde à se connecter au Wi-Fi. Si la connexion se produit avant la connexion, Sync TV ne s’exécute pas. Je dois entrer un code PIN pour me connecter (politique Exchange), donc ce n’est pas un problème car une fois déverrouillée et le PIN saisi, elle s’est connectée au Wi-Fi. Il existe des paramètres Windows pour exiger une connexion réseau avant la connexion. J’ai réussi à configurer cela via des stratégies de groupe sur un domaine d’entreprise, mais pas avec des stratégies locales sur ma Surface. Je n’ai pas trop dépanné car ma configuration fonctionne, mais vous pouvez regarder si vous avez une connexion automatique ou une tâche planifiée à une heure précise.
  3. Évidemment, pendant la copie, il faut une connexion réseau persistante. Cependant, Windows RT ne semble pas considérer la copie en invite de commande comme active et finit par mettre le réseau en veille. Cela interrompt robocopy qui attend que le réseau revienne. C’est aussi pourquoi j’ai configuré la tâche à la connexion, car c’est généralement quand je prévois de l’utiliser, donnant assez de temps pour finir les copies. C’est aussi pourquoi une tâche planifiée à une heure précise ne fonctionne probablement pas car le réseau ne sera pas actif. Vous pouvez configurer le réseau pour rester actif, mais cela impactera la batterie. Vous pouvez aussi sans doute réveiller le réseau, exécuter la tâche, puis le remettre en veille, mais je ne l’ai pas fait car ce n’est pas nécessaire pour mon usage.
  4. Je n’ai testé que sur Windows RT, mais cela devrait fonctionner sur Windows 7 et 8.
  5. Voir et gérer ces fichiers vidéo ne fonctionne pas bien avec l’application Vidéo de Windows 8 : pas de dossiers, noms de fichiers tronqués, et impossible de les déplacer vers le dossier Watched TV. Et les visionner via l’Explorateur Windows de bureau est un peu lourd (dans RT 8.0). J’utilise donc l’application « My Explorer » et définis un favori vers le dossier D:\TV\TV :
    Microsoft Store - Download apps, games & more for your Windows PC
  6. J’ai littéralement tapé ce script avec le Bloc-notes sur l’écran tactile de ma Surface, donc je n’ai pas géré beaucoup d’exceptions et il n’est pas optimisé, mais comme il tourne sur le LAN, il est assez rapide hormis la copie réelle.