Articles plus anciens

Dans l’article Changer l’éditeur par défaut utilisé par Ubuntu, j’indique que l’on peut choisir l’éditeur utilisé par divers programme (dont crontab) avec la commande select-editor.


Mais si vous positionnez ce choix à autre chose que nano (VIM par exemple) et que vous voulez éditer le fichier sudoer avec la commande  :

sudo visudo


Vous aurez ceci (enfin sur une Ubuntu 10.04) :

Visudo continue d’utiliser nano.


J’ai vérifié mon paramétrage de select-editor en affichant le contenu de ~/.selected_editor :

# Generated by /usr/bin/select-editor
 SELECTED_EDITOR="/usr/bin/vim.basic"


Visudo étant lancé en sudo, je me suis dit qu’il fallait aussi lancer préalablement select-editor en sudo

–> sans effet


Ensuite j’ai lu la man page de select-editor et y ai découvert ceci :

SELECTED_EDITOR is overridden by the VISUAL and EDITOR environment variables.


J’ai donc vérifié mes variable d’environnement (commande env), pas de trace de la variable EDITOR, je l’ai donc défini dans mon ~/.bashrc (que j’ai ensuite sourcé) :

–> sans effet


J’ai défini la variable EDITOR dans /etc/bash.bashrc (puis sourcé) :

–> sans effet


Ce n’est qu’après divers recherche Internet que j’ai trouvé la solution.


Contrairement a ce qui est indiqué ici, Visudo n’utilise pas sensible-editor, ce qui est d’ailleurs l’objet d’un bug :

https://bugs.launchpad.net/ubuntu/+source/sudo/+bug/280877


Visudo utilise le programme /usr/bin/editor qui n’est qu’un lien symbolique vers un autre éditeur :

ls -la /usr/bin/editor
 lrwxrwxrwx 1 root root 24 2010-07-26 14:01 /usr/bin/editor -> /etc/alternatives/editor
ls -la  /etc/alternatives/editor
 lrwxrwxrwx 1 root root 18 2010-07-26 14:01 /etc/alternatives/editor -> /usr/bin/nano


On pourrait donc changer manuellement ce liens, mais ce n’est pas la façon de faire, il utiliser la commande suivante :

sudo update-alternatives --config editor


Qui comme select-editor, permet de choisir, l’éditeur a utiliser et créé les liens symbolique correspondant :

Il existe 5 choix pour l'alternative editor (qui fournit /usr/bin/editor).
Sélection   Chemin                  Priorité  État
 ------------------------------------------------------------
 * 0            /bin/nano                40        mode automatique
 1            /bin/ed                 -100       mode manuel
 2            /bin/nano                40        mode manuel
 3            /usr/bin/mcedit-debian   25        mode manuel
 4            /usr/bin/vim.basic       30        mode manuel
 5            /usr/bin/vim.tiny        10        mode manuel
Appuyez sur <Entrée> pour conserver la valeur par défaut[*] ou choisissez le numéro sélectionné :4
 update-alternatives: utilisation de « /bin/vim.basic » pour fournir « /usr/bin/editor » (editor) en mode automatique.


Et voila, lorsque l’on édite son sudoer visudo utilise VIM (dans mon cas) :


Rque : sensible-editor utilisé dans les autres cas (cf. Changer l’éditeur par défaut utilisé par Ubuntu) n’est pas un lien symbolique mais réellement un programme qui lit le fichier ~/selected-editor en vue de lancer l’éditeur voulu :

ls /usr/bin/sensible-editor -la
 -rwxr-xr-x 1 root root 1109 2010-04-09 02:45 /usr/bin/sensible-editor

Rque 2 : là où sensible-editor est propre a chaque utilisateur, puisque paramétré dans le $HOME, editor utilisé par visudo est pour tous les utilisateurs.


Sources :

Article m’ayant induit en erreur :

http://linuxtoolkit.blogspot.com/2009/11/changing-default-editor-for-visudo.html

https://help.ubuntu.com/community/Sudoers

Article m’ayant mis sur la piste :

https://lists.ubuntu.com/archives/ubuntu-users/2007-July/118201.html

Image par Nic’s events sous CC BY-SA

Edit 07/12/2010 : La version 1.9.7.2 supporte de nouveau Firefox pour Linux :

Support most of Linux system (both 32bit and 64bit)


Si vous utilisez le client Twitter Echofon pour Firefox et que vous êtes sous Linux, vous avez surement dû avoir le droit a ce message d’erreur :


En effet « l’éditeur » d’Echofon à décidé de ne plus supporter les plate-forme qu’il appelle « minoritaire », ce qui inclus bien sûr Linux mais aussi les version 64 bits de Windows et Mac, ainsi que tous les dérivés d’Unix (FreeBSD, Solaris)

Voici l’annonce sur le blog d’Echofon :

http://blog.echofon.com/2010/08/basic-auth-support-discontinue-on.html


Il existe cependant une parade, qui consiste à ré-installer l’ancienne version (1.9.6.4)  d’Echofon que l’on peut trouver ici :

https://addons.mozilla.org/fr/firefox/addon/5081/eula/88620?src=version-history


Il faudra ensuite faire bien attention à ne pas faire la mise à jour de cette extension en attendant un autre solution (fork ou changement d’avis d’Echofon)


Rque : si comme moi vous utilisez l’extension Firefox Update Notifier qui permet d’installer automatiquement les mises à jours de Firefox en arrière plan, vous êtes confronté à un dilemme : utiliser Echofon 1.9.6.4 et donc désactiver Update Notifier ou l’inverse

Dans l’article précédent j’ai décris l’installation de Periscope depuis le package fournis par l’auteur, cependant en fin d’article je mentionne 2-3 points gênants que l’on peut aisément corriger en modifiant un peu le source.


On va donc tout d’abord voir comment installer Periscope depuis les sources, puis ensuite voir quelles modifications apporter aux sources pour corriger quelques désagréments.


En pré-requis il faut tout d’abord désinstaller Periscope si vous l’avez préalablement installé depuis le package :

sudo aptitude purge python-periscope



Installation depuis les sources

Pour installer Periscope depuis les sources il faut les télécharger avec la commande svn qui fait partie du partie du paquet subversion, on installe donc ce dernier :

sudo aptitude install subversion


Puis on télécharge les sources :

svn checkout http://periscope.googlecode.com/svn/trunk/ periscope-svn

Cette commande va créer un répertoire periscope-svn dans le répertoire courant et y télécharger tous les fichiers sources de Periscope.


On installe ensuite les dépendances de Periscope :

sudo aptitude install python-setuptools python-beautifulsoup python-xdg


Puis on installe Periscope :

cd periscope-svn
sudo python setup.py install



Désinstallation de Periscope (installé via les sources)

Lorsque l’on a installé Periscope via les sources, il n’y a pas de commande permettant de la désinstaller automatiquement, il faut il aller à la main :

sudo rm -rf /usr/local/lib/python2.6/dist-packages/periscope-dev-py2.6.egg/EGG-INFO/scripts/periscope
sudo rm -rf /usr/local/lib/python2.6/dist-packages/periscope-dev-py2.6.egg/periscope
sudo rm /usr/local/bin/periscope



Activation / désactivation des plugins

En désactivant certains plugins de Periscope on peut résoudre 2 des « problèmes » remontés lors de l’article précédent :

  • Certains plugins ne fonctionnent pas bien et remontent des erreurs (exemple plugin podnapisi)
  • L’empilement des plugins, fait que le temps d’exécution est relativement long


Pour cela il suffit d’éditer le fichier source suivant :  periscope/plugins/__init__.py


Qui contient initialement ceci :

from OpenSubtitles import OpenSubtitles
from SubtitleSource import SubtitleSource
from SubScene import SubScene
from Subtitulos import Subtitulos
from Addic7ed import Addic7ed
from Podnapisi import Podnapisi


On peut dès lors supprimer un plugin en commentant la ligne avec un # et en réinstallant Periscope depuis les sources (sudo python setup.py install)



Sources :

image par adam.hyland

Periscope est un projet visant à fournir un script Python permettant de télécharger les sous titres d’une série de façon automatique au fur et a mesure de sa diffusion/téléchargement.


Sur mon serveur cette fonction est occupé par Subdl (cf. Subdl – Téléchargement automatique des sous-titres, Corriger subdl, script de téléchargement automatique de sous-titres) mais ce dernier n’est plus maintenu (voir n’existe plus)


De plus Periscope offre l’avantage d’être multi-sources (OpenSubtitles.org, SubtitleSource.org, Subscene.com, Subtitulos.es et Addic7ed.com) là où Subdl ne va chercher que sur OpenSubtitles.org


Installation

Selon le Wiki de Periscope lorsque l’on est sous Ubuntu, pour l’installer il suffit d’ajouter le PPA correspondant puis de l’installer

sudo add-apt-repository ppa:patrick-dessalle/ppa
sudo aptitude update
sudo aptitude install python-periscope


Malheureusement ce projet aussi semble un peu à l’abandon (malgré quelques interventions du développeur dans ses sources en Mai) et vous aurez donc le message d’erreur suivant :

Impossible de trouver un paquet dont le nom ou la description correspond à « python-periscope »

De plus si on regarde le PPA on constate que le package python-periscope ne compile plus depuis 10 semaines dû à un problème de dépendance avec le module beautifulSoup


Edit 25/08/2010 : Le développeur Patrick Dessalle (qui au passage parle français), indique dans le commentaire ci dessous que le package est réparé (je n’ai pas testé)


Bref on va devoir y aller à la main, on télécharge donc le package ici et on l’installe par un simple :

sudo dpkg -i python-periscope_0.1.9-2_all.deb


Utilisation

L’utilisation de Periscope est ensuite très simple, il suffit de lancer la commande suivante :

periscope -l [langage] [liste fichiers vidéos ou répertoire contenant des vidéos]

Pour le langage on prendra « fr » pour le français et « en » pour l’anglais, il est possible de spécifier plusieurs langue le sous-titre choisi sera en priorité celui de la première langue.

On pourra sinon renseigner le langage pas défaut dans le fichier de configuration ~/.config/periscope/config

[DEFAULT]
lang = fr


Periscope est construit sur un mécanisme de plugins, un par site sur lequel on souhaite faire des recherches.

Si le sous-titre est disponible sur plusieurs site, sera gardé celui trouvé en premier c’est à dire celui du premier plugin appelé, c’est à à dire dans l’ordre suivant :

OpenSubtitles.org, SubtitleSource.org, Subscene.com, Subtitulos.es et Addic7ed.com


Pour chaque fichier vidéo trouvé Periscope récupère du nom du fichier le nom de la série, la saison, le numéro d’épisode et la team ayant mis à disposition la vidéo.

Pour chaque plugin il fait ensuite une requête sur le site du plugin pour avoir la page correspondant à la série / saison / épisode, il récupère la page HTML, analyse le code source de cette dernière afin de trouver les liens de téléchargement et ajoute ces derniers dans une file d’attente.

Periscope analyse ensuite les liens trouvé afin de déterminer le meilleur en fonction de la/les langues voulues, il réalise le téléchargement, décompresse l’archive le cas échéant et renomme le fichier de sous titres pour qu’il ait le même nom que la vidéo.

Évidemment il y a des différences selon les plugins mais le principe général reste celui-ci



Lors de la recherche Periscope indique sur la sortie standard les actions qu’il réalise et la sortie est plutôt verbeuse voyez plutôt pour un répertoire ne contenant qu’une seule vidéo :

WARNING:root:/home/[mon user]/Vidéos/Fichier.srt mimetype is 'None' which is not a supported video format (('video/x-msvideo', 'video/quicktime', 'video/x-matroska', 'video/mp4'))
INFO:root:Searching subtitles for /home/[mon user]/Vidéos/Fichier_xxx.avi with langs ['fr']
INFO:root:Searching on OpenSubtitles
INFO:root:Searching on SubtitleSource
INFO:root:Searching on SubScene
INFO:root:Searching on Addic7ed
WARNING:root:Ooops, you found a missing language in the config file of Addic7ed: Spanish. Send a bug report to have it added.
INFO:root:Addic7ed writing 1 items to queue
INFO:root:SubtitleSource writing 0 items to queue
INFO:root:SubScene writing 0 items to queue
ERROR:root:Open subtitles could not be contacted for login
INFO:root:OpenSubtitles writing 0 items to queue
INFO:root:Trying to download subtitle: http://www.addic7ed.com/....
INFO:root:**************************************************
INFO:root:Downloaded 1 subtitles
INFO:root:fr - /home/{mon user]/Vidéos/Fichier_xxx.srt
INFO:root:**************************************************


On peux constater 2 lignes de Warning :

  • Le première indique qu’un des fichiers trouvés n’est pas de type vidéo
  • La deuxième indique qu’une langue non référencée à été trouvé. En effet Periscope maintient dans le code source de chacun des plugins une liste de correspondance entre les langues utilisé par le site et la liste des langues utilisées par Periscope (par exemple « fr » dans Periscope peut correspondre à « fre » sur un des sites)


Conclusion

  • Periscope offre un alternative intéressante à subdl car il est multi-site.

MAIS :

  • Il scan tous les sous-répertoire  du répertoire d’entrée (y compris les répertoires caché commençant par . par exemple .Trash)
  • Il est verbeux, par exemple si vous avez des fichiers autre que des vidéos dans le répertoire on aura une ligne de Warning par fichier
  • Les sites utilisés sont peu alimenté en sous-titres Français
  • Certains plugins ne fonctionnent pas bien et remontent des erreurs (exemple plugin podnapisi)
  • L’empilement des plugins, fait que le temps d’exécution est relativement long


Dans un prochain article, nous verrons comment installer Periscope depuis les sources, afin de modifier 2-3 pour palier à certains de ces problèmes, enfin je suis en train d’écrire un plugin pour le site sous-titres.eu qui est une référence en matière de sous-titres Français.


Sources :

periscope – Project Hosting on Google Code

Periscope, le script pour trouver et charger directement les sous titres en VO de vos films et séries | Ubuntu And Us

Un script pour trouver directement des sous titres en VO pour vos films et séries

Xnoccio.com – » Descarga masiva de subtítulos con Periscope

Right Click Movies To Download Subtitles In Ubuntu ~ Web Upd8

Image par MATEUS_27:24&25 sous CC BY-NC

Comme je l’ai indiqué dans mon article Subdl – Téléchargement automatique des sous-titres, j’utilise le script Python subdl pour télécharger de façon automatique les sous-titres des séries télé que je regarde.


Bien que de moins en moins performant (pour des raisons de non disponibilité des sous-titres sur opensubtitle.org), ce script faire une première partie du travail.


Mais depuis plusieurs mois il ne fonctionne plus.

Pas de correction à attendre de l’auteur le script n’est plus maintenu et le site n’existe même plus (je peux héberger le script si vous êtes intéressés)


Ce problème provient du fait qu’opensubtitle.org à changé l’adresse web de son API, il faut donc corriger le script.


Dans le répertoire où vous avez installé / décompressé subdl, éditer le fichier subdl (qui est un script Python),  localiser la ligne suivante :

osdb_server = "http://www.opensubtitles.org/xml-rpc"


Et la modifier ainsi :

osdb_server = "http://api.opensubtitles.org/xml-rpc"



Remarque : cette correction supprime le problème systématique dû au changment d’URL de l’API opensubtitle.org, mais ce service reste très instable et pas très performant.

Sur 17 épisodes d’une même série (série de l’année 2009-2010, ayant fait parler d’elle), l’appel de subdl via :

ls *.avi | xargs -t -I {} python bin/subdl/subdl --lang=fre --existing=bypass {} #

m’a donnée :

  • 11 erreurs « Error in XMLRPC SearchSubtitles call: [Errno 104] Connection reset by peer »
  • 2 erreurs « Error in XMLRPC SearchSubtitles call: <ProtocolError for api.opensubtitles.org/xml-rpc: 503 Service Not Available> »
  • 3 sous-titre non trouvés

Lors de la première exécution et

  • 3 erreurs « Error in XMLRPC SearchSubtitles call: [Errno 104] Connection reset by peer »
  • 14 sous-titre non trouvés

Lors de la deuxième exécution


Sources :

Fixing subdl 1.0.2

Image par aussiegall sous CC