Journal lm (list movies): un outil en ligne de commande pour lister vos films à la ls

Posté par (page perso) .
Tags :
20
19
juil.
2010
Salut à tous,

je viens de coder un petit outil en ligne de commande qui permet de lister les films d'un répertoire en fonction des metadata IMDb. Ce logiciel s'inspire librement de ls et se nomme lm pour list movies (ou list media si un jour il gère autre chose).

L'idée est simple: quand il ne connait pas un film, il va chercher les infos sur IMDb et met ça en cache. Ensuite vous pouvez trier selon les notes (c'était le besoin de base) - même si je suis pas un grand fan des notations -, afficher la page IMDb dans votre butineur, afficher le résumé, ou filtrer selon, par exemple, le genre.
Ainsi avec lm --filter "@director:tim burton@genre:drama,fantasy" vous obtiendrez Edouard aux mains d'argent (enfin Edward Scissorhands parce que ça se regarde en VO un film pareil). Avec lm -f@genre:animation vous obtiendrez les films pour les ch'tios classés par notes (et votre neveu de 4 ans sera content de voir Fritz the Cat).

La première phase (pêche aux metadata) est, vous vous en doutez, très longue. Aussi, pour tester il vaut peut être mieux le faire dans un répertoire avec peu de films.

J'envisage à terme d'ajouter une options de téléchargement automatique de sous-titres, et éventuellement de récupérer les notes/metadata d'autres sites (wikipedia, rotten tomatoes, allociné par exemple - enfin faut pas que ça devienne une usine à gaz non plus - ).

J'ai fait ça pour mon propre besoin, mais je pense que ça peut servir à pas mal de monde.

Si vous avez des suggestions, n'hésitez pas à m'en faire part. Bon par contre je ne consacrerai par énormément de temps sur ce script, vu que j'ai un autre projet bien plus important sur le feu.

Pour la licence, c'est du GPL v3, et c'est à récupérer sur mon site: www.goffi.org

enjoy !

PS: j'ai un autre petit script pour les films sur mon site: mkvconvert, qui transcode les fichier mkv avec un codec non lisible par vlc en xvid.
  • # Problème sous python 2.5

    Posté par (page perso) . Évalué à  1 .

    Ça ne fonctionne pas sous python 2.5 (sur debian lenny) :

    $ python --version
    Python 2.5.2

    $ ./lm
    ./lm:78: Warning: 'with' will become a reserved keyword in Python 2.6
    File "./lm", line 78
    with open(os.path.expanduser('~/.lm_movies_cache'),'r') as f:
    ^
    SyntaxError: invalid syntax

    Par contre ça fonctionne bien sous python 2.6.5 (debian sid).

    WeeChat, the extensible chat client

    • [^] # Re: Problème sous python 2.5

      Posté par (page perso) . Évalué à  3 .

      oui c'est dev sur python 2.6 (qui a presque 2 ans quand même !), tu peux ajouter au début du fichier
      from __future__ import with
      et ça devrait fonctionner.
  • # Interrogation IMDB

    Posté par (page perso) . Évalué à  4 .

    J'ai la flemme de regarder dans le source. Comme se passe l'interrogation de IMDB? C'est un webservice (avec du XML ou autre comme format d'échange), ou alors du Web_scraping (extraction des données depuis une page web)?
    • [^] # Re: Interrogation IMDB

      Posté par . Évalué à  0 .

      c'est plus de la flemme là c'est de la paralysie totale
      http://imdbpy.sourceforge.net/
    • [^] # Re: Interrogation IMDB

      Posté par (page perso) . Évalué à  3 .

      Oui voilà IMDbPY s'en charge, du coup pas trop de questions de ce côté et j'aurai pas non plus à gérer moi même les changements sur le site.

      Après j'ai jeté un rapide coup d'œil pour le reste:
      - Wikipedia (et autres sites wikimedia), y'a une api bien documentée
      - opensubtitle: xmlrpc, documenté
      - allocine: il y a une api non officielle, retrouvée par un mec: http://wiki.gromez.fr/dev/api/allocine
      - rotten tomatoes: rien trouvé avec une rapide recherche, au pire ça se réglera à coups de beautifulsoup.
  • # lm -f@genre:animation

    Posté par (page perso) . Évalué à  7 .

    et là, c'est le drame !

    entre les Hentaïs, Tokyo Babylon, Berserk, Death Note, Akira & co ... ton enfant risque d'être heureux.

    un film d'animation n'est pas nécessairement pour enfants !

    arretons de propager ce mythe qui fait plus de mal à la création en bande dessinée et en film d'animation ... limitant sur ce coup la prod "morale" à lucky luke (qui ne fume plus), spirou (excepté la période la plus adulte qui fut conclus par la "machine qui reve"), Dora l'exploratrice et autres tchoupi.
  • # recherche de doublon ?

    Posté par . Évalué à  2 .

    Est-ce que ton truc serait capable d'attraper des doublons entre les vidéos stocké sur différent support ? (genre sauvegarde au fin fond d'un disque externe)

    "La liberté de tout dire n'a d'ennemis que ceux qui veulent se réserver le droit de tout faire". "La question n'est pas de savoir si vous avez quelque chose à cacher. La question est de savoir si c'est nous qui contrôlons le gouvernement ou l'inverse

    • [^] # Re: recherche de doublon ?

      Posté par (page perso) . Évalué à  3 .

      En fait la recherche se base uniquement sur le nom du fichier (nettoyé à coups de regex), et ne stocke pas le chemin complet en cache (il cherche juste en listant des fichiers si le nom de fichier est connu). Autrement dit, quand lm voit un fichier, il ne sait pas qu'il y en a un autre ailleurs, mais juste qu'il a les metadata (ou qu'il doit les chercher).
      Après, ça peut éventuellement être utilisé pour les doublons en faisant un truc style (sous zsh avec extended glob, doit y avoir des équivalent sous les autres shells):
      lm **/*
      je peux éventuellement ajouter une options qui compare les id IMDb et affiche celles trouvés plusieurs fois.

      Mais il y a des logiciels spécialisés pour ça, comme fdupes.

      Je pense mettre également une option de renommage « propre » des fichiers (renommer les fichiers depuis le titre IMDb).
  • # intéressant si combiné avec mkvmerge

    Posté par . Évalué à  1 .

    intéressant si il peut etre combiné avec mkvmerge, pour creer des tags dans les mkv.

    c'est un peu ce qui manque actuellement dans les outils de bibliothèque de film, personne n'utilise les tags pour les vidéos, alors qu'il existe des solutions pour les mp3 et les photos.

    surtout qu'il existe une spécification des tags assez intéressante : http://www.matroska.org/technical/specs/tagging/index.html
    • [^] # Re: intéressant si combiné avec mkvmerge

      Posté par . Évalué à  5 .

      C'est quoi cette habitude d'utiliser MP3 pour dire musiques ?

      Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

    • [^] # Re: intéressant si combiné avec mkvmerge

      Posté par . Évalué à  2 .

      Il faudrait aussi que mplayer puisse les afficher en appuyant sur une touche, pendant la lecture de la vidéo.

      By all that you hold dear on this good Earth, I bid you STAND, MEN OF THE WEST!

  • # Téléchargement des sous titres

    Posté par . Évalué à  2 .

    Sympa cet outil. C'est une bonne idée le téléchargement des sous titres.

    Si tu veux j'ai fait un script python qui marche avec nautilus/gnome (avec zenity) ou kde (avec kdialog) ou en console (enfin avec zenity quand même, mais je vais corriger ça un de ces quatre...), tu devrai pouvoir t'en inspirer facilement : http://code.emericdev.com/projects/opensubtitles-dl/

    Le script fait un hash du flim et va chercher les correspondances dans la base de données d'opensubtitles.org, pour avoir un sous titre vraiment adapté à ta version du flim, dans la langue souhaitée.
  • # Suggestions

    Posté par . Évalué à  3 .

    Compliments, ton programme est pas mal fichu du tout et trouvera certainement son utilité. Je me permets juste de faire quelques suggestions:

    - Pour l'instant les clés de ton dictionnaire sont les noms des fichiers.
    Si tu envisages un renommage automatique ou si des fichiers malformés sont renommés pour pouvoir être retrouvé sur IMDB,
    tu devrais peut-être calculer un hash des fichiers qui te servirait de clé. Comme j'ai vu que tu t'intéressais à opensubtitles, tu pourrais peut-être réutiliser leur API qui permet de calculer un hash et récupérer des sous-titres à partir de celui-ci.

    - J'ai vu que tu appliquais des traitements pour essayer de deviner les noms de titres mais lorsque plusieurs titres correspondent tu prends la première occurrence.
    Il serait peut-être judicieux de laisser le choix en mode interactif.
    Par la suite tu appliques un post-traitement pour déterminer le meilleur titre mais toujours par rapport au fichier préselectionné. Cet algorithme devrait peut-être être utilisé pour la sélection du meilleur film lorsqu'il y a plusieurs occurrences (j'ai peut-être mal compris ton programme que je n'ai fait que survoler).

    - Dans ton programme tu fais beaucoup appel à des listes en compréhension ou des structures complètes en mémoire. Il serait peut-être opportun d'utiliser des itérateurs pour certains traitements.

    - Une option de récupération de ses propres notes serait pourrait être sympa, de même la possibilité de noter un film à partir de ton programme sur pousieurs sites en même temps et en local.

    - Il serait pas mal aussi de pouvoir rechercher un film simplement à partir d'un titre et indiquer qu'on souhaite le voir (ceci existe sur Allociné)

    - Tu as évoqué la possibilité de te connecter à Allociné. Je suis assez intéressé mais je dois te prévenir qu'un client multisite est assez complexe à mettre au point car pas mal de chose sont différentes entre Allociné et IMDB:
    - le moteur de recherche n'utilise pas les même conventions
    - les genres sont parfois redondants mais pas identiques,
    - Des données présents sur l'un ne le sont pas sur l'autre (notes de la presse sur Allociné, aka sur IMDB alors que Allociné se content du titre francais et éventuellement original.
    - identifiants différents sur chaque site (implique autan de clé (site/identifiant à stocker par fiche)
    ...


    D'ailleurs si quelqu'un connait un système d'identification standard des films (un peu comme les ISBN pour les livres) je suis preneur.
    • [^] # Re: Suggestions

      Posté par . Évalué à  2 .


      D'ailleurs si quelqu'un connait un système d'identification standard des films (un peu comme les ISBN pour les livres) je suis preneur.


      Je me réponds.
      Il semblerait qu'il existe, seulement il n'est pas utilisé pas les divers sites de ciné.
      http://fr.wikipedia.org/wiki/ISAN

      Déjà que ce sont des dbs proprios.
    • [^] # Re: Suggestions

      Posté par . Évalué à  2 .

      Oui pour identifier un film tu peux faire un hash, le comparer avec la base de données de hash d'opensubtitles (extrêmement fournit) et de la en extraire directement l'identifiant imdb, ou dans le pire des cas le nom exact du film.
      • [^] # Re: Suggestions

        Posté par . Évalué à  2 .

        Ca me parait un peu alambiqué comme méthode pour récupérer un titre.

        Sinon concernant les sous-titres, il n'y a aucune garantie que les données soient plus fiables en passant par le hash et le vandalisme doit exister. Rien n'empêche de publier un sous-titre bidon avec un hash particulier pour polluer les recherches.

        Je m'interroge aussi sur la pertinence de la fonction de hashage. Est-elle vraiment efficace et n'occasionne t'elle pas trop de collisions ?
        • [^] # Re: Suggestions

          Posté par . Évalué à  1 .

          Le vandalisme sur opensubtitles, je n'ai encore jamais constaté.
          Les seuls sous titres pourris qu'on pouvait trouver étaient les sous titres traduits avec des logiciels de traduction, mais ces fichiers se font rares car depuis peu bannis du site.

          Le hash est plus fiable que la recherche par nom car tu peux tomber sur ta version exacte du film, et tu as donc l'assurance d'avoir un sous titre parfaitement synchronisé. Et en cas d'échec rien n'empêche de retenter une recherche par nom.
          Le nombre de hash répertoriés sur opensubtitle est hallucinant, la recherche est redoutable (enfin surtout pour les sous titres en vo)

          Quand aux collisions, après plusieurs années d'utilisations (relativement intensive), j'en ai vu deux trois, pas plus.
    • [^] # Re: Suggestions

      Posté par . Évalué à  2 .

      Sinon j'aurais une question.
      Dans ton code, tu mets en commentaire qu'il faut passer à argparse car optparse est deprecated en 2.7.

      Pourtant ce module n'existe pas en 3.1 alors que optparse a été porté.
      On a une idée sur le module qui sera officiellement supporté en 3.x ?
    • [^] # Re: Suggestions

      Posté par (page perso) . Évalué à  2 .

      Exactement le genre de commentaire que je souhaitais, merci.

      Quelques réponses:

      - j'utilise le nom de fichier parce que je voulais quelque chose de rapide, et ça ne marche pas trop mal sur les tests que j'ai fait. Utiliser un hash est envisageable mais avec une option spécifique, parce que c'est quand même beaucoup plus long.

      - Je veux que l'outil soit au maximum automatique, c'est pourquoi je prends le premier résultat (qui souvent est le bon). Le problème d'un mode interactif c'est qu'il va t'interrompre dès que tu as plusieurs résultats, et je veux pouvoir lancer l'outil sur un répertoire, aller boire un café/mater un film, et pouvoir revenir avec les tous films parsés.
      Le post traitement ne choisi pas le meilleur titre mais le valide: si le titre ou un autre titre connu (à l'étranger) est proche du nom de fichier, ou se trouve carrément dedans, alors c'est validé, sinon le titre est considéré comme "non sûr" et un warning (/!\) apparait devant. C'est un peu bourrin mais ça marche pas trop mal.
      Ensuite tu peux spécifier manuellement l'id IMDb avec l'option --set-id. Il est envisageable d'ajouter une options qui reprends tous les films "non sûr" et lance un mode interactif sur eux.

      - tu as tout à fait raison pour les listes en compréhension, j'essaierai d'optimiser ça le prochain coup

      - ce qui m'embête avec une option pour envoyer les notes sur un site, et que ça commence à sortir un peu de ce que ça veut faire à l'origine, ça devient usine à gaz. L'idée de base est principalement un 'ls' spécialisé.
      Cependant en metadata perso, j'avais pensé à une metadata "déjà vu" qu'on pourrai ajouter automatiquement quand on lance mplayer, et qui permettrait donc de trier les films qu'il reste à voir.

      - encore une fois, ça sort de l'idée de base: lm affiche les metadata pour un fichier présent, ce n'est pas un outil de gestion complète des films à voir, etc.

      - je pensais uniquement récupérer les notes et éventuellement les descriptions dans d'autres langues que l'anglais, et garder les genre d'IMDb (qui sont pas trop mal) pour garder la consistance. Rien qui demande un compte sur ces sites (je veux éviter d'avoir à mettre un fichier de configuration pour indiquer login/pass: l'outil doit rester simple).

      et pour répondre à un peu plus bas:
      - j'ai juste mis passer à argparse parce que le site de python indique que c'est la méthode préférée, et que je voulais l'essayer. Je ne suis pas encore python 3.x, mais je pense qu'il devrait s'y trouver rapidement.
      optparse ne sera pas retiré (du moins ce n'est pas envisagé pour le moment).
      • [^] # Re: Suggestions

        Posté par . Évalué à  2 .


        j'utilise le nom de fichier parce que je voulais quelque chose de rapide, et ça ne marche pas trop mal sur les tests que j'ai fait. Utiliser un hash est envisageable mais avec une option spécifique, parce que c'est quand même beaucoup plus long.

        Tu devrais faire des tests avec la fonction de hash de opensubtitles (empruntée à Media Player Classic), tu serais surpris. Et n'oublie pas que c'est résistant au renommage de fichiers.
        http://trac.opensubtitles.org/projects/opensubtitles/wiki/Ha(...)

        Sinon pour le coté interactif des doublons, je proposais ca en option.

        Pour le reste, je comprend tes arguments..
        • [^] # Re: Suggestions

          Posté par (page perso) . Évalué à  2 .

          Ah oui en effet, je m'attendais à un truc style md5, là c'est clairement utilisable.
          Je vois cependant encore 2 problème:
          - ça demande l'accès à un deuxième site
          - ça marche bien pour les rip diffusés sur le net, ou avec des options par défaut, mais ça ne sera pas le cas pour le rip maison avec un encodage aux petits oignons que tu seras le seul à avoir

          Bref, du coup je pense mettre ça dans une prochaine version (avec les sous-titre au passage), mais avec une option pour choisir la méthode (hash, nom ou hash + nom si pas de correspondance au hash).

          Merci pour le lien
          • [^] # Re: Suggestions

            Posté par . Évalué à  2 .

            Je n'ai pas compris pourquoi tu penses qu'il faut un accès à un 2eme site. Si tu ne gères pas les sous-titres tu peux récupérer la routine de hachage telle quelle et tu n'as aucune dépendance avec le site. Ca marche pour les rip maison pareil, c'est juste que la clé de ton dict est maintenant le hash et plus le nom du fichier.

            J'ai testé pour un autre besoin et je peux t'envoyer mon code si tu veux.
            • [^] # Re: Suggestions

              Posté par (page perso) . Évalué à  2 .

              Je pensais à l'association hash/imdb: il faut accéder à opensubtitle avec le hash pour avoir l'id imdb. Mais en effet, c'est plus logique pour l'association avec les fichiers.
  • # Question bête

    Posté par . Évalué à  1 .

    C'est un truc pour inciter au piratage, non ? Quel intérêt d'un tel outil si ce n'est de gérer des films téléchargés ou récupérés chez un copain ?

    L'argument « copie de sauvegarde » me paraît bien court aujourd'hui, avec nos capacités de stockage, on peut se contenter des images ISO sans avoir besoin de compresser (ce que je fais). À moins que ton outil ne fonctionne avec les images ISO, ce qui serait top.
    Mais bon, cette interrogation ne retire rien à son utilité ni au côté technique ;-)

    Une petite suggestion constructive quand même : pourquoi ne pas utiliser Tracker ou Strigi pour stocker les métadonnées ? Ça permettrait d'intégrer le tout dans les bureaux et ça serait sympa : je lance une recherche « Tim Burton » dans Tracker, et je n'ai qu'à double-cliquer dans la liste pour regarder un film.

    Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

    • [^] # Re: Question bête

      Posté par . Évalué à  2 .

      Parce que des gens n'utilisent pas Tracker ni Strigi, ni même de « bureau ».
      • [^] # Re: Question bête

        Posté par . Évalué à  2 .

        Pas besoin de bureau pour utiliser Tracker puisqu'il apporte ses outils en ligne de commande, comme « tracker-search » (pour Strigi, je ne sais pas). Ça fait un peu comme locate, mais pas limité aux noms et chemins.

        Et l'intérêt, c'est que d'autres outils peuvent s'en servir pour partager des informations entre eux. Par exemple, les gestionnaires de photos peuvent y récupérer les métadonnées des photos, ça leur permet de ne pas avoir de base spécifique à gérer, et en même temps ils récupèrent les informations des nouveaux fichiers sans avoir à les indexer.
        Pareil pour la musique, etc.

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

    • [^] # Re: Question bête

      Posté par . Évalué à  2 .

      Je pense que pas mal de personne achètent un DVD, le "ripe" et utilisent la version riper pour garder précieusement la version DVD.

      C'est un peu comme quand tu fait de la récupération de données sur un support quelconque. Tu fait une copie de ses données et c'est sur la copie que tu travail.

      La source initiale est toujours la plus précieuse (dans ce contexte).

      Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

      • [^] # Re: Question bête

        Posté par . Évalué à  1 .

        Oui, c'est bien pour ça que je parle d'image ISO, et c'est ce que je fais.

        En plus, faire une copie compressée peut prendre plusieurs heures (avec une qualité pas forcément au top), alors qu'une copie ISO ne prend que quelques minutes et ne perd pas en qualité.

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

        • [^] # Re: Question bête

          Posté par . Évalué à  2 .

          Tout le monde ne manipule pas les teraoctets comme s'ils ne coutaient rien. Surtout que ça rend beaucoup de choses plus lente (le déplacement par exemple).

          Tu les lis comment tes films ? Tu monte l'image iso en loopback et vlc peut le lire comme si c'était vraiment dans un lecteur ? Si tu veut le lire sur une autre machine (pas forcément un unix(-like)) tu lance vlc en mode serveur (ou vls) ?

          Ce sont de vrai question.

          Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

          • [^] # Re: Question bête

            Posté par . Évalué à  2 .

            Reconnais que c'est courant aujourd'hui, le moindre disque dur USB d'un To coute moins de 80 € (c'est le cas pour le mien).

            Et comme je l'ai dit, je trouve que c'est plus rapide que de compresser un DVD (surtout avec un Intel Atom...). Quelles manipulations veux-tu faire une fois que tu as le fichier sur ton DD externe ? J'ai un dossier Vidéo/DVD, et une fois qu'ils y sont, ils y restent.

            Quand à la lecture, c'est tout simple : clic droit sur l'image, lire avec VLC.
            Et pour lire sur une autre machine, ben je déplace mon DD.

            Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

            • [^] # Re: Question bête

              Posté par . Évalué à  3 .

              Je dis pas que ça ne se répand pas. Mais ce n'est pas encore une généralité. Je l'affirme je n'ai pas de disque dur externe. J'ai une clef USB 8Go. Pour faire du partage de musique et de film sur le réseau local je suis entrain de mettre en place un serveur UPnP. Je ne suis pas sur que le format iso soit génial pour ça.

              Pour la qualité d'image je n'ai jamais eu de problème.

              Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

          • [^] # Re: Question bête

            Posté par . Évalué à  1 .

            % grep mdv /etc/zsh/zshrc
            function mdv() { mplayer -dvd-device $1 dvd://$2 }
            function rmdv() { for i in `seq 1 1 30` ; mplayer -dvd-device $1 dvd://$i }

            Lancer « mdv film.iso »
            Si le film n'est pas sur la première piste dvd (ou titre), lancer « mdv film.iso 2 » ou bien « mdv film.iso 3 »
            Si décidement ils ont mis le film sur le titre 18, plutôt que de les essayer un par un avec mdv, lancer « rmdv film.iso ». Ça va lancer tous les titres du dvd un par un jusqu'au trentième. Appuyer sur entrée tant qu'on a pas trouvé le film, pour passer au titre suivant.

            Oui, le dvd est un conteneur de merde.

            By all that you hold dear on this good Earth, I bid you STAND, MEN OF THE WEST!

            • [^] # Re: Question bête

              Posté par . Évalué à  2 .

              Pas mal j'ai cherché c'est pas dans la config de base sous Debian :)

              Je me le met dans mes fichiers de config' au cas où (et ça pourras m'inspirer).

              Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

              • [^] # Re: Question bête

                Posté par . Évalué à  2 .

                Pas mal j'ai cherché c'est pas dans la config de base sous Debian :)

                Normal, c'est un ajout perso. J'en ai d'autres si tu veux : http://pastebin.com/sudvQHhh

                À noter que pour mdv, ça marche aussi en donnant un répertoire où il y a le contenu de l'iso.

                By all that you hold dear on this good Earth, I bid you STAND, MEN OF THE WEST!

                • [^] # Re: Question bête

                  Posté par . Évalué à  2 .

                  Merci beaucoup je suis très frillant de config' de zsh. :)

                  Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

            • [^] # Re: Question bête

              Posté par (page perso) . Évalué à  3 .

              Pour le second, il me semble que lsdvd indique la durée des titre. Tu pourrait peut-être l'utiliser pour lancer directement le plus long (puis entrée si le plus long n'est pas le bon mais un making of...)?
              • [^] # Re: Question bête

                Posté par . Évalué à  2 .

                C'est une commande que j'utilise principalement pour lire des fichiers iso, ou bien des répertoires contenant ce qu'il y a dans l'iso. J'ai regardé rapidement le man de lsdvd, il a l'air de gérer uniquement les fichiers blocs (typiquement /dev/hdc) :

                % lsdvd Film/
                Can't open main ifo!

                By all that you hold dear on this good Earth, I bid you STAND, MEN OF THE WEST!

                • [^] # Re: Question bête

                  Posté par (page perso) . Évalué à  2 .

                  Avec la version que j'ai (0.16, Debian Sid), ça a l'air de fonctionner avec un répertoire:

                  En étant dans le répertoire contenant le DVD (je n'ai pas d'image iso sous la main pour tester)
                  $ lsdvd VIDEO_TS/ (ou lsdvd .)

                  libdvdread: Using libdvdcss version 1.2.10 for DVD access
                  libdvdread: Couldn't find device name.
                  Couldn't read enough bytes for title.
                  Disc Title: unknown
                  Title: 01, Length: 00:01:02.310 Chapters: 05, Cells: 07, Audio streams: 01, Subpictures: 00

                  Title: 02, Length: 00:00:31.210 Chapters: 02, Cells: 02, Audio streams: 01, Subpictures: 00
                  ...

                  Au niveau supérieur, même message d'erreur que toi.
                  • [^] # Re: Question bête

                    Posté par . Évalué à  1 .

                    Bien vu. Du coup j'ai fait un petit script :
                    if [ -z $2 ]
                    then
                        # On lance la piste la plus longue
                        mplayer -dvd-device "$1" dvd://`lsdvd "$1" 2>/dev/null |grep "Longest track:" |awk '{print $3}'`
                    else
                        # On lance la piste demandée en argument
                        mplayer -dvd-device "$1" dvd://$2
                    fi
                    
                    L'enregistrer quelque part, par exemple ~/scripts/lire_dvd_mplayer.sh Dans /etc/zsh/zshrc ou .zshrc : alias mdv="sh ~user/scripts/lire_dvd_mplayer.sh"

                    By all that you hold dear on this good Earth, I bid you STAND, MEN OF THE WEST!

                    • [^] # Re: Question bête

                      Posté par . Évalué à  2 .

                      $ export PATH="$PATH:~user/scripts/"
                      $ chmod +x ~user/scripts/lire_dvd_mplayer.sh

                      C'est pas plus pratique ?

                      Je suis dans ma tour d'ivoire (rien à foutre des autres, dites moi un truc pour moi), si je ne pose pas explicitement une question pour les 99%, les kévin, les Mm Michu alors c'est que je ne parle pas d'eux.

                      • [^] # Re: Question bête

                        Posté par . Évalué à  1 .

                        1/ Je suis pas motivé à l'idée de mettre dans le PATH un répertoire où l'utilisateur peut écrire. Surtout que j'ai plusieurs sous-répertoires dans mon répertoire scripts, donc il faudrait tous les ajouter (et penser à changer le PATH si jamais je change l'organisation de ces sous-répertoires).

                        2/ Je préfère mettre sh devant mes scripts plutôt que leur donner le bit d'éxécution. Bon ça c'est plus par habitude que par soucis de sécurité. Même s'il peut arriver qu'on se retrouve avec un home en noexec.

                        By all that you hold dear on this good Earth, I bid you STAND, MEN OF THE WEST!

    • [^] # Re: Question bête

      Posté par (page perso) . Évalué à  5 .

      Je l'attendais un peu celle là, même si je vais y couper court parce que j'ai pas envie de rentrer dans un débat qui me passe un peu au dessus de la tête en ce moment.
      Quelques réponses en vrac:

      - il y a des tas de films librement diffusables sur IMDb.
      - je vois des milliers de raisons de compresser ses dvd/autre:
      * les lire sur un netbook qui n'a pas de lecteur dvd, pratique en voyage
      * un divx(ou autre) ça se gère plus facilement qu'un dvd: un peu comme c'est plus simple de retrouver une musique sur amarok que de chercher un cd
      * la place c'est important: contrairement à ce que tu dis, je préfère personnellement avoir un dvd compressé (avec un joi mkv bien rempli) qu'un full ISO, sauf cas particuliers
      * c'est plus facile d'aller chez un pote avec un disque dur 2"5 ou une clé usb qu'avec une mallette remplie de dvd
      * ça se raye pas, et t'as moins peur de filer ça à ton neveu de 4 ans (faut pas abimer ton dvd de Fritz the Cat non plus)
      - je trouve parfaitement légitime de télécharger un film plutôt que de le compresser quand une méthode prend 5 min, et l'autre un paquet d'heures
      - je ne trouve pas illégitime de télécharger un film tout court, ou de faire des échanges avec des potes/de la famille. Mais là on entre dans l'autre débat, alors passons.

      Gérer les iso est parfaitement envisageable

      Je n'ai pas utilisé Tracker ou Strigi ou quoi que ce soit d'autre en dehors de python et IMDbPY parce que je suis parti dans un outil simple que j'ai fait rapidement. Après, pourquoi pas dans le futur ? C'est une idée.
      • [^] # Re: Question bête

        Posté par . Évalué à  1 .

        Je comprends parfaitement ton point de vue, mais personnellement, aucune de tes raisons de compresser mes DVD ne me satisfait, justement à cause des ISO.

        Je ne vois pas en quoi gérer des ISO est plus difficile que des AVI. C'est un fichier comme un autre.
        • j'ai moi-même un netbook, je rippe mes DVD avec un lecteur externe avant de partir,
        • je conserve mes ISO sur un disque dur externe, donc pas plus compliqué à transporter,
        • ça ne se raye pas puisque c'est dématérialisé.
        • la comparaison avec les CD musicaux me paraît hasardeuse : un CD est un ensemble de pistes pouvant être écoutées séparément, quand le film forme un tout cohérent. Après, tu peux effectivement vouloir séparer un DVD, mais tu peux directement le faire en MPEG2 (pas de compression).

        Il n'y a guère que pour la place que c'est réellement gênant. Ça peut se résoudre simplement, mais ça nécessite un investissement (80 € pour moi).

        Il y aussi le fait compresser un film, c'est bien quand on en a la puissance (et encore, ça prend un paquet d'heures). Tu parlais des netbook plus haut, mais ces machines (et les nettop) se démocratisent justement de plus en plus, jusqu'à être les machines principales. N'ayant que des Atom chez moi, cette méthode n'est pas envisageable.

        Quant à la légitimité, c'est affaire de conviction.
        Le gros problème à mon avis, c'est que le partage des oeuvres sous licences (je préfère ce mot au « piratage »), ça donne des prétextes au muselage du web, et d'autres idées pas forcément plus jolies. Mais tu as raison, c'est un débat à part dont personne de toute façon n'aura plus raison qu'un autre.

        Et puis je suis collectionneur, j'apprécie donc d'avoir l'objet physique des films et musiques que j'aime bien. Je pense donc être client potentiel de ton chouette outil :-)

        Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

        • [^] # Re: Question bête

          Posté par (page perso) . Évalué à  2 .

          En fait je pensais divx(ou autre) par rapport à DVD, mais ça tient aussi pour les iso

          Je ne vois pas en quoi gérer des ISO est plus difficile que des AVI. C'est un fichier comme un autre.
          je pense que tu as loupé le passage «Gérer les iso est parfaitement envisageable».
          En fait il faut principalement ajouter l'extension dans celles acceptées, et trouver un moyen de séparer iso de film d'autre chose. Tu peux même déjà essayer: ajoute .iso dans la liste des extensions (la ligne avec "movie_ext ="), et ne lui donne pas autre chose que des isos de films à manger... D'ailleurs c'est un peu plus compliqué que les .avi à cause justement de ça: un iso c'est un format bateau qui peut contenir plein de choses.

          Il n'y a guère que pour la place que c'est réellement gênant.
          C'est bien pour cella qu'on appelle ça «compression» ;)
          Et le coup du terra-octet à 80 €, il sera vite rempli à coups d'iso (un simple couche c'est déjà dans les 5 Go, avec 100 DVD t'es déjà à la moitié de ton terra-octet).

          Pour la compression, je dis aussi que DL un film prend (en France avec une bonne connexion et en sachant s'y prendre) dans les 5 min, je trouve ça plus logique que de recompresser le DVD soit-même (qui peut donner un mauvais résultat si on ne sait pas choisir les options, et qui prend un temps fou).

          Le débat est certes intéressant, mais tourne de plus en plus en rond, et surtout j'aimerais éviter de passer plus de temps à troller qu'à coder (déjà le fait d'avoir posté ce script qui n'était que le résultat d'un «hum j'aimerais bien trier ces films par note» m'a fait perdre pas mal de temps sur mon projet principal).

          Bon en tout cas tes commentaires vont certainement me faire ajouter la gestion des iso dans une prochaine version :)
          • [^] # Re: Question bête

            Posté par . Évalué à  2 .

            En fait il faut principalement ajouter l'extension dans celles acceptées, et trouver un moyen de séparer iso de film d'autre chose. Tu peux même déjà essayer: ajoute .iso dans la liste des extensions (la ligne avec "movie_ext ="), et ne lui donne pas autre chose que des isos de films à manger... D'ailleurs c'est un peu plus compliqué que les .avi à cause justement de ça: un iso c'est un format bateau qui peut contenir plein de choses.

            Si tu le souhaites, je peux regarder comme fonctionne ton outil et essayer de lui ajouter moi-même le support des ISO (en plus j'aime bien Python). Bon, je ne promets rien, je crois que je vais avoir du mal avec le format...

            Pour la compression, je dis aussi que DL un film prend (en France avec une bonne connexion et en sachant s'y prendre) dans les 5 min, je trouve ça plus logique que de recompresser le DVD soit-même (qui peut donner un mauvais résultat si on ne sait pas choisir les options, et qui prend un temps fou).

            Pas faux. On a tellement associé le téléchargement au piratage que j'ai complètement laissé de côté la notion de copie privée, alors que ça le rend parfaitement légitime.

            Et le coup du terra-octet à 80 €, il sera vite rempli à coups d'iso (un simple couche c'est déjà dans les 5 Go, avec 100 DVD t'es déjà à la moitié de ton terra-octet).

            Ça me parait raisonnable. En tout cas plus que de se trimballer 100 DVD :-)

            Le débat est certes intéressant, mais tourne de plus en plus en rond, et surtout j'aimerais éviter de passer plus de temps à troller qu'à coder (déjà le fait d'avoir posté ce script qui n'était que le résultat d'un «hum j'aimerais bien trier ces films par note» m'a fait perdre pas mal de temps sur mon projet principal).

            Bon en tout cas tes commentaires vont certainement me faire ajouter la gestion des iso dans une prochaine version :)


            Ben l'intérêt du libre, c'est justement que n'importe qui peut participer au développement, ça t'évitera d'y passer trop de temps ;-)

            Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

            • [^] # Re: Question bête

              Posté par (page perso) . Évalué à  2 .

              Ben écoute pourquoi pas. Ce qu'il faudrait c'est une méthode qui prend un fichier .iso et me renvoi True si c'est un film, avec les contraintes suivantes:
              - ça doit aller très vite (ne pas oublier que c'est pour lister des fichiers)
              - ça doit pouvoir être lancé par un utilisateur lambda, donc pas de montage (sinon ce serait trop facile :( )
              - si possible évite d'utiliser des bibliothèques externes, j'aimerais éviter les dépendances au maximum

              Il y a peut être possibilité de regarder du côté de hachoir (écrit en python aussi) pour analyser le fichier. D'ailleurs il me semble que hachoir a été codé par quelqu'un fréquentant linuxfr.

              Je t'envoie mes coordonnées en PV.
              • [^] # Re: Question bête

                Posté par (page perso) . Évalué à  2 .

                Quand je dis «évite les bibliothèques externe», ça n'inclus pas celles de la bibliothèque standard, aucun problème pour les utiliser.
              • [^] # Re: Question bête

                Posté par . Évalué à  2 .

                Est-il réellement nécessaire de faire de l'introspection dans l'ISO ?
                D'autant que tu n'en fais pas pour les autres types de fichiers.

                Si le nom de l'ISO est correctement formé ton script fonctionnerait pareil et les ISO qui ne sont pas des films seront simplement ignorés.
                Reste à faire le tri entre ses isos, si on ne veut pas que le script tourne pour rien.

                Au pire, une convention de nommage sur le nom du fichier genre mon_ film[lm:isomovie].iso permettrait de pallier.

                Sinon, si tu décidais d'ouvrir un peu ton code à la collaboration, ca t'embêterait de mettre ca sous un dvcs (au hasard hg) ou une forge (bitbucket ou Google Code) comme ça tu es libre d'accepter ou refuser les contribs sans te prendre la tête avec les autorisations SVN.
                • [^] # Re: Question bête

                  Posté par (page perso) . Évalué à  2 .

                  Ben les autres extensions présentes sont déjà spécialisées vidéo, ce qui n'est pas le cas pour l'iso.
                  Et avec les noms, il peut trouver un film correspondant (je ne sais pas s'il y a un film nommé «ubuntu» mais avec les noms d'animaux il va bien finir par en trouver hein ^^).

                  La convention de nommage est à exclure: l'outil doit rester neutre et fonctionner sur une iso au hasard.

                  Le code est déjà sur du Mercurial, juste que le dépôt est chez moi (mais pas de pb si vous m'envoyez un patch). Je mettrai ça probablement sur une forge, mais pour l'instant je suis en road trip en Australie avec des connexions plus que limite, et je ne veux pas m'amuser à gérer ça. On verra à mon retour en Europe.
                  • [^] # Re: Question bête

                    Posté par . Évalué à  2 .


                    Et avec les noms, il peut trouver un film correspondant (je ne sais pas s'il y a un film nommé «ubuntu» mais avec les noms d'animaux il va bien finir par en trouver hein ^^).

                    S'il y a une option pour supprimer/purger des fichiers dans la base, l'utilisateur s'en rendra compte et fera le nécessaire pour trier.
                    Pour ton depôt hg, tu es en mesure de fournir l'url pour cloner ?
                    • [^] # Re: Question bête

                      Posté par (page perso) . Évalué à  2 .

                      Pour ton depôt hg, tu es en mesure de fournir l'url pour cloner ?
                      Non, il est juste local, et c'est vraiment la galère pour accéder au net, donc pas moyen de laisser une machine allumée. Je m'occuperai des dépôts et accès publics à mon retour en Europe, dans quelques mois.
                      Pour l'instant des patchs devraient suffire, sauf si vous avez des idées pour faire du dév lourd, dans ce cas on peut éventuellement en discuter en privé.

                      Mais encore une fois, j'ai un projet bien plus important sur le feu qui est ultra-prioritaire. lm répond à mon besoin pour l'instant (sauf pour les sous-titres, j'ajouterai ça peut être assez vite), je ne vais donc pas y consacrer bcp de temps dans l'immédiat.
                      • [^] # Re: Question bête

                        Posté par . Évalué à  2 .

                        ok, je comprend.

                        Merci pour ta disponibilité, déjà et bon séjour.
                        Je te recontacterai en privé le cas échéant.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.