aspiratv

module
v0.16.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 27, 2021 License: MIT

README

aspiratv

Ce programme interroge les serveurs de télévision de rattrapage et télécharge les émissions souhaitées et les enregistre sur un disque selon une organisation reconnue par des programmes comme PLEX ou EMBY. Les métadonnées (titre des émissions, desciption, vignettes) sont placées de façon à être directement reconnues par Emby (à tester dans Plex).

⚠️ La ligne de commande change avec la version 0.16

Télécharger un programme, une série

aspiratv command line

./aspiratv --provider=artetv --destination=$HOME/Videos/DL download "La minute vieille"

Télécharger les dernières diffusions à partir d'une liste

aspiratv command line

./aspiratv

Cette commande vérifie les serveurs et télécharge les épisodes qui ne le sont pas encore.

⚠ Avertissement ⚠

Les contenus mis à disposition par les diffuseurs sont soumis aux droits d'auteur. Ne les utilisez pas en dehors du cadre privé.

Aspiratv ne fait que garder une copie de l’œuvre sur votre disque dur, comme vous l'auriez fait avec votre enregistreur vidéo, votre box TV ou une clé USB branchée sur votre TV. Cette opération est seulement rendue plus simple qu'en gérant manuellement les enregistrements.

Le fonctionnement de ce programme n'est pas garanti. Notamment, les fournisseurs de contenus sont susceptibles de changer leurs APIs ou interdire leur utilisation sans pré-avis.

Rendu dans Emby

Saison Emby

Installation

Prérequis

  • FFMPEG: ffmpeg est utilisé pour convertir le flux vidéo en fichiers mp4. l'exécutable doit être disponible dans votre système. Page de téléchargement pour Windows: https://ffmpeg.zeranoe.com/builds/

Installation des binaires

Les binaires pour Windows, Linux et FreeBSD sont directement disponibles sur la page releases. Les binaires n'ont pas de dépendance autre que FFMPEG et n'ont pas besoin d'être installés.

linux
  • Télécharger les binaires correspondant à votre système sur la page de la dernière release de le répertoire de votre choix.
  • Puis décompresser l'archive
tar -czvf aspiratv_0.15.0_Linux_x86_64.tar.gz

Ligne de commande

Usage of ./aspiratv:

Command run: download new shows listed into configuration file in the watchlist

aspiratv  run [ options... ]
aspiratv  [ options... ]

  example:   aspiratv run --log aspiratv.log

  options:
      --config string      Configuration file name. (default "config.json")
      --headless           Headless mode. Progression bars are not displayed.
      --log string         Give the log file name.
  -l, --log-level string   Log level (INFO,TRACE,ERROR,DEBUG) (default "ERROR")
  -m, --max-tasks int      Maximum concurrent downloads at a time. (default 12)

Command download: download show with given options

aspiratv  download --provider PROVIDER --show-path PATH [ options... ] "show name"

  example:   aspiratv  download --provider francetv --show-path {$HOME}/Videos/Animes/  "lapins crétins"

  options:
      --force                           Force media download even when present on the show-path.
      --headless                        Headless mode. Progression bars are not displayed.
  -b, --keep-bonuses                    Download bonuses when true
      --log string                      Give the log file name.
  -l, --log-level string                Log level (INFO,TRACE,ERROR,DEBUG) (default "ERROR")
  -a, --max-aged int                    Retrieve media younger than MaxAgedDays.
  -m, --max-tasks int                   Maximum concurrent downloads at a time. (default 12)
      --name-template name-template     Show name file template
  -p, --provider string                 Provider to be used with download command. Possible values : artetv, francetv, gulli (mandatory).
      --retention int                   Delete media older than retention days for the downloaded show.
      --season-template name-template   Season directory template
  -s, --show-path string                Show's path (mandatory).
  -e, --title-exclude regexp-filter     Showtitle and Episode title must not satisfy regexp filter
  -f, --title-filter regexp-filter      Showtitle or Episode title must satisfy regexp filter

Le programme fonctionne selon deux modilités :

Pour surveiller la mise à disposition de nouveaux épisodes d'une émission

./aspiratv run

Dans ce mode, le fichiers de configuration config.json placé dans le même répertoire que le programe est lu pour pour interroger les différents serveur. Pour interroger automatiquement les serveur, ajouter une ligne dans crontab, ou une tâche planifiée dans windows.

--config votreconfig.json

L'option --config indique le fichier de configuration à utiliser.

Pour télécharger une émission, ou une série

aspiratv  download --provider francetv --show-path {$HOME}/Videos/Animes/  "Les Dalton"

Cette commande cherchera les épisodes de la série "Les Dalton" sur france télévisions, et les téléchargera dans le répertoire ~/Video/DL

Les paramètres --provider et --show-path sont obligatoires

--provider (obligatoire)

Ce paramètre précise quel fournisseur de contenu sera intérrogé pour la recherche. Les valeurs possibles sont :

  • francetv
  • artetv
  • guilli
--show-path (obligatoire)

Cette option force le chemin dans lequel la saison ou le film sera téléchargé.

Exemple, les épisodes seront téléchargés dans le répertoire ~/Videos/MaisonF5/Season ...

./aspiratv --provider=francetv --show-path = ~/Videos/MaisonF5 download "La maison France 5"
--title-filter

Utiliser l'option --title-filter pour télécharger un épisode précis. Le filtre est une expression régulière GO. Voir la syntaxe précise (https://golang.org/pkg/regexp/syntax/). Le site (https://regex101.com/) permet de construire et tester les expressons régulières.

Par exemple, pour télécharger les émissions spéciales de "La maison France 5"

./aspiratv download --provider=francetv --show-path=$HOME/Videos/DL/Replay --title-filter "spéciale" "La maison France 5"
--title-exclude

Utiliser l'option --title-exclude pour exclure du téléchargement certains épisodes. Le filtre est une expression régulière GO.

Pour télécharger tous les épisodes de "La Maison France 5" sauf les émissions spéciales

./aspiratv download --provider=francetv --show-path=$HOME/Videos/DL/Replay  --title-exclude "spéciale" "La maison France 5"

La combinaison des deux filtres est possible.

--destination (SUPPRIMÉE)

Cette option est remplacée par --show-path

--name-template

Cette option permet de constituer le nom du fichier .mp4 selon vos besoins. Le système de template est système de la librairie standard. Voir la documentation de la libraie.

Il est possible d'utiliser les champs suivants:

Champ Description
.Title Titre de l'épisode
.Showtitle Nom de la série, de l'émission
.Season Numéro de saison ou année de diffusion
.Episode Episode
.UniqueID Identifion de l'émission chez le diffuseur (voir exemple)
.Aired Date de diffusion (voir exemple)
Modèle par défaut pour les séries:

{{.Showtitle}} - s{{.Season | printf "%02d" }}e{{.Episode | printf "%02d" }} - {{.Title}}.mp4

Exemples :

Les Dalton - s03e03 - A l'intérieur de Rantanplan.mp4

Doctor Who - s12e01 - La chute des espions partie 1.mp4

Modèle par défaut pour les émissions régulières:

{{.Showtitle}} - {{.Aired.Time.Format "2006-01-02"}}.mp4

Exemple:

Tout le monde a son mot à dire - 2021-02-10.mp4

28 minutes - 2021-02-11.mp4

Autres Exemples

Plusieurs émissions peuvent être diffusées le même jour, à la même date et avec le même titre. Sans précaution, le fichier de la deuxième diffusion écrase le premier. Pour garder toutes les diffusions, on peut rajouter l'identifiant unique donné par le diffuseur:

{{ .Showtitle}} - {{ .Aired.Time.Format \"2006-01-02\" }} - {{(index .UniqueID 0).ID}}.mp4

Tout le monde a son mot à dire - 2021-02-10 - 2235183.nfo

--season-template

Il est possible d'adapter le nom du répertoire correspondant à la saison. Les mêmes champs sont possibles.

Modèle par défaut pour les séries:

{{if not .IsBonus}}Season {{.Season | printf "%02d" }}{{else}}Specials{{end}}

Exemple:

Season 03

Speicals

Modèle par défaut pour les émissions régulières:

{{if not .IsBonus}}Season {{.Aired.Time.Year | printf "%04d" }}{{else}}Specials{{end}}

Exemple:

Season 2021

Specials

Les options communes aux deux modes :

--headless

L option --headless désactive les barres de progressions et produit une log sur la console.

--max-tasks NUM

Précise le nombre maximal de téléchargements simultanés possible. La valeur par défaut est le nombre de processeurs de la machine.

--log-level, -l

Indique le niveau de détail du fichier de log. Les options possibles sont:

  • INFO
  • TRACE
  • DEBUG
--log LOG_FILE

L'option --log indique le fichier dans lequel les messages d'erreur sont écrits.

--force

Télécharge toutes les émissions correspondant à la liste de recherche, même si elles ont été déjà téléchargées.

--keep-bonuses

Télécharge les vidéos associées au show demandé.

--max-aged DAYS

Ne télécharge que les émissions qui ont été diffusées moins de DAYS jours. Cette option est utile quand vous téléchargez une émission quotidienne par exemple.

Configuration

fichier config.json

Le fichier config.json contient les paramètres et la liste des émissions que l'on souhaite télécharger :

{
  "Destinations": {
    "Documentaires": "${HOME}/Videos/Documentaires",
    "Jeunesse": "${HOME}/Videos/Jeunesse",
    "Séries": "${HOME}/Videos/Series",
    "News": "${HOME}/Videos/News"
  },
  "Providers": {
    "artetv": {
      "Enabled": false        
    },
    "gulli":{
      "Enabled": true
    },
    "francetv":{
        "Enabled": true
    }
  },
  "WatchList": [
    {
      "Show": "Doctor Who", 
      "Provider": "francetv",
      "Destination": "Séries"
    },
    {
      "Show": "Oggy et les cafards",
      "Provider": "gulli",
      "Destination": "Jeunesse",
      "TitleFilter": "(?i)Oggy"
    },
    {
      "Show": "Tout le monde a son mot à dire",
      "Provider": "francetv",
      "ShowPath": "${HOME}/Videos/TV/TLMASMAD",
      "SeasonPathTemplate": "Season {{.Aired.Time.Year | printf \"%04d\"}}",
      "ShowNameTemplate": "{{ .Showtitle}} - {{ .Aired.Time.Format \"2006-01-02\" }} - {{(index .UniqueID 0).ID}}.mp4"
    }
  ]
}
Destinations

Défini les répertoires de destination des fichiers. A noter que les variables d'environnement peuvent être utilisées.

WatchList

Donne la liste des critères de recherche pour sélectionner les émissions à télécharger. L'ensemble des critères non vides doit être satisfait. Ils sont évalués dans l'ordre suivant :

  1. Provider: code du fournisseur de contenu
  2. Show : nom de l'émission
  3. TitleFilter: Le titre doit contenir le filtre, ou correspondre à l'expression régulière
  4. TitleExclude: Le titre ne doit pas contenir le filtre, ou ne pas correspondre à l'expression régulière Le contenu du critère doit être contenu dans le champ correspondant obtenu sur le serveur de la télévision.
  • Destination: code du répertoire où les fichiers doivent être téléchargés, dont la définition est placée dans la section Destinations

Chaque provider peut traiter spécifiquement les recherches.

Les fournisseurs de contenu : les providers

Un provider est un package du logiciel permettant d'implémenter les différents connecteurs. Les connecteurs disponibles sont :

France Télévision (francetv):

Ce connecteur permet de surveiller les programmes en replay des chaînes France 2, France 3, France 4, France 5, France Ô, et La 1ère.

Arte France (artetv) :

Ce connecteur permet de surveiller les programmes de la chaîne Arte

Les playlists Arte peuvent être surveillées pour que les nouveaux épisodes soit téléchargés dès leur disponibilité.

Gulli (gulli)

Ce connecteur permet de surveiller les programmes de la chaîne Gulli. Attention Gulli tronque le nom des shows. Il convient de paramétrer les recherches avec les noms tronqués.

Configuration de Emby

Créez une médiathèque de type "TV". Les réglages par défaut conviennent bien. Les données pourront être complétés si la série est connue des sites tesl de ImDB,Fanart...

Configuration de PLEX

Pour obtenir un résultat acceptable, il faut configurer une librairie de type "Séries TV" en utilisant l'agent "Personal Media Shows" afin que plex utilise les titres et les imagettes téléchargées depuis le serveur de la télévision. Veillez à ce que l'agent "Local Media Assets (TV)" soit placé en tête de liste des agents pour les Séries / Personal Media Shows (voir cette page) .

Compilation des sources

Vous devez avoir un compilateur pour le langage GO.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL