Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
mythtv [Le 12/11/2009, 19:48]
213.95.41.13
mythtv [Le 01/09/2022, 00:00] (Version actuelle)
moths-art Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>Hardy média_center télévision BROUILLON}}+{{tag>media_center tnt carte_tv}} 
 +====== MythTV ======
  
-----+MythTV est un logiciel d'​enregistrement numérique (télévision analogique, numérique, WebTV, etc.) extensible vers une station multimédia très complète via un système d'​extensions (gestionnaire de photos, de vidéos, de musiques, lecture //DVD// & //Blu-ray disk//, navigation sur le web, etc.).
  
 +{{:​mythtv:​frontal_mythtv.png?​320}} {{:​mythtv:​frontal_mythtv_programme.png?​320}}
  
-====== Mythtv ======+{{:​mythtv:​frontal_mythtv_enregistrements.png?​320}} {{:​mythtv:​frontal_mythtv_video.png?​320}}
  
 +Son architecture basée sur un (ou plusieurs) //​backend(s)//​ et un (ou plusieurs) //​frontend(s)//​ (architecture serveur/​client) vous permettra d'​accéder à tous vos enregistrements et à la télévision en direct depuis n'​importe quel ordinateur de votre réseau. Les enregistrements,​ musiques et films, sont également accessibles via une interface web ou via le protocole [[https://​fr.wikipedia.org/​wiki/​UPNP|UPnP]].
 +===== Installation =====
 +MythTV peut être installé sur n'​importe quelle version d'​Ubuntu en [[/​tutoriel/​comment_installer_un_paquet|installant le paquet]] [[apt>​mythtv]]
  
-MYTHTV est une suite de logiciels de type centre ​multimédia qui permet initialement ​de voir et d'​enregistrer la télévision. Elle permet également ​de voir des Dvd(r), des Divx(r), des photos, ​d'écouter des CD-audio, des mp3(r), ​de récupérer rapidement les informations (actualité internet, météo etc...) à l'aide d'un clavier, joystick ou d'une télécommande.+===== Configuration ===== 
 +FIXME 
 +\\ 
 +Lancer le centre de contrôle Mythbuntu (Système → Administration → Centre ​de contrôle Mythbuntu), il vous guidera dans le processus ​d'installation et de configuration de MythTV.
  
 +==== Sur Ubuntu Server ====
 +En Anglais : https://​help.ubuntu.com/​community/​MythTV/​Install/​Server/​Backend
  
-===== Différentes solutions ===== +===== Voir aussi ===== 
- +  * [[https://​www.mythtv.org/|Site officiel]] 
-Pour disposer de cette suite logicielle multimédia,​ vous pouvez : +  * [[http://​mythtv-fr.org/​|Communauté ​francophone des utilisateurs de MythTV]]
- +
-- Installer uniquement le logiciel **Mythtv**  +
- +
-- Installer simplement des paquets supplémentaires dans votre installation ubuntu pour la transformer,​ c'est **Mythbuntu**. +
- +
-- Faire une installation complète d'​**Ubuntu optimisée Mythtv**. +
- +
- +
- +
-===== Installations ===== +
- +
- +
- +
- +
- +
- +
-==== Mythtv ==== +
- +
- +
-Il suffit d'​installer le paquet ​ [[apt://​mythtv-frontend]] pour la partie cliente et [[apt://​mythtv-backend]] pour la partie serveur. Pour la configuration graphique installez ​aussi le paquet [[apt://​mythbuntu-control-centre]] +
- +
- +
-==== Mythtv + Ubuntu = Mythbuntu ​==== +
- +
-Il existe de nombreuses versions de Ubuntu : Ubuntu, Kubuntu, Xubuntu, Edubuntu et ... Mythbuntu. Cette version est une solution gnu-linux spécialement développée pour Ubuntu permettant de transformer **facilement** son ordinateur en enregistreur de salon. +
- +
- +
-Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt://​mythbuntu-desktop]]**,​ **attention** ce paquet transforme complètement l'​apparence de gnome en un très élégant enregistreur. +
- +
-L'​installation ne devrait pas poser de problème, veuillez cependant à enregistrer votre mot de passe d'​accès qui sera configuré. +
- +
-Pour plus de détails voir [[http://​mythtv-fr.tuxfamily.org/​wiki/​mythbuntu_pas_a_pas_sur_ubuntu]] +
- +
- +
- +
- +
- +
-==== Installation ubuntu optimisée Mythtv ==== +
- +
->Guide d'​installation d'un serveur-client avec quelques problèmes et leurs solutions. +
- +
->Pour les puristes je mettrai le signe (!) pour ce qu'il n'est pas recommandé de faire. +
- +
-=== Partitions (système) === +
-Lors de l'​installation de Ubuntu, la principale question est le partitionnement des disques. +
- +
-Il est recommandé de "voir large"​. +
- +
-^taille^nom^commentaire^ +
-|10 Go| / (dit "​racine"​)|il est possible d'en mettre largement moins| +
-|100 Go| /home| (en cas de problème, cela permet de garder ses paramètres)| +
-|2 Go| swap| (à partir de 1Go mettre la taille de la ram ou ne pas en mettre(!) )| +
- +
-**Activer les pilotes** pour NVIDIA ou ATI : cocher une case dans  +
-Menu->​Système->​Administration->​Pilote de périphériques +
- +
-Redémarrer et... attention au plantage. Plus Ubuntu évolue moins il y en a, mais au besoin noter cette ligne de commande : +
- +
-  ​sudo dpkg-reconfigure xserver-xorg  +
-ou +
-  sudo dpkg-reconfigure -phigh xserver-xorg +
- +
-**Activer l'​auto-login** (!) : Menu->​SystèmeAdministration->​Fenêtre de connexion -> onglet ​[Sécurité] +
- +
- +
-=== Packages (initiaux) === +
- +
-^commandes^commentaires^ +
-|sudo apt-get install| pour installer les packets (pour sélectionner appuyer en même temps sur Ctrl sur firefox) | +
-|mplayer gxine vlc libdvdread3 ogle|lecteur vidéo et codec| +
-|flashplugin-nonfree |lecteur video (flash)| +
-|tvtime|permet de tester la carte TV (existe aussi zaptv)| +
-|startupmanager| permet de modifier le démarrage de l'​ordinateur (multi-boot,​ affichage de log etc...)| +
-|lirc| pour la télécommande ("​creative Livedrive sequencer"​ pour utiliser la télécommande avec la carte son Audigy)| +
-|filezilla|client ftp (ça peut toujours servir)| +
-|samba |partage réseau pour Windows| +
-|openssh-server |indispensable pour utiliser putty| +
-|synergy |trop bien si vous avez plus d'un PC côte à côte (un clavier/​souris pour plusieurs PC) (fonctionne aussi avec tous les Windows, Vista inclus)| +
-|nvidia-settings |pour configurer sa carte vidéo NVIDIA (exit aussi "​envy"​ pour ATI et NVIDIA)| +
-|dmraid|si vous utilisez du raid| +
-|gparted |pour partitionner ses disques (si vous en avez plus d'​un)| +
- +
- +
- +
-=== Souris & Clavier bluetooth === +
-Pour l'​utilisation de clavier & souris en bluetooth. +
- +
-Appuyer sur le petit bouton et taper la commande (pour chacun) : +
- +
-  sudo hidd --connect AA:​BB:​AA:​BB:​AA:​BB +
- +
-( AA:BB:... étant l'​adresse indiqué au dos de l'​appareil) +
- +
-Après je vous recommande le GUI (l'​Interface Utilisateur Graphique). +
-Menu->​Système->​Préférences->​Bluetooth +
- +
- +
- +
-=== Ecran (carte NVIDIA) === +
-Rechercher les spécifications techniques (balayage horizontal et vertical) sur le site web du constructeur de l'​écran. Puis modifier le fichier en conséquence. +
- +
-  sudo gedit /​etc/​X11/​xorg.conf +
- +
-  Section "​Monitor"​ +
-    Identifier ​    "​Generic Monitor"​ +
-    HorizSync ​      ​31-81 +
-    VertRefresh ​    ​56-76 +
-    Option ​        "​DPMS"​ +
-  EndSection +
- +
-(Option "​DPMS"​ sert à éteindre l'​écran lorsqu'​il est inactif : je ferais bien de l'​enlever ;-) ) +
- +
-Ensuite utiliser le GUI (beaucoup plus simple, mais maintenant vous pouvez cliquer sur Apply et quitter) +
- +
-  sudo nvidia-settings +
- +
-Préférer cette ligne de commande à Menu->​Système->​Administration->​NVIDIA X Server Settings, car dans ce cas il n'y aura pas de soucis pour enregistrer les modifications. +
- +
-(Pour les cartes NVIDIA le mode "​TwinView"​ est recommandé pour le multi-écran) +
- +
- +
-=== Disques durs === +
- +
-Pour plusieurs disques durs : +
- +
-Utiliser gparted pour les identifier et les modifier (!!!). Menu->​Système->​Administration->​Editeur de partition +
- +
-Utiliser la commande mount...profiter...redémarrer... et c'est comme si rien n'​avait été fait. +
-Donc à moins que ce ne soit temporaire modifier le fichier fstab: +
-  sudo gedit /​etc/​fstab +
- +
-et ajouter les lignes nécessaires : +
-  /​dev/​sdc5 ​                                /​media/​MP3 ​     ext3    relatime ​       0       0 +
-  /​dev/​mapper/​sil_agaiabbifech1 ​            /​media/​WXP ​     ntfs    uid=1000 ​       0       0 +
-  UUID=cdd75cda-8147-41c6-923a-32dac89083d8 /​media/​FILMS ​   ext3    relatime ​       0       0 +
- +
- +
-Explications pour chaque ligne : +
- +
-1- grâce à gparted j'​identifie le disque comme /dev/sdc5, je le monte/place sur /media/MP3 (que j'ai préalablement créé avec un petit "sudo mkdir /​media/​MP3"​),​ de plus il est de type ext3, pour le reste je ne sais pas encore mais ça fonctionne. +
- +
-2- même chose sauf que le disque est en raid (d'où le nom plus long) et le type est NTFS (pour Windows) (petit "sudo mkdir /​media/​WXP"​). +
- +
-3- version moderne avec le UUID (genre "​identifiant unique"​ pour disque dur, dans les cas précédents si on rajoute/​déplace un disque/​partition tout peut changer de nom /dev/sdc6), (type ext3 et petit "sudo mkdir /​media/​FILMS"​) +
- +
-Pour identifier les UUID : +
-  sudo blkid +
-  sudo vol_id -u /dev/sda1 +
- +
-Il est possible de renseigner les différents emplacements dans mythtv en les séparant par ":"​ mais cela ne fonctionne pas toujours correctement. +
-Avant j'​utilisais dans le fichier fstab (ce qui n'​accélère pas le démarrage de l'​ordinateur) : +
-  /​media/​FILMS/​CLIPS ​ /​media/​MP3/​CLIPS ​    none bind 0 0 +
- +
-J'ai évolué et j'​utilise un lien maintenant. Taper directement en ligne de commande (en cas de problème de permission ajouter "​sudo"​ devant) : +
-  ln -s /​media/​MP3/​CLIPS /​media/​FILMS/​CLIPS +
- +
- +
- +
- +
- +
- +
- +
- +
-=== MYTHTV === +
- +
-^commandes^commentaires^ +
-|sudo apt-get install| pour installer les packets (pour sélectionner appuyer en même temps sur Ctrl sur firefox) | +
-|ubuntu-mythtv-frontend mythtv | les 2 packages principaux (installeront également mysql et bien d'​autres)| +
-|mysql-query-browser| pour ceux qui s'y connaissent en sql| +
-|mythvideo <​del>​mythmovies</​del>​ | voir et gérer des vidéos| +
-|mythweather| la météo| +
-|mythweb|Interface web pour contrôler presque tout mythtv| +
-|mythstream|écouter et voir du streming| +
-|mythnews|rapide pour avoir des informations sur l'​actualité| +
-|mythmusic| gérer et écouter ses MP3| +
-|mythgame| jouer| +
-|mythgallery|voir ses photos| +
-|mythbrowser|navigateur internet optimisé télécommande| +
-|lame gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly| différents codec|  +
-|<​del>​mythplugins</​del>​|pour téléphoner (je ne l'​utilise pas ... encore)| +
- +
-Après leurs installations,​ ajouter vous au groupe mythtv et redémarrer puis lan cer : Menu?​Système?​Administration?​MythTV Backend Setup +
- +
-Renseigner les paramètres (les mêmes que ceux mis lors de l'​installation des packages) +
- +
-Puis : Menu->​Son et vidéo->​MythTV Frontend +
- +
- +
-== En cas de problèmes, saisir les lignes de commandes suivantes == +
- +
-  sudo dpkg-reconfigure mythtv-common +
-  sudo dpkg-reconfigure mythtv-database  +
- +
-Pour ceux qui apprécient les jolies animations en écoutant de la musique je recommande (par ordre descroissant) les plugins suivants : +
- +
-  sudo apt-get install libvisual-0.4-plugins ​ synaesthesia libvisual-projectm +
- +
-libvisual-projectm doit être très beau mais personnellement,​ il n'a jamais fonctionné et a même réussi à fermer mythtv. +
- +
-Mes préférés : Goom; BumpScope; LibVisual-jakdaw;​ LibVisual-jess;​ MonoScope; LibVisual-lv_gltest;​ LibVisual-infinite;​ LibVisual-corona;​ Synaesthesia;​ +
- +
- +
- +
- +
- +
- +
-=== Télécommande (spécificité pour Audigy Platinum eX) === +
- +
-Bon nombre de télécommandes fonctionnent toutes seules et le package suivant vous y aidera. +
- +
-  sudo apt-get install mythbuntu-lirc-generator +
- +
-Ce n'est pas mon cas avec la carte son Audigy Platinum eX, pour la faire fonctionner je dois modifier certains fichiers : +
- +
-<​del>​sudo gedit /​etc/​lirc/​hardware.conf +
- +
-Et ajouter la ligne suivante : +
-DEVICE="/​dev/​snd/​midiC0D1"</​del>​ +
- +
-Dans le fichier /​usr/​share/​lirc/​remotes/​creative/​lircd.conf.livedrive +
-changer la ligne : +
-name  rm1000 --> name  Creative_RM900 +
- +
-  sudo gedit /​etc/​modprobe.d/​alsa-base +
-Ajouter : +
-options snd-emu10k1 index=0 enable_ir=1  +
- +
-Pour la RM900 (comme il l'​appelle)  +
-modifier le fichier suivant : +
-sudo gedit /​etc/​lirc/​lircd.conf ​  +
-Par celui ci: {{lircd.conf:​lircd.conf.txt|}} +
- +
-Par défaut les paramètres de lirc sont dans $HOME/​.lircrc mais mythtv se rajoute un fichier complémentaire,​ dans mon cas je n'​utilise que celui de mythtv et j'​ajoute un lien vers celui-ci: +
-  rm $HOME/​.lircrc +
-  ln -s $HOME/​.mythtv/​lircrc ​ $HOME/​.lircrc +
- +
- +
-== En cas de problème == +
- +
-Pour tester la télécommande : irw (appuyer des touches de la télécommande) +
- +
- +
- +
- +
- +
-Pour lancer (dans mon cas) : sudo lircd --driver=livedrive_midi --device=/​dev +
- +
- +
- +
- +
-=== Menus === +
- +
-Les menus se situent dans /​usr/​share/​mythtv. Ils sont écrits en xml. +
- +
-Le principal est "​mainmenu.xml"​ mais il en existe bien d'​autres comme videomenu.xml,​ info_munu.xml etc... +
- +
-//En éditant le premier on remarque un menu caché le Shutdown ("​Arrêt"​).//​ +
- +
-Il est donc possible possible de modifier le texte et l'​image associés ainsi que l'​action qu'ils effectuent. +
-Exemple : +
-^code^commentaire^ +
-|<​button>​| flag de début| +
-|  <​type>​VCD_PLAY</​type>​|type d'​image| +
-|  <​text>​Play VCD</​text>​|texte par défaut| +
-|  <text lang="​FR">​Lecture VCD</​text>​|texte pour la langue française| +
-|  <​action>​VCD_PLAY</​action>​|action| +
-|</​button>​|flag de fin| +
- +
- +
-//Je recommande un backup avant de les modifier, mais une réinstallation du package "​mythtv",​après leurs suppression,​ permet de les récupérer sans avoir besoin de tout réinstaller.//​ +
- +
- +
-Petite astuce pour lancer un programme extérieur : +
-^code^commentaire^ +
-|<​button>​| flag de début| +
-|  <​type>​MUSIC_SCAN</​type>​|type d'​image| +
-|  <​text>​My program</​text>​|texte par défaut| +
-|  <text lang="​FR">​Mon programme</​text>​|texte pour la langue française| +
-|  <​action>​**EXEC //​monprogramme//​**</​action>​|action| +
-|</​button>​|flag de fin| +
- +
-//(voir exemple dans :​Intégration dans le menu)// +
- +
-=== MYTHVIDEO === +
-== Lire un DVD protégé == +
-(c'est malheureux de ne pas pouvoir lire un DVD que l'on a acheté en toute légalité) +
-  sudo apt-get install libdvdcss2 +
- +
-== Désactiver le lancement automatique à l'​insertion d'un DVD ou CDrom == +
- +
-Lancer Nautilus : +
- +
-Edition->​ Préférences -> onglets : Supports ... et adapter. +
- +
- +
-== Réduire la taille des sous-titres == +
-Dans Mythtv : Paramètres->​Paramètres médias->​Paramètres Vidéos->​Paramètres du lecteur +
- +
-Lecteur : +
- +
-  mplayer -fs -zoom -quiet -vo xv -subfont-text-scale 2 %s +
- +
-Internal : +
- +
-  mplayer vcd:// -cdrom-device %d -fs -zoom -vo xv +
- +
- +
-== Reconnaissance des films (affiches, résumé et casting) == +
-Pour l'​avoir en français, changer les scripts dans Paramètres->​Paramètres médias->​Paramètres Vidéos->​Paramètres globaux +
- +
-  /​usr/​share/​mythtv/​mythvideo/​scripts/​imdb.pl -M tv=no;​video=no +
-  -> +
-  /​usr/​share/​mythtv/​mythvideo/​scripts/​allocine.pl –M +
- +
-  /​usr/​share/​mythtv/​mythvideo/​scripts/​imdb.pl –P +
-  -> +
-  /​usr/​share/​mythtv/​mythvideo/​scripts/​allocine.pl -P +
- +
-  /​usr/​share/​mythtv/​mythvideo/​scripts/​imdb.pl –D +
-  -> +
-  /​usr/​share/​mythtv/​mythvideo/​scripts/​allocine.pl –D +
- +
- +
-== Petit bug la fenêtre IMDB reste affichée == +
- +
-  find /​usr/​share/​mythtv/​themes/​ -name "​video-ui.xml"​ -print | xargs sudo sed -i '​s/​enterimdb/​entertmdb/​g'​ +
- +
-== Petit bug dans allocine.pl lorsqu'​il ne trouve pas le film == +
- +
-  sudo gedit /​usr/​share/​mythtv/​mythvideo/​scripts/​allocine.pl +
- +
- +
-En fait le script n'est plus tenu à jour. +
-Remplacer le fichier par ceci: +
- +
-   #​!/​usr/​bin/​perl -w +
- +
-  # +
-  # This perl script is intended to perform movie data lookups in french based on  +
-  # the www.allocine.fr website +
-  # +
-  # For more information on MythVideo'​s external movie lookup mechanism, see +
-  # the README file in this directory. +
-  # +
-  # Original author: Xavier Hervy (maxpower44 AT tiscali DOT fr) +
-   +
-  # changes: +
-  #   ​20-10-2009:​ Geoffroy Geerseau ( http://​www.soslinux.net : jamdess AT soslinux DOT net ) +
-  #   ​Modified for the new allocine templates +
-  #   ​25-10-2009:​ Geoffroy Geerseau ( http://​www.soslinux.net : jamdess AT soslinux DOT net ) +
-  #   ​Poster download correction +
-  #   ​Userrating correction +
-   +
-      +
-  use File::​Basename;​ +
-  use File::​Copy;​ +
-  use lib dirname($0);​ +
-  use Encode; +
-  use utf8; +
-  use Encode '​from_to';​ +
-  use MythTV::​MythVideoCommon;​ +
-    +
-  use vars qw($opt_h $opt_r $opt_d $opt_i $opt_v $opt_D $opt_M $opt_P $opt_originaltitle $opt_casting $opt_u_dummy);​ +
-  use Getopt::​Long;​  +
-   +
-  $title = "​Allocine Query";​  +
-  $version = "​v2.05";​ +
-  $author = "​Xavier Hervy";​ +
-  push(@MythTV::​MythVideoCommon::​URL_get_extras,​ ($title, $version));  +
-   +
-  binmode(STDOUT,​ ":​utf8"​);​  +
-   +
-  # display usage +
-  sub usage { +
-    print "​usage:​ $0 -hviocMPD ​[parameters]\n";​ +
-    print " ​      -h, --help ​                      ​help\n";​ +
-    print " ​      -v, --version ​                   display version\n";​ +
-    print " ​      -i, --info ​                      ​display info\n";​ +
-    print " ​      -o, --originaltitle ​             concatenate title and original title\n";​ +
-    print " ​      -c, --casting ​                   with -D option, grap the complete actor list (much slower)\n";​ +
-    print "​\n";​ +
-    print " ​      -M <​query>, ​  ​--movie query> ​    get movie list\n";​ +
-    print " ​      -D <​movieid>,​ --data <​movieid> ​  get movie data\n";​ +
-    print " ​      -P <​movieid>,​ --poster <​movieid>​ get movie poster\n";​ +
-    exit(-1); +
-  }  +
-   +
-  # display 1-line of info that describes the version of the program +
-  sub version { +
-    print "​$title ($version) by $author\n"​ +
-  }  +
-   +
-  # display 1-line of info that can describe the type of query used +
-  sub info { +
-    print "​Performs queries using the www.allocine.fr website.\n";​ +
-  }  +
-   +
-  # display detailed help  +
-  sub help { +
-    version();​ +
-    info(); +
-    usage(); +
-  }  +
-   +
-  # returns text within '​data'​ without tag +
-  sub removeTag { +
-    my ($data)=@_; # grab parameters  +
-   +
-    my $ldata = lc($data);​ +
-    my $start = index($ldata,​ "<"​);​ +
-    my $finish = index($ldata,​ ">",​ $start)+1;​ +
-    while ($start != -1 && $finish != -1){ +
-       $data = substr($data,​ 0, $start).substr($data,​ $finish, length($data));​ +
-      $ldata = lc($data);​ +
-      $start = index($ldata,​ "<"​);​ +
-      $finish = index($ldata,​ ">",​ $start)+1;​ +
-   } +
-   ​return $data; +
-  } +
-   +
-  # get Movie Data  +
-  sub getMovieData { +
-   my ($movieid)=@_;​ # grab movieid parameter +
-   if (defined $opt_d) { printf("#​ looking for movie id: '​%s'​\n",​ $movieid);​} +
-   +
-   # get the search results ​ page +
-   my $request = "http://www.allocine.fr/​film/​fichefilm_gen_cfilm="​ . $movieid . "​.html";​ +
-   if (defined $opt_d) { printf("#​ request: '​%s'​\n",​ $request); } +
-   my ($rc, $response) = myth_url_get($request);​ +
-   ​from_to($response,'​utf-8','​iso-8859-1'​);​ +
-   # parse title and year +
-   my $title = parseBetween($response,​ "<​title>",​ "</​title>"​);​ +
-   ​$title =~ s/​\s*-\s*AlloCin.*//;​ +
-   ​$title =~ s/​(.*)\(.*$/​$1/;​ +
-   ​$title =~ s/​^\s*(.*)\s*$/​$1/;​ +
-   my $original_title = parseBetween($response,​ "Titre original :","<​br"​);​ +
-   ​$original_title = trim(removeTag($original_title));​ +
-   if (defined $opt_originaltitle){ +
-      if ($original_title ne  ""​){ +
-        $title = $title . " (" . $original_title . "​)";​ +
-      } +
-   } +
-    +
-   ​$title = removeTag($title);​ +
-   my $year = parseBetween(parseBetween($response,"/​film/​tous/​decennie","/​a>"​),'>','<'​);​ +
-   +
-   # parse director  +
-   my $tempresponse = $response;​ +
-   my $director = parseBetween($tempresponse,"​Réalisé par ","</​a></​span>"​);​ +
-   ​$director = removeTag($director);​ +
-   +
-   # parse plot +
-   my $plot = parseBetween($response,"​Synopsis :</​span>","</​p>"​);​ +
-   $plot =~ s/\n//g; +
-   $plot = trim(removeTag($plot));​ +
-    +
-   # parse user rating +
-   my $userrating=0;​ +
-   my $tmpratings = parseBetween(parseBetween($response,"/​film/​critiquepublic_gen_cfilm=$movieid.html'><​img",​ "</​span></​p></​div>"​),'​(','​)'​);​ +
-   ​$tmpratings =~ s/,/./gm; +
-   ​if($tmpratings =~ /​^(\d+\.?​\d*|\.\d+)$/​ && $tmpratings!=""​) +
-   ​{ ​   +
-  $userrating = int($tmpratings*2.5);​ +
-   } +
-   ​else +
-   { +
-  $userrating =  "";​ +
-   } +
-   +
-   # parse rating +
-   my $movierating = parseBetween($response,"​Interdit aux moins de ","​ans"​);​ +
-   if (!($movierating eq ""​)) +
-    { $movierating = "​Interdit aux moins de " . $movierating . "​ans";​} +
-   ​else +
-    { +
-    $movierating = parseBetween($response,"​Visible ","​enfants"​);​ +
-    if (!($movierating eq ""​)){ $movierating = "​Visible par des enfants";​};​ +
-    } +
-    +
-   +
-   # parse movie length +
-   +
-   my $runtime = trim(parseBetween($response,"​Durée :","​min"​));​ +
-   my $heure; +
-   my $minutes; +
-   ​($heure,​$minutes)=($runtime=~/​[^\d]*(\d+)[^\d]*(\d*)/​);​ +
-   if (!$heure){ $heure = 0; } +
-   if (!$minutes){ +
-      $runtime = $heure * 60; +
-   ​}else{ +
-       ​$runtime = $heure * 60 + $minutes; +
-   } +
-   +
-   # parse cast  +
-   +
-   my $castchunk;​ +
-   +
-   ​$castchunk = parseBetween($response,​ "Avec ","<​img class="​);​ +
-    +
-   my $cast = "";​ +
-   $cast = trim(join(',',​ removeTag($castchunk)));​ +
-   #​genres +
-   my $genres = parseBetween($response,"​Genre :","<​br"​);​ +
-   ​$genres =~ s/​\s*\n*(.*)\s*$/​ $1/; +
-   ​$genres = trim(removeTag($genres));​ +
-   ​$genres =~ s/​\s*\n*(.*)\s*$/​ $1/; +
-    +
-   #​countries +
-   my $countries = parseBetween($response,"​Long-métrage","​."​);​ +
-   ​$countries = trim(removeTag($countries));​ +
-   ​$countries =~ s/​\s*(.*)\s*$/​ $1/; +
-   # output fields (these field names must match what MythVideo is looking for) +
-   print "​Title:​$title\n";​ +
-   if (!(defined $opt_originaltitle)){ +
-    print "​OriginalTitle:​$original_title\n";​ +
-   ​} ​  +
-   print "​Year:​$year\n";​ +
-   print "​Director:​$director\n";​ +
-   print "​Plot:​$plot\n";​ +
-   print "​UserRating:​$userrating\n";​ +
-   print "​MovieRating:​$movierating\n";​ +
-   print "​Runtime:​$runtime\n";​ +
-   print "​Cast:​$cast\n";​ +
-   print "​Genres:​$genres\n";​ +
-   print "​Countries:​$countries\n";​ +
-  } +
-   +
-  # dump Movie Poster +
-  sub getMoviePoster { +
-   my ($movieid)=@_;​ # grab movieid parameter +
-   if (defined $opt_d) { printf("#​ looking for movie id: '​%s'​\n",​ $movieid);​} +
-   +
-   # get the search results ​ page +
-    +
-   my $request = "​http://​www.allocine.fr/​film/​fichefilm-"​.$movieid."/​affiches/";​ +
-   if (defined $opt_d) { printf("#​ request: '​%s'​\n",​ $request); } +
-   my ($rc, $response) = myth_url_get($request);​ +
-   my $mediafile = parseBetween($response,"<​a href=\"/​film/​fichefilm-"​.$movieid."/​affiches/​detail/?​cmediafile=","​\"​ >"​);​ +
-   +
-   ​$request = "​http://​www.allocine.fr/​film/​fichefilm-"​.$movieid."/​affiches/​detail/?​cmediafile="​.$mediafile;​ +
-   ($rc, $response) = myth_url_get($request);​ +
-   my $uri = parseBetween(parseBetween($response,"<​div class=\"​tac\"​ style=\"​\">","</​div>"​),"<​img src=\"","​\"​ alt"​);​ +
-   if ($uri eq ""​) +
-   { +
-  $request = "​http://​www.allocine.fr/​film/​fichefilm-"​.$movieid."/​affiches/";​ +
-  ($rc, $response) = myth_url_get($request);​ +
-  my $tmp_uri = parseBetween($response,​ "<a href=\"/​film/​fichefilm-"​.$movieid."/​affiches/​\">","​ alt="​);​ +
-        $tmp_uri =~ s/\n/ /gm; +
-  $uri = trim(parseBetween($tmp_uri,"<​img src='​h","'"​));​ +
-  if($uri ne ""​) +
-  { +
-  $uri = "​h$uri";​ +
-  } +
-        print "​$uri\n";​ +
-   } +
-    +
-   # if no picture was found, just download the empty poster +
-   ​if($uri eq ""​){ +
-  $uri = "​http://​images.allocine.fr/​r_160_214/​commons/​emptymedia/​AffichetteAllocine.gif";​ +
-   } +
-   +
-   my $fileName = basename($uri);​ +
-   my $BASENAME = $fileName;​ +
-   my $IMGURI = $uri; +
-   +
-   ​system ("cd /tmp && rm -f $BASENAME && wget -q $IMGURI"​);​ +
-   print "/​tmp/​$fileName\n";​ +
-  } +
-   +
-  sub getMovieList { +
-  my ($filename, $options) = @_; # grab parameters +
-   +
-  my $query = cleanTitleQuery($filename);​ +
-  if (!$options) { $options = "";​ } +
-  if (defined $opt_d) {  +
-  printf("#​ query: '​%s',​ options: '​%s'​\n",​ $query, $options);​ +
-  } +
-   +
-  # get the search results ​ page +
-  my $request = "​http://​www.allocine.fr/​recherche/​1/?​q=$query";​ +
-  if (defined $opt_d) { printf("#​ request: '​%s'​\n",​ $request); } +
-  my ($rc, $response) = myth_url_get($request);​ +
-  from_to($response,'​utf-8','​iso-8859-1'​);​ +
-  $response =~ s/\n//g; +
-  # extract possible matches +
-  #    possible matches are grouped in several catagories: ​  +
-  #        exact, partial, and approximate +
-  my $exact_matches = $response;​ +
-  # parse movie list from matches +
-  my $beg = "<​div style=\"​margin-top:​-5px;​\">";​ +
-  my $end = "<​span class=\"​fs11\">";​ +
-   +
-  my @movies; +
-   +
-  my $data = $exact_matches;​ +
-  if ($data eq ""​) { +
-  if (defined $opt_d) { printf("#​ no results\n"​);​ } +
-  } else { +
-  my $start = index($data,​ $beg); +
-  my $finish = index($data,​ $end, $start); +
-   +
-  my $title; +
-  my $movienum;​ +
-  my $moviename;​ +
-  while ($start != -1) { +
-  $start += length($beg);​ +
-  my $sub1 = substr($data,​ $start, $finish - $start); +
-  $sub1 =~ s/​(.*)\(.*$/​$1/;​ +
-  $moviename = trim(removeTag($sub1));​ +
-  $movienum = parseBetween($sub1,"<​a href='/​film/​fichefilm_gen_cfilm=","​.html"​);​ +
-   +
-  $title = removeTag($moviename);​ +
-  $moviename = removeTag($moviename);​ +
-  my ($movieyear)= $moviename =~/​\((\d+)\)/;​ +
-  if ($movieyear) { +
-  $title = $title."​ ("​.$movieyear."​)";​ +
-  } +
-  $moviename=$title ; +
-   +
-  # advance data to next movie +
-  $data = substr($data,​ - (length($data) - $finish));​ +
-  $start = index($data,​ $beg); +
-  $finish = index($data,​ $end, $start);  +
-   +
-  # add to array +
-  push(@movies,​ "​$movienum:​$moviename"​);​ +
-  } +
-   +
-  # display array of values +
-  for $movie (@movies) {  +
-  print "​$movie\n";​  +
-  } +
-  } +
-   } +
-   +
-  # +
-  # Main Program +
-  # +
-   +
-  # parse command line arguments  +
-   +
-    GetOptions( "​utf8"​ => \$opt_u_dummy,​ +
-                "​version"​ => \$opt_v, +
-                "​info"​ => \$opt_i, +
-                "​originaltitle"​ => \$opt_originaltitle,​ +
-                "​casting"​ => \$opt_casting,​ +
-                "​Data"​ => \$opt_D, +
-                "​Movie"​ => \$opt_M, +
-                "​Poster"​ => \$opt_P +
-                );        +
-             +
-   +
-  # print out info  +
-  if (defined $opt_v) { version(); exit 1; } +
-  if (defined $opt_i) { info(); exit 1; } +
-   +
-  # print out usage if needed +
-  if (defined $opt_h || $#​ARGV<​0) { help(); } +
-   +
-  if (defined $opt_D) { +
-   # take movieid from cmdline arg +
-   ​$movieid = shift || die "Usage : $0 -D <​movieid>​\n";​ +
-   ​getMovieData($movieid);​ +
-  } +
-   +
-  elsif (defined $opt_P) { +
-   # take movieid from cmdline arg +
-   ​$movieid = shift || die "Usage : $0 -P <​movieid>​\n";​ +
-   ​getMoviePoster($movieid);​ +
-  } +
-   +
-  elsif (defined $opt_M) { +
-   # take query from cmdline arg +
-   #​$options = shift || die "Usage : $0 -M <​query>​\n";​ +
-   my $query; +
-   my $options = '';​ +
-   ​foreach $key (0 .. $#ARGV) { +
-   ​ $query .= $ARGV[$key]. ' '; +
-   } +
-   ​getMovieList($query,​ $options);​ +
-  } +
-  # vim: set expandtab ts=3 sw=3 : +
- +
-=== MYSQL === +
-Base de données assez primaire mais tout à fait fonctionnelle. +
- +
-Pour lancer un script (ne pas oublier les < >): +
-  mysql db_name < script.sql > output.tab +
- +
-Pour se connecter à la base de mythtv ​(celle par defaut) : +
-  mysql --user=root --password=**** mythconverg (**** est à remplacer par son mot de passe) +
- +
-== Où est la base par défaut? ​ == +
- +
-cd /​var/​lib/​mysql/​mythconverg ​ (!) +
- +
-== Un petit script pour améliorer la base == +
-(**** est à remplacer par son mot de passe). +
-  #!/bin/bash +
-  ### mysql-settings +
-  HOST=localhost +
-  USER=//​monutilisateur//​ +
-  PASSW=//​monmotdepasse//​ +
-  DATABASE=//​mythconverg//​ +
-  SCRIPTDIR=`dirname $0` +
-   +
-  echo "​Optimize mysql mythtv (--------------------------------)"​ +
-  echo "​Optimize mysql mythtv (--- Start  `date +'​%y/​%m/​%d-%H:​%M.%S'​` ---)"​ +
-  echo "​Optimize mysql mythtv (--- Part 1 `date +'​%y/​%m/​%d-%H:​%M.%S'​` ---)"​ +
-  mysql --user=${USER} --password=${PASSW} ${DATABASE} -B -e " +
-  SELECT concat('​analyze table ',​table_schema,'​.',​table_name,';'​) as ' ' FROM information_schema.TABLES where table_schema='​mythconverg'​ +
-  union +
-  SELECT concat('​check table ',​table_schema,'​.',​table_name,';'​) as ' ' FROM information_schema.TABLES where table_schema='​mythconverg'​ +
-  union +
-  SELECT concat('​optimize table ',​table_schema,'​.',​table_name,';'​) as ' ' FROM information_schema.TABLES where table_schema='​mythconverg'​ +
-  union +
-  SELECT concat('​repair table ',​table_schema,'​.',​table_name,';'​) as ' ' FROM information_schema.TABLES where table_schema='​mythconverg';"​ >​${SCRIPTDIR}/​optimysqlmyth.sql +
-  echo "​Optimize mysql mythtv (--- Part 2 `date +'​%y/​%m/​%d-%H:​%M.%S'​` ---)"​ +
-  mysql --user=${USER} --password=${PASSW} ${DATABASE} <​${SCRIPTDIR}/​optimysqlmyth.sql>​ ${SCRIPTDIR}/​optimysqlmyth.log +
-  echo "​Optimize mysql mythtv (--- End    `date +'​%y/​%m/​%d-%H:​%M.%S'​` ---)"​ +
-  echo "​Optimize mysql mythtv (--------------------------------)"​ +
-  echo "​Optimize mysql mythtv (--------------------------------)"​ +
- +
-== Un petit script pour automatiser la gestion des fichiers audios == +
-  #​!/​bin/​bash +
-  ### mysql-settings +
-  HOST=localhost +
-  USER=//​monutilisateur//​ +
-  PASSW=//​monmotdepasse//​ +
-  DATABASE=//​mythconverg//​ +
-  SCRIPTDIR=`dirname $0` +
-   +
-  echo "​Refresh MusicMetadata Browse (------------------------------------------------)"​ +
-  echo "​Refresh MusicMetadata Browse (-- Start  `date +'​%y/​%m/​%d-%H:​%M.%S'​` --------------------)"​ +
-  # Efface les playlist sauf celles par défaut +
-  echo "​Refresh MusicMetadata Browse (-- Part 1 `date +'​%y/​%m/​%d-%H:​%M.%S'​` - efface playlist --)" +
-  echo "​delete from music_playlists where playlist_name <> '​default_playlist_storage'​ and playlist_name <> '​backup_playlist_storage';" ​mysql -u $USER --password=$PASSW -D $DATABASE -h $HOST +
-  # Ajoute les playlist : premier dossier +
-  echo "​Refresh MusicMetadata Browse (-- Part 2 `date +'​%y/​%m/​%d-%H:​%M.%S'​` - crée  playlist ---)"​ +
-  echo "​insert into music_playlists (playlist_name,​playlist_songs) +
-  select if(left(md.path,​INSTR(md.path,'/'​)-1)='',​md.path,​left(md.path,​INSTR(md.path,'/'​)-1)) as play,''​ +
-  FROM music_songs ms,​music_directories md +
-  where md.directory_id=ms.directory_id group by play;" | mysql -u $USER --password=$PASSW -D $DATABASE -h $HOST +
-   +
-  # Ajout des musiques aux playlist +
-  echo "​Refresh MusicMetadata Browse (-- Part 3 `date +'​%y/​%m/​%d-%H:​%M.%S'​` - listes titres ----)"​ +
-  # echo "​update music_playlists m set m.playlist_songs=(select group_concat(ms.song_id) +
-  # FROM music_songs ms,​music_directories md +
-  # where md.directory_id=ms.directory_id +
-  # and (left(md.path,​INSTR(md.path,'/'​)-1)=m.playlist_name or md.path=m.playlist_name) +
-  # group by left(md.path,​CHAR_LENGTH(m.playlist_name)))"​ | mysql -u $USER --password=$PASSW -D $DATABASE -h $HOST +
-   +
-  mysql --user=$USER --password=$PASSW $DATABASE <​$SCRIPTDIR/​rmb.sql>​ $SCRIPTDIR/​rmb2.sql +
-  echo "​Refresh MusicMetadata Browse (-- Part 4 `date +'​%y/​%m/​%d-%H:​%M.%S'​` - ajoute titres ----)"​ +
-  mysql --user=$USER --password=$PASSW $DATABASE <​$SCRIPTDIR/​rmb2.sql>>​ $SCRIPTDIR/​rmb.log +
-   +
-  # Ajoute les playlist : doublon +
-  echo "​Refresh MusicMetadata Browse (-- Part 5 `date +'​%y/​%m/​%d-%H:​%M.%S'​` ​ - Ajout doublon ---)"​ +
-  echo "​insert into music_playlists (playlist_name,​playlist_songs) values('​Doublon',''​);"​ | mysql -u $USER --password=$PASSW -D $DATABASE -h $HOST +
-  echo "​update music_playlists m set m.playlist_songs=(select group_concat(ms.song_id) FROM music_songs ms +
-  inner join music_directories cc on ms.directory_id=cc.directory_id +
-  left join music_directories c on c.directory_id=cc.parent_id +
-  inner join (SELECT m.name,​m.filename,​ count(*) as tt FROM music_songs m group by m.name,​m.filename having tt>1) mm on mm.name=ms.name) +
-  where m.playlist_name='​Doublon'​ ; " | mysql -u $USER --password=$PASSW -D $DATABASE -h $HOST +
-  # Ajoute les playlist : doublon +
-   +
-  echo "​Refresh MusicMetadata Browse (-- End    `date +'​%y/​%m/​%d-%H:​%M.%S'​` ​ -------------------)"​ +
-  echo "​Refresh MusicMetadata Browse (------------------------------------------------)"​ +
- +
-Avec son petit script sql  +
-  SELECT concat('​update music_playlists m set m.playlist_songs=concat(m.playlist_songs,''',​ms.song_id,''',',''',''','​) where  +
-  m.playlist_name=''',​left(m.path,​INSTR(m.path,'/'​)-1),'''',';'​) as "START TRANSACTION;"​ +
-  FROM music_songs ms,​music_directories m +
-  where m.directory_id=ms.directory_id and left(m.path,​INSTR(m.path,'/'​)-1)<>''​ ; +
-  select '​COMMIT;'​ as ""​ from dual; +
-  SELECT concat('​update music_playlists m set m.playlist_songs=concat(m.playlist_songs,''',​ms.song_id,''',',''',''','​) where m.playlist_name=''',​m.path,'''',';'​) as "START TRANSACTION;"​ +
-  FROM music_songs ms,​music_directories m +
-  where m.directory_id=ms.directory_id and left(m.path,​INSTR(m.path,'/'​)-1)=''​ ; +
-  select '​COMMIT;'​ as ""​ from dual; +
- +
-== Un petit script pour automatiser la gestion des fichiers vidéos == +
-(enchainement des vidéos, classement des genres en fonction des dossiers et création des minin affiches pour les videos qui n'en n'ont pas) +
- +
-  #​!/​bin/​bash +
-  ### Pour MYSQL 5.0 peut être moins +
-  ### mysql-settings +
-  HOST=localhost +
-  USER=//​monutilisateur//​ +
-  PASSW=//​monmotdepasse//​ +
-  DATABASE=//​mythconverg//​ +
-  SCRIPTDIR=`dirname $0` +
-  THUMB_TIME=00:​01:​00 +
-  THUMB_NB=40 +
-  THUMB_DIR=/​media/​FILMS/​.affiches +
-   +
-  ### initialise le champ coverfile si fichier inexistante +
-  VERIF_COVER() +
-  { +
-  if [ ! -f "​$1" ​]; then +
-   echo '​update videometadata set coverfile="​No Cover" where coverfile="'​$1'"'​ | mysql -u $USER --password=$PASSW -D $DATABASE -h $HOST +
-  fi +
-  } +
-   +
-  ### Crée et affecte les couvertures +
-  AJOUT_COVER() +
-  { +
-  filename="​$1"​ +
-  THUMB_PATH="​$THUMB_DIR/​`basename "​${filename}"​`.png"​ +
-  mplayer -ss $THUMB_TIME -nosound -frames 3 -vo png:z=9 "​${filename}"​ >> $SCRIPTDIR/​rvb.log && mv -f 00000003.png "​$THUMB_PATH"​ >> $SCRIPTDIR/​rvb.log +
-  if [ ! -f "​${THUMB_PATH}" ​]; then +
-    mplayer -nosound -frames $THUMB_NB -vo png:z=9 "​${filename}"​ >> $SCRIPTDIR/​rvb.log && mv -f 000000${THUMB_NB}.png "​$THUMB_PATH"​ >> $SCRIPTDIR/​rvb.log +
-  ​fi +
-  if [ -f "​${THUMB_PATH}"​ ]; then +
-    echo "​UPDATE ​ videometadata SET coverfile=\"​${THUMB_PATH}\" ​ WHERE filename=\"​${filename}\"​ ;" | mysql -u $USER --password=$PASSW -D $DATABASE -h $HOST +
-  fi +
-  rm 000000??​.png >> $SCRIPTDIR/​rvb.log +
-  } +
-   +
-  ### MAIN ### +
-  echo " "> $SCRIPTDIR/​rvb.log +
-  echo "​Refresh Videometadata Browse (---------------------------------------------)"​ +
-  echo "​Refresh Videometadata Browse (-- Start  `date +'​%y/​%m/​%d-%H:​%M.%S'​` -----------------)"​ +
-  ### RAZ des couvertures inexistantes +
-  echo "​Refresh Videometadata Browse (-- Part 1 `date +'​%y/​%m/​%d-%H:​%M.%S'​` - affiche RAZ ---)"​ +
-  echo "​select coverfile as ' ' from videometadata  +
-  WHERE  coverfile<>'​No Cover' ;  " | mysql -u $USER --password=$PASSW -D $DATABASE -h $HOST >"​$SCRIPTDIR"/​list_cover.txt +
-  while read ligne +
-  do +
-   ​VERIF_COVER "​$ligne"​ +
-  done <​$SCRIPTDIR/​list_cover.txt +
-   +
-  ### Recherche des couvertures manquantes +
-  echo "​Refresh Videometadata Browse (-- Part 2 `date +'​%y/​%m/​%d-%H:​%M.%S'​` - ?? affiches ---)"​ +
-  echo "​select v.filename as ' ' from videometadata v  +
-  WHERE v.coverfile='​No Cover' and LOWER(right(v.filename,​3)) not like '​ifo'​  +
-  and LOWER(right(v.filename,​3)) not like '​bup'​ and LOWER(right(v.filename,​3)) not like '​srt'​  +
-  and LOWER(right(v.filename,​3)) not like '​idx'​ and LOWER(right(v.filename,​3)) not like '​sub';​ " | mysql -u $USER --password=$PASSW -D $DATABASE -h $HOST >"​$SCRIPTDIR"/​list_file.txt +
-  ### Creation et affectation des couvertures manquantes +
-  # incompatible avec mplayer +
-  # do +
-  #   ​echo ​ -e "​$ligne\n"​ +
-  #   ​AJOUT_COVER "​$ligne"​ +
-  # done <​$SCRIPTDIR/​list_file.txt +
-  echo "​Refresh Videometadata Browse (-- Part 3 `date +'​%y/​%m/​%d-%H:​%M.%S'​` - crée affiche ​ --)" +
-  oldIFS=$IFS ​    # sauvegarde du séparateur de champ +
-  IFS=$'​\n' ​    # nouveau séparateur de champ, le caractère fin de ligne +
-  for ligne in $(cat $SCRIPTDIR/​list_file.txt) +
-  do +
-     ​AJOUT_COVER "​$ligne"​ +
-  done +
-  IFS=$old_IFS ​    # rétablissement du séparateur de champ par défautwhile read ligne +
-   +
-  echo "​Refresh Videometadata Browse (-- Part 4 `date +'​%y/​%m/​%d-%H:​%M.%S'​` - prep script --)" +
-  mysql --user=$USER --password=$PASSW $DATABASE <​$SCRIPTDIR/​rvb.sql>​ $SCRIPTDIR/​rvb2.sql +
-  echo "​Refresh Videometadata Browse (--- Part 2 `date +'​%y/​%m/​%d-%H:​%M.%S'​` - exec scripts --)" +
-  mysql --user=$USER --password=$PASSW $DATABASE <​$SCRIPTDIR/​rvb2.sql>>​ $SCRIPTDIR/​rvb.log +
-  echo "​Refresh Videometadata Browse (--- End    `date +'​%y/​%m/​%d-%H:​%M.%S'​` -----------------)"​ +
-  echo "​Refresh Videometadata Browse (---------------------------------------------)"​ +
-  exit +
- +
-Avec son petit script sql (qui efface toutes les playlists!!!) : +
-  # Efface les categories de video +
-  truncate videocategory;​ +
-   +
-  # Ajout des categories +
-  # 14 = CHAR_LENGTH('/​media/​FILMS/'​) +
-  START TRANSACTION;​ +
-  insert into videocategory (category) select distinct mid(videometadata.filename,​14,​INSTR(mid(videometadata.filename,​14),​ "/"​)-1) from videometadata;​ +
-  COMMIT; +
-   +
-  # création du second script sql +
-   +
-  # Affectation des categories +
-  # 14 = CHAR_LENGTH('/​media/​FILMS/'​) +
-  select concat('​update videometadata set category=',​videocategory.intid,'​ where intid=',​videometadata.intid,';'​) as "START TRANSACTION;​ "  +
-  from videometadata,​videocategory where mid(videometadata.filename,​14,​INSTR(mid(videometadata.filename,​14),​ "/"​)-1)=videocategory.category;​ +
-  select '​COMMIT;'​ as "";​ +
-   +
-  # Enchainement des videos (recherche de la derniere) (avec le debut de transaction) +
-  SELECT ​ concat('​update videometadata set browse=0 ,​childid=',​v.intid,'​ ') as "START TRANSACTION;​ " +
-  FROM videometadata v where LOWER(right(v.filename,​3)) not like '​ifo'​ and LOWER(right(v.filename,​3)) not like '​bup'​  +
-  and LOWER(right(v.filename,​3)) not like '​srt'​ and LOWER(right(v.filename,​3)) not like '​idx'​ and LOWER(right(v.filename,​3)) not like '​sub'​  +
-  and v.filename=(select min(vv.filename) from videometadata vv); +
-  # Enchainement des videos +
-  SELECT ​ concat('​ where intid=',​v.intid,​ '; update videometadata set browse=0 ,​childid=',​v.intid) as " " +
-  FROM videometadata v where LOWER(right(v.filename,​3)) not like '​ifo'​ and LOWER(right(v.filename,​3)) not like '​bup'​  +
-  and LOWER(right(v.filename,​3)) not like '​srt'​ and LOWER(right(v.filename,​3)) not like '​idx'​ and LOWER(right(v.filename,​3)) not like '​sub'​  +
-  order by v.filename desc; +
-  # Enchainement des videos (recherche de la derniere) +
-  SELECT ​ concat('​ where intid=',​v.intid,';​ ') as " " +
-  FROM videometadata v where LOWER(right(v.filename,​3)) not like '​ifo'​ and LOWER(right(v.filename,​3)) not like '​bup'​  +
-  and LOWER(right(v.filename,​3)) not like '​srt'​ and LOWER(right(v.filename,​3)) not like '​idx'​ and LOWER(right(v.filename,​3)) not like '​sub'​ +
-  and v.filename=(select max(vv.filename) from videometadata vv); +
-  # pour la fin de transaction +
-  select '​COMMIT;'​ as ""​ ; +
-  quit +
- +
-//(Pourquoi c'est long ? il y a beaucoup de fichiers et la machine n'est pas rapide)// +
- +
-//(Pourquoi ça plante ? erreur de lecture/​écriture,​ erreur de mot de passe etc...regarder la log : rvb.log ou optimysqlmyth.log. ou simplement un mauvais codec pour créer les miniatures)//​ +
- +
- +
-== Intégration dans un menu == +
-  sudo vi /​usr/​share/​mythtv/​util_menu.xml +
-Ajouter à l'​avant-dernière ligne (le fichier commençant par <​mythmenu>​ doit finir par </​mythmenu>​ ): +
- +
-   <​button>​ +
-       <​type>​MUSIC_SCAN</​type>​ +
-       <​text>​r.v.b.</​text>​ +
-       <​text lang="​FR">​r.v.b.</​text>​ +
-       <​action>​EXEC gnome-terminal -e /​home/​mythtv/​scripts/​rvb.sh</​action>​ +
-   </​button>​ +
- +
-   <​button>​ +
-       <​type>​MUSIC_SCAN</​type>​ +
-       <​text>​optimysqlmyth</​text>​ +
-       <​text lang="​FR">​optimysqlmyth</​text>​ +
-       <​action>​EXEC gnome-terminal -e /​home/​mythtv/​scripts/​optimysqlmyth.sh</​action>​ +
-   </​button>​ +
- +
-== Autre méthode == +
-faire dans le dossier des vidéos +
-  dir > all_videos.pls +
-ou +
-  find  /​media/​CLIPS/​ -type f -name "​*" ​  -type f -print > /​media/​CLIPS/​all_videos.pls +
-(fait la liste de tout les videos qui se trouve dans /​media/​CLIPS/​) +
- +
-Pour créer sa playlist. +
- +
-Ajouter au Paramètres→Paramètres médias→Paramètres Vidéos→Type de fichiers +
-une extension pls et la commande : +
-  mplayer -fs -zoom -quiet -vo xv -playlist %s +
- +
-=== DEMARRAGE AUTO === +
-Dans Système->​Préférences->​Sessions : +
- +
-mythbackend (est parfois inutile : ps -ef |grep mythbackend) +
- +
-mythfrontend - -service +
- +
-irexec –d (à rajouter à la fin, voire à enlever et remettre...) +
- +
- +
-== Rien à voir mais ça peut toujours servir == +
- +
-Arrêter démarrer le backend : +
-  sudo /​etc/​init.d/​mythtv-backend stop +
-  sudo /​etc/​init.d/​mythtv-backend start +
-   +
-Arrêter démarrer mysql : +
-  sudo /​etc/​init.d/​mysql stop +
-  sudo /​etc/​init.d/​mysql start +
- +
- +
-=== SAMBA === +
-Avoir une bibliothèque multimédia c'est bien, la partager c'est mieux... +
- +
-  sudo smbpasswd -a `whoami` +
- +
-<​del>​sudo gedit /​etc/​samba/​smb.conf </​del>​ +
- +
-=== MYTHTV GALERIE === +
-Pas grand chose à faire, à part le setup : indiquer l'​emplacement des photos. +
-Pour son utilisation regarder "​Configurer les touches"​. +
- +
- +
-=== ARRET et REBOOT de Mythtv (!) === +
-La commande pour rebooter ou arrêter l'​ordinateur peut ne pas fonctionner (car nécessite une commande sudo reboot...). +
- +
-Pour remédier à cela ajouter //​son_utilisateur//​ au fichier /​etc/​sudoers:​ +
- +
-(problème : le fichier doit être en lecture seul. Solution : l'​écraser) +
-  +
-  sudo cp /​etc/​sudoers /​etc/​sudoers.new +
-  sudo chmod 777 /​etc/​sudoers.new +
-  sudo gedit /​etc/​sudoers.new +
-ajouter en fin de fichier (//​son_utilisateur//​ = myth): +
-  mythtv ALL=NOPASSWD:/​sbin/​halt,/​sbin/​reboot,/​bin/​mount,/​bin/​umount +
-Puis écraser par le nouveau fichier +
-  sudo chmod 440 /​etc/​sudoers.new +
-  sudo cp /​etc/​sudoers.new /​etc/​sudoers +
- +
-En cas de problème redémarrer en mode (recovery mode) et supprimer cette ligne précédemment ajoutée. +
- +
-Cette methode n'a plus l'air de fonctionner sur Jaunty, pour y remédier : +
-  sudo chmod u+s /​sbin/​halt +
-  sudo chmod u+s /​sbin/​reboot +
- +
-//(la différence avec la précédente méthode est dans le premier cas seul un utilisateur peut executer la commande, dans la seconde c'est permis pour tout le monde)// +
- +
-===== Liens ===== +
- +
-- Toutes les informations de la mise en place de [[http://​mythtv-fr.tuxfamily.org/wiki/​mythbuntu_pas_a_pas_sur_ubuntu|Mythbuntu sous Ubuntu]] (Wiki francophone des utilisateurs de Mythtv) +
- +
-http://​www.mythtv.org/​ +
- +
-http://​mythtv-fr.tuxfamily.org/​ +
- +
-http://​doc.ubuntu-fr.org/​media_center +
- +
-http://​www.mythtv.org/​modules.php?​name=MythFeatures +
- +
-http://​doc.ubuntu-fr.org/​imprimante_brother_dcp-130c +
- +
-https://​help.ubuntu.com/​ubuntu/​serverguide/​fr/​configuring-samba.html +
- +
-http://​dev.mysql.com/​doc/​refman/​5.0/​fr/​index.html +
- +
-Merci, thank you, vielen Dank aux autres +
- +
----- +
- +
-Contributeurs :  [[utilisateurs:​yurek]],​ [[utilisateurs:​laurentb|L.Bellegarde]]+
  • mythtv.1258051695.txt.gz
  • Dernière modification: Le 18/04/2011, 14:46
  • (modification externe)