Subliminal : résoudre l'erreur "AttributeError: list object has no attribute lower"

Subliminal : résoudre l'erreur "AttributeError: list object has no attribute lower" photo

Dernièrement, le script python que j'ai écrit pour télécharger les sous-titres automatiquement avec Subliminal a renvoyé le message d'erreur suivant :

AttributeError: 'list' object has no attribute 'lower'

Il se trouve que l'attribut lower ne peut-être appliqué qu'à des variables (type string) et non pour des objets (type array).

Nous allons donc éditer le code source de subliminal pour corriger le problème.

Ajout de nouvelles directives à subtitle.py

1. On se connecte au Synology en SSH:

ssh admin@SYNOLOGY

2. On passe root:

sudo -i

3. On recherche le fichier subtitle.py :

find / -type f -name "subtitle.py"

Résultat, 3 fichiers trouvés sur le NAS:

/usr/lib/python2.7/site-packages/subliminal/subtitle.py
/volume1/@appstore/VideoStation/subtitle_plugins/syno_subscene/subtitle.py
/volume1/@appstore/subliminal/env/lib/python2.7/site-packages/subliminal/subtitle.py

4. Le fichier qui nous intéresse se trouve sous /usr/lib donc nous l'éditons:

nano /usr/lib/python2.7/site-packages/subliminal/subtitle.py

5. Faites une recherche avec le terme lower (avec Ctrl+W sous nano). Vous trouver cette ligne:

    # format
    if video.format and 'format' in guess and guess['format'].lower() == video.format.lower():
       matches.add('format')

Nous allons commenter ces lignes et ajouter des conditions pour que lower ne soit appliqué qu'aux chaînes (type string):

    # format
    #if video.format and 'format' in guess and guess['format'].lower() == video.format.lower():
       #matches.add('format')
    if video.format and 'format' in guess:
       guess_format = guess['format'] if isinstance(guess['format'], list) else [guess['format']]
       if any(gf.lower() == video.format.lower() for gf in guess_format):
            matches.add('format')
Attention à bien respecter le nombre d'espaces pour l'indentation : il s'agit d'un script python donc très tatillon à ce sujet !

6. Sauvegardez le fichier.

7. Relancez la recherche automatique des sous-titres : plus d'erreurs relatives à l'attribut lower :)

Enjoy!

Dave Matthews Band and Warren Haynes - Cortez the Killer

Dave Matthews Band

Le groupe Dave Matthews Band (DMB) est formé en 1991 par le chanteur et guitariste David J. Matthews, le saxophoniste LeRoi Moore, le bassiste Stefan Lessard, le violoniste Boyd Tinsley, le batteur Carter Beauford, et le pianiste Peter Griesar (qui a quitté le groupe en 1993). Tous les membres du groupe ont rencontré Dave à Charlottesville, en Virginie.

La marque de fabrique du Dave Matthews Band, ce sont les longs « jams » qui étirent les chansons jouées en spectacle jusqu'à 20 minutes (le record étant de 32 minutes pour la chanson #41 en 2002 à Ottawa, Canada). La grande diversité des morceaux joués lors d'une tournée caractérise également le groupe.

Le Dave Matthews Band a partagé la scène avec de grands noms de la musique tels les Rolling Stones, Pearl Jam, Ben Harper, James Brown, Carlos Santana, Herbie Hancock, Buddy Guy, Alanis Morissette, Paul Simon, Victor Wooten, et Toots and the Maytals.

Warren Haynes

Warren Haynes est un guitariste et chanteur américain né le 6 avril 1960 à Asheville, en Caroline du Nord. À la fin des années 70 et au début des années 80, il participe à différents groupes : Ricochet, Rich Hippies, David Alan Coe Band. De 1986 à 1989, il joue dans le Dickey Betts Band en compagnie du batteur Matt Abts. Le 28 juin 1989, il rejoint le Allman Brothers Band où il rencontre le bassiste Allen Woody.

Avec Allen Woody et Matt Abts, Warren Haynes fonde en 1995 le groupe Gov't Mule (il restera cependant membre à part entière du Allman Brothers Band jusqu'au 26 mars 1997).

En 2008, il est invité au Central Park Concert (à New York City donc) du Dave Matthews Band en tant que guitariste solo, où il reprennent ensemble le célèbre Cortez the Killer de Neil Young:

Cette version est tout simplement géniale. Le style de Warren Haynes apporte une autre dimension à la chanson.

Vous remarquerez qu'à 7:33, Dave Matthews se tourne vers son batteur pendant le solo de Warren et lui chuchote "he's badass!".

Warren Haynes a collaboré 45 fois sur des chansons et a fait 28 apparitions lors de concert du Dave Matthews Band, dont deux sur des albums live : Live at Central Park Concert sur lequel il joue "Cortez the Killer" et "Jimi Thing", et Live at Piedmont Park sur lequel il joue "What Would You Say".

WordPress: mettre un plugin à jour sur plusieurs sites sur le serveur en une seule opération

Sur un serveur qui héberge plusieurs sites WordPress différents, il est fort probable qu'il y ait quelques plugins en commun sur chaque installation.

WordPress permet de mettre à jour les thèmes et plugins en quelques clics mais cela suppose de s'identifier sur chaque site ou alors de donner permission à une application tierce comme JetPack pour vous faciliter la tâche.

WorddPress : éviter d'avoir à mettre le même plugin à jour sur chaque site hébergé sur le serveur photo

Cela suppose toutefois de bien vouloir rassembler toutes les autorisations sur un seul compte, ce qui n'est pas optimal puisqu'il n'y a plus cloisonnement entre les sites hébergés.

Nous allons donc mettre en place un système de liens symboliques (symlink ou symbolic link en anglais) pour gagner pas mal de temps lors des mises à jour.

Principe d'optimisation de la mise à jour des plugins récurrents

Sur le serveur, j'utilise une petite astuce tout simple : j'utilise mon site comme master officiel du serveur. C'est lui que je mets à jour en premier et tous les autres sites "hériteront" des nouvelles mises à jour, automatiquement et sans manipulation de ma part.

Mise en place de liens symboliques

Comme le serveur tourne sous Linux, il nous suffit de faire un lien symbolique sur le site slave vers le dossier d'un plugin qui se trouve sur le site master.

Lorsque je mettrai certains plugins de SkyMinds à jour par exemple, ces plugins qui sont également installés sur le site du Centre de Kriya Yoga France seront également à jour. En fait, aucun fichier de ce plugin ne sera présent chez eux, seul un lien symbolique.

Concrètement, voici la marche à suivre :

  1. On se place dans le répertoire /wp-content/plugins du site slave (kriyayoga.fr dans cet exemple):
    cd /kriyayoga/wp-content/plugins
  2. On crée un lien symbolique qui va pointer vers le répertoire qui se trouve dans le répertoire de SkyMinds :
    ln -s /skyminds/wp-content/plugins/my-plugin my-plugin
  3. Et voilà !

Lire la suite! »

Page 10 sur 947« Première...89101112...203040...Dernière »

Pin It on Pinterest

Spelling error report

The following text will be sent to our editors: