J’ai vu des références et des mentions à propos des scripts de pré et post-traitement. Mais je n’arrive pas à trouver de documentation définitive sur la façon de les utiliser. Toute aide est appréciée. Merci d’avance.
Voici la source officielle sur les commandes personnalisées
Ma compréhension est qu’il existe plusieurs choses que vous pouvez appeler, par exemple un fichier batch Windows. Personnellement, j’appelle un script PowerShell pour un post-traitement qui comprend un renommage personnalisé que MCEBuddy ne me permet pas de faire, et il gère également le déplacement des fichiers convertis dans la structure de fichiers que je souhaite et gère certains écrasements/suppressions si le fichier existe déjà.
Fondamentalement, vous appelez le script dans profiles.conf en définissant ceux que vous voulez dans le profil spécifique.
Donc, par exemple, dans le mien, l’un de mes profils est :
[MP4 Unprocessed]
Description=Very fast but limited functionality. Use this profile if the original video has H.264/MPEG video and you want to remove the commercials and convert the file format to MP4 (e.g. WTV to MP4) without any additional processing (deinterlace, resizing, volume, cropping etc). It will copy the original video and audio and put it into a MP4 format unaltered in quality.
order=ffmpeg
ffmpeg-general=-threads 0
ffmpeg-video=-ss 0 -vcodec copy -sn
ffmpeg-audio=-acodec copy
ffmpeg-audioac3=-acodec copy
ffmpeg-ext=.mp4
ffmpeg-audiodelay=skip
PreConversionCommercialRemover=true
FixedResolution=true
SkipCropping=true
AutoDeinterlace=false
PostCustomCommandPath = C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
PostCustomCommandParameters = -windowstyle hidden -file “f:\transfer\mcebuddy_postprocess.ps1” -newname “"%convertedfile%"” -destpath “"%destinationpath%"” -series “"%seriesid%"” -imdb “"%imdbmovieid%"” -ismovie “"%ismovie%"” -taskname “"%taskname%"” -season “"%season%##"” -origName “"%originalfilename%"”
PostCustomCommandHangPeriod = 0
PostCustomCommandCritical = False
PostCustomCommandUISession = False
PostCustomCommandShowWindow = True
PostCustomCommandExitCodeCheck = False
Le PostCustomCommandPath indique que j’appelle PowerShell, et le PostCustomCommandParameters indique quel script PowerShell exécuter, ainsi que le passage d’un ensemble de valeurs exposées par MCEBuddy, par exemple le nom.
Mon script PowerShell réel est assez long, mais l’une des choses qu’il fait est d’examiner ces valeurs passées et d’ajuster les noms de dossiers pour inclure soit l’ID IMDb, soit l’ID TVDB selon qu’il s’agit d’un film ou d’une série. Le renommage intégré dans MCEBuddy ne semble pas disposer d’arguments pour ces valeurs.
Pour info - L’API publique d’IMDB est morte. Après que Amazon les ait achetés, ils l’ont monétisée derrière un paywall d’API.
Je pense que MCEBuddy est passé à https://www.themoviedb.org/ (TMDB) comme remplaçant. Vous devriez envisager d’ajuster votre script PowerShell pour faire de même.
Je vais devoir vérifier ce que Plex fait, mais je suivais des documents suggérant de nommer les éléments comme ceci pour l’aider à les identifier
Séries TV - Dossier parent :
ex. CSI Vegas (2021) {tvdb-400248}
et Films - Dossier parent :
The Mortal Storm (1940) {imdb-tt0032811}
Le problème était que, dans le renommage, je ne trouvais pas de placeholder pour l’id de série venant de tvdb, mais il y en a un disponible dans le post-traitement ; donc je ne fais que passer l’argument de mcebuddy à powershell pour prendre le dossier original et le renommer de
CSI Vegas (2021)
à
CSI Vegas (2021) {tvdb-400248}
Il y a eu quelques fois récemment cependant où l’id de série n’est pas récupéré et je ne sais pas pourquoi.
Bref, mes scripts powershell gèrent le renommage des dossiers parents puis le déplacement des éléments vers mon serveur plex et déterminent s’il faut copier dans un dossier existant (pour les séries tv par exemple) ou écraser (dans le cas des films).