Télécharger des vidéos sur le WEB avec Youtube-dl

1 – Sous Windows sans interface graphique avec Youtube-dl

Si vous n’êtes pas à l’aise avec la ligne de commande, installez plutôt Youtube-DLG.

Depuis le site GitHub :

https://github.com/ytdl-org/youtube-dl

Les utilisateurs de Windows peuvent télécharger un fichier .exe et le placer à n’importe quel emplacement de leur PATH, à l’exception de% SYSTEMROOT% \ System32 (par exemple, ne pas le mettre dans C: \ Windows \ System32).

Le programme youtube-dl.exe s’utilise avec la ligne de commande.


2 – Sous Windows avec une interface graphique grâce à Youtube-DLG

Youtube-DLG est un logiciel libre permettant de télécharger des vidéos hébergées en ligne. Il est compatible avec des centaines de sites, dont YouTube, Dailymotion et Vimeo. C’est une interface graphique pour l’outil en ligne de commande Youtube-dl.

Si vous préférez utiliser Youtube-dl depuis une interface graphique. Depuis le site :

https://github.com/MrS0m30n3/youtube-dl-gui

Sélectionnez Windows Installer, on télécharge l’archive youtube-dl-gui-0.4-win-setup.zip.

Décompressez l’archive puis exécutez le fichier youtubedlg-0.4.exe (le nom des fichiers peut changer selon la version) qui se trouve dans le dossier obtenu. Ensuite, on peut procéder à l’installation du programme.


Les tutoriels au format PDF

Installation de Youtube-DLG sous Windows 8.1 Pro en utilisant le navigateur WEB Firefox et 7-Zip. Peut être adapté pour Windows 7 et 10.

Installer Youtube-DLG sous Windows

L’utilisation de Youtube-DLG pour télécharger des vidéos.

Utilisation de Youtube-DLG


Et sous Linux

Vous pouvez retrouver les différentes procédures d’installation sous Linux de Youtube-dl et la documentation sur son utilisation (en ligne de commande).

https://github.com/ytdl-org/youtube-dl

Pour installer Youtube DLG (avec l’interface graphique) sous Linux.

https://github.com/MrS0m30n3/youtube-dl-gui

Affichage dynamique en Python

Le projet

J’ai travaillé sur un projet d’affichage dynamique, un diaporama sur un écran TV. Recherchant une solution peu onéreuse s’appuyant sur des logiciels libres, j’ai trouvé un script Shell pouvant être exécuté sur un Raspberry Pi sur le site suivant :

http://wiki.dane.ac-versailles.fr/

Un partage sur un réseau local héberge un diaporama réalisé avec LibreOffice Impress (.odp). Lorsque ce fichier est modifié, il est automatiquement téléchargé par le Raspberry Pi qui se trouve sur le même réseau et est affiché. Cela fonctionne très bien et actuellement dans un collège, j’ai deux Raspberry Pi pour deux écrans TV qui affichent le même diaporama. Le script Shell est lancé automatiquement aux démarrages des Raspberry Pi.

Un petit schéma de mon installation

Programme en Python

J’ai décidé de réaliser une version en Python de ce script Shell. J’ai créé deux petits programmes, le premier avec une interface graphique permettant de configurer plus facilement mon logiciel, le second permettant l’affichage du diaporama. Les difficultés étaient d’accéder au partage réseau depuis Python et d’exécuter des commandes Shell Bash.


Programme de configuration

Ce programme permet d’enregistrer dans un fichier les paramètres de configuration de mon logiciel depuis une interface graphique. Si vous êtes en groupe de travail lors des tests, enregistrez son nom en guise de nom de domaine, cela doit fonctionner.

Le programme Diapo-ini.py

!/usr/bin/env python3.7
 -- coding: utf-8 --
 from tkinter import *
 import pickle
 import os.path
 def Lancer_Diaporama():
     exec(open("./Diapo-py.py").read())
 def Enregistrer():
     serveursmb = Serveur_Entry.get()
     partagesmb = Partage_Entry.get()
     utilisateur = Utilisateur_Entry.get()
     mot_de_passe = Mot_de_passe_Entry.get()
     domaine = Domaine_Entry.get()
     fichier_diaporama = Fichier_du_diaporama_Entry.get()
 #Enregistrer mes variables sous forme d'une liste dans un fichier variables = [serveursmb, partagesmb, utilisateur, mot_de_passe, domaine, fichier_diaporama] fichierSauvegarde = open("diaporamaini","wb") pickle.dump(variables, fichierSauvegarde) fichierSauvegarde.close()
 Lecture du fichier ini
 fichierini = "diaporamaini"
 Ouverture du fichier s'il existe et récupération de la liste
 if os.path.isfile(fichierini):
     fichierSauvegarde = open(fichierini,"rb")
     variables = pickle.load(fichierSauvegarde)
     fichierSauvegarde.close()
 # Affichage d'informations print("Initialisation des variables") # Récupération des données dans les variables serveursmb = variables[0] partagesmb = variables[1] utilisateur = variables[2] mot_de_passe = variables[3] domaine = variables[4] fichier_diaporama = variables[5]
 else:
     # Le fichier n'existe pas
     print("Fichier " + fichierini + " non trouvé")
     serveursmb = partagesmb = utilisateur = mot_de_passe = domaine = fichier_diaporama = "vide"
 Fenetre = Tk() #création de la fenêtre, avec un nom de votre choix Fenetre
 Fenetre.title('Paramètres Diaporama') #Titre de la fenêtre
 Fenetre.geometry("420x170") # On définit la taille de la fenêtre
 Fenetre.resizable(width=False,height=False) #Empêcher de redimentionner la fenêtre
 Création d'un interface graphique avec grid
 Serveur_Label= Label(Fenetre, text = 'Votre serveur - Nom ou IP :') #Un label pour afficher du texte
 Serveur_Label.grid(row=0)
 Serveur_Entry= Entry(Fenetre) #On définit l'objet Entry (zone de saisie) qui porte le nom Serveur_Entry
 Serveur_Entry.insert(0, serveursmb)
 Serveur_Entry.grid(row=0,column=1,ipadx=30) # ipadx=30 pour créer 10 pixels de plus horizontalement
 Partage_Label= Label(Fenetre, text = 'Votre partage réseau :')
 Partage_Label.grid(row=1,column=0)
 Partage_Entry= Entry(Fenetre)
 Partage_Entry.insert(0, partagesmb)
 Partage_Entry.grid(row=1,column=1,ipadx=30)
 Utilisateur_Label= Label(Fenetre, text = 'Votre utilisateur :')
 Utilisateur_Label.grid(row=2,column=0)
 Utilisateur_Entry= Entry(Fenetre)
 Utilisateur_Entry.insert(0, utilisateur)
 Utilisateur_Entry.grid(row=2,column=1,ipadx=30)
 Mot_de_passe_Label= Label(Fenetre, text = 'Votre mot de passe :')
 Mot_de_passe_Label.grid(row=3,column=0)
 Mot_de_passe_Entry= Entry(Fenetre) # Saisie du mot de passe
 Mot_de_passe_Entry.insert(0, mot_de_passe)
 Mot_de_passe_Entry.grid(row=3,column=1,ipadx=30)
 Domaine_Label= Label(Fenetre, text = 'Votre nom de domaine:')
 Domaine_Label.grid(row=4,column=0)
 Domaine_Entry= Entry(Fenetre)
 Domaine_Entry.insert(0, domaine)
 Domaine_Entry.grid(row=4,column=1,ipadx=30)
 Fichier_du_diaporama_Label= Label(Fenetre, text = 'Votre fichier de diaporama :')
 Fichier_du_diaporama_Label.grid(row=5,column=0)
 Fichier_du_diaporama_Entry= Entry(Fenetre)
 Fichier_du_diaporama_Entry.insert(0, fichier_diaporama)
 Fichier_du_diaporama_Entry.grid(row=5,column=1,ipadx=30)
 Mon_bouton_Lancer_Diaporama = Button(Fenetre, text = 'Lancer le Diaporama',command = Lancer_Diaporama)
 Mon_bouton_Lancer_Diaporama.grid(row=6,column=0,ipadx=0)
 Mon_bouton_Enregistrer = Button(Fenetre, text = ' Enregistrer le fichier', command = Enregistrer)
 Mon_bouton_Enregistrer.grid(row=6,column=1,ipadx=0)
 Fenetre.mainloop() # lance la boucle principale
L’interface graphique pour la saisie des paramètres du diaporama

Programme d’affichage du diaporama

Ce programme lit le fichier de configuration pour attribuer aux variables les valeurs qui ont été enregistrées puis il affiche le diaporama. Lorsque le diaporama est modifié sur le partage réseau, il est automatiquement téléchargé et affiché.

Le programme Diapo-py.py

!/usr/bin/env python3.7
 -- coding: utf-8 --
 import pickle
 import os.path
 import smbclient
 import subprocess
 import time
 Lecture du fichier ini
 fichierini = "diaporamaini"
 Ouverture du fichier s'il existe et récupération de la liste
 if os.path.isfile(fichierini):
     fichierSauvegarde = open(fichierini,"rb")
     variables = pickle.load(fichierSauvegarde)
     fichierSauvegarde.close()
 # Affichage d'informations print("Initialisation des variables") # Récupération des données dans les variables serveursmb = variables[0] partagesmb = variables[1] utilisateur = variables[2] mot_de_passe = variables[3] domaine = variables[4] fichier_diaporama = variables[5]
 else:
     # Le fichier n'existe pas
     print("Fichier " + fichierini + " non trouvé")
 initialisation des variables
 Version_Old = "vide"
 local_path = "./" + fichier_diaporama
 smb = smbclient.SambaClient(server=serveursmb, share=partagesmb, username=utilisateur, password=mot_de_passe, domain=domaine)
 Boucle = True
 while Boucle == True:
     try:
         # Afficher des informations sur le fichier
         Version_New = smb.info(fichier_diaporama)
     except:
         Version_New = Version_Old
     if Version_New != Version_Old:
         try:
             ### On arrête l'application LibreOffice ###
             subprocess.Popen(['/bin/sh', '-c', "pkill office"])
             time.sleep(2)
             ### On supprime l'ancien fichier diaporama s'il existe ###
             if os.path.isfile(local_path):
                 os.remove(local_path)
             ### Téléchargement du nouveau fichier ###
             smb.download(fichier_diaporama, local_path)
             time.sleep(2)
             ### Affichage du diaporama ###
             Affichage = subprocess.Popen(["libreoffice", "--norestore", "--show", fichier_diaporama], shell=False)
             Version_Old = Version_New
         except:
             print("Erreur lors du téléchargement et de l'affichage du diaporama")
     else:
         time.sleep(20) # Pas de mise à jour - On attend 20 secondes avant de revérifier

Prérequis pour l’installation du programme en Python sur le Raspberry Pi

Version de Python installée

python3 --version
 Python 3.7.3

Pour l’interface graphique avec Tkinter

Le paquet python3-tk doit être présent sinon on l’installe :

sudo apt-get install python3-tk

Accès au partage Samba

Vous devez disposer d’un partage réseau Windows ou sous Linux (Samba) avec les login/mot de passe pour y avoir accès.

Pour pouvoir accéder au partage réseau depuis le Raspberry Pi vous devez installer le paquet smbclient (client samba) sous Linux :

sudo apt-get install smbclient

En cas de problème, il peut être utile de vérifier la connexion au partage depuis l’explorateur de fichiers du Raspberry Pi :

smb://ip_du_serveur/nom_du_partage

Installer la bibliothèque pysmbclient (client samba) pour l’accès au partage réseau depuis Python :

pip3 install pysmbclient

Plus d’informations :

https://pypi.org/project/PySmbClient/

Les droits sur les fichiers

Les deux programmes doivent être exécutables et je réduis les droits au seul utilisateur pi :

chmod 700 nom_du_fichier

Pour le fichier diaporamaini, droits en lecture et en écriture au seul utilisateur :

chmod 600 diaporamaini

Lancer et arrêter les programmes

Pour lancer les programmes depuis un terminal :

./nom_du_fichier

Pour arrêter la diffusion du diaporama depuis le Raspberry Pi :

[Alt] + [F4] Pour fermer LibreOffice Impress.

[Ctrl] + [C] Pour stopper l’exécution du programme dans le terminal.

Par la suite, on pourra automatiser le lancement du programme qui affiche le diaporama au démarrage du Raspberry Pi.


Et maintenant…

Je ne suis pas programmeur, j’ai une formation de technicien d’assistance informatique et une autre de technicien réseau. Vous avez peut-être des idées pour améliorer ce programme et ajouter de nouvelles fonctionnalités. Si vous êtes intéressé, n’hésitez pas. Vous pouvez laisser des commentaires ou me contacter pour faire évoluer le code.

Programmes mis à jour le 21/12/2020

Dominique Renaudeau

Linux – commande introuvable

Sous Linux, si vous avez le message commande introuvable alors que vous pensez qu’elle est bien installée.

Exemple sous Debian 10 avec la commande pwck :

pwck -r
 bash: pwck : commande introuvable

On peut effectuer une recherche de la commande, ici pwck, avec whereis :

whereis pwck
 pwck: /usr/sbin/pwck /usr/share/man/man8/pwck.8.gz

On voit ici que la commande pwck se trouve sous /usr/sbin, à noter que l’on voit également où se trouvent les pages de manuel.

Si le système ne trouve pas la commande pwck, c’est que son chemin d’accès /usr/bin est absent de la variable d’environnement PATH.

Si l’on veut consulter le contenu de la variable PATH (en respectant la casse) :

echo $PATH
 /home/dominique/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

Je vois que /usr/sbin ne figure pas dans la variable.

Pour la durée de la session

Pour ajouter /usr/sbin à la variable PATH :

export PATH=$PATH:/usr/sbin

Si je contrôle à nouveau le contenu de la variable PATH, /usr/sbin doit s’y trouver.

Ma commande pwck -r est maintenant fonctionnelle à condition d’être administrateur, root, sous Debian ou avec sudo sous Ubuntu (dans son cas).

Pour modifier PATH de façon permanente

Voir l’article :

Recherche des fichiers sous Linux et la variable PATH

Les commandes host et hostname – noms de domaines sous Linux

Les commandes

La commande host

 host google.fr
 google.fr has address 172.217.19.227
 google.fr has IPv6 address 2a00:1450:4007:80b::2003
 google.fr mail is handled by 40 alt3.aspmx.l.google.com.
 google.fr mail is handled by 30 alt2.aspmx.l.google.com.
 google.fr mail is handled by 50 alt4.aspmx.l.google.com.
 google.fr mail is handled by 20 alt1.aspmx.l.google.com.
 google.fr mail is handled by 10 aspmx.l.google.com.

Donne l’IP associée au nom de domaine (ici . 172.217.19.227).

host 8.8.8.8
 8.8.8.8.in-addr.arpa domain name pointer dns.google.

Donne le nom de domaine principal associé à l’IP (ici dns.google). Sous Windows, depuis l’invite de commande, on utilisera la commande nslookup google.fr.

La commande hostname

 hostname
 debian-10

Donne le nom d’hôte de la machine

hostname --fqdn
 S4211Debian7.tsrit.2isa.local

Affiche le FQDN (nom de domaine complètement qualifié/Fully Qualified Domain Name).

hostname nouveau_nom

En administrateur, modifie le nom d’hôte de la machine.


Les fichiers

On peut voir le contenu des fichiers avec la commande cat. Pour modifier des fichiers, on peut utiliser un éditeur comme nano.

Le fichier host

Le fichier hosts donne un moyen d’assurer la résolution de noms, de donner un nom FQDN à un hôte.

cat /etc/hosts

Le fichier host.conf

Le fichier host.conf sert à indiquer à votre poste les méthodes successives qu’il va utiliser pour effectuer sa résolution de nom, par exemple : consulter avant tout son propre fichier host, puis s’adresser à un service DNS.

cat /etc/host.conf

Le fichier resolv.conf

Le fichier resolv.conf sert à indiquer la liste des serveurs DNS que vous allez interroger (exemple avec Debian 10). Des programmes tels que dhcpd, networkmanager, etc. peuvent modifier le fichier resolv.conf. Si vous voulez le paramétrer vous-même, il vous faudra faire en sorte d’empêcher ces modifications.

 cat /etc/resolv.conf
 Generated by NetworkManager
 search home
 nameserver 192.168.1.1
 nameserver 8.8.8.8

Le fichier hostname

Le nom de votre machine est sauvegardé dans le fichier hostname.

cat /etc/hostname
 debian-10

Iftop surveiller le trafic réseau depuis un terminal Sous Ubuntu ou Linux Mint et Debian

La commande iftop permet de visualiser rapidement le trafic sur vos interfaces réseau. On utilise la commande iftop en administrateur, précédée de sudo sous Ubuntu et Linux Mint.

Pour installer iftop sous Linux Mint ou Ubuntu depuis un terminal :

sudo apt-get install iftop

Depuis un terminal sous Debian en administrateur root  (avec su) :

su
apt-get install iftop

Pour lancer iftop  sous Ubunru et Linux Mint et écouter la première interface disponible :

sudo iftop

Sous Debian en administrateur :

iftop

Pour afficher une vue dynamique du trafic r réseau passant par l’interface nommée enp0s3 sous Ubuntu et Linux Mint :

sudo iftop -i enp0s3

Sous Debian en administrateur :

iftop -i enp0s3

Pour afficher les adresses IP sous Ubuntu et Linux Mint :

sudo iftop -n

Sous Debian en admdinistrateur :

iftop -n

Pour afficher les ports sous Ubuntu et Linux Mint :

sudo iftop -P

Sous Debian en administrateur :

iftop -P

Pour afficher l’aide pendant l’utilisation [H].

Pour quitter iftop [Q]


Pour obtenir le nom de vos interfaces réseau sous Ubuntu, Linux Mint :et Debian

ifconfig ou ip address


Pour afficher l’aide

man iftop ou iftop ?


Problèmes rencontrés pour l’installation du paquet iftop sous Debian 10

Si l’on installe le paquet iftop sous Debian 10 et que l’on a le message « bash : iftop : commande introuvable ». C’est que le système ne trouve pas iftop qui est sous /usr/sbin (ce que vous pouvez vérifier avec la commande locate si elle est installée ou avec la commande whereis). La cause est l’absence de ce chemin d’accès dans la variable d’environnement PATH.

Pour voir le contenu de la variable PATH (pas besoin d’être administrateur) :

echo $PATH

Pour ajouter /usr/sbin à la variable PATH (pas besoin d’être administrateur) :

export PATH=$PATH:/usr/sbin

Plus d’informations

On peut chercher l’existence d’une commande en utilisant whereis.

Exemple :

whereis iftop
 iftop: /usr/sbin/iftop /usr/share/man/man8/iftop.8.gz

Si vous voulez aller plus loin, vous pouvez utiliser une application comme Wireshark :

Wireshark

La page de mon site consacrée aux commandes Shell et le réseau :

Les commandes Shell et le réseau

Installer VMware Tools dans une machine virtuelle Debian 10 – VMware Workstation Player

J’utilise VMware Workstation 15 Player et Open VM Tools.

J’ai rencontré des problèmes, finalement, j’ai opté pour cette méthode.

Le projet Open Virtual Machine Tools (open-vm-tools) est une implémentation au code source libre de VMware Tools. Il s’agit d’une collection d’utilitaires de virtualisation et de pilotes pour améliorer les fonctionnalités, l’expérience d’utilisateur et l’administration de machines virtuelles VMware.

En utilisant Open VM Tools, dans un terminal en administrateur root :

apt-get install open-vm-tools

Attendre un certain temps jusqu’à ce que l’installation soit terminée. Enfin, redémarrer le système pour que les modifications prennent effet.

Pour afficher la version des outils Open VM, utilisez la commande ci-dessous dans un terminal :

/usr/bin/vmware-toolbox-cmd -v

Plus d’informations sur le WEB :

https://vitux.com/how-to-install-vmware-tools-in-debian-10/

Convertir la voix en texte – dictation.io

Dictation.io :

https://dictation.io/

Ce site WEB vous permet de convertir ce que vous dictez en texte. Vous pouvez également ajouter des paragraphes, des signes de ponctuation, etc. à l’aide de commandes vocales.

  • Attention ! : Sous Windows comme sous Linux, vous devez utiliser le navigateur WEB Chrome.
  • La page est en Anglais, n’activez pas la traduction, cela entraine un dysfonctionnement du programme.
  • Bien sûr, vous devez disposer d’un micro et autoriser son usage depuis Chrome (quand cela est demandé).

Vous lancez le programme par un clic sur [LAUNCH DICTATION].

Dans mon cas le Français était déjà sélectionné.

Pour commencer, cliquez sur [Start]

Speech Recognition commands vous donne accès à l’aide sur les commandes vocales.

Le programme a fonctionné tout de suite sans nécessiter plus de configurations.


Et pour Linux…

Pour mes tests, j’ai installé Chrome sous Linux Mint, j’ai donc téléchargé le paquet .deb que j’ai installé depuis le terminal avec la commande dpkg -i nom_du_paquet par la suite j’ai désinsntallé le paquet avec la commande dpkg -r nom_du_paquet

Plus d’informations sur la commande dpkg :

https://doc.ubuntu-fr.org/dpkg

Plus d’informations pour l’installation de Google Chrome sous Ubuntu avec entre autres choses l’installation depuis les dépôts de Google que j’ai réalisée ensuite (sous Linux Mint):

https://doc.ubuntu-fr.org/google_chrome

Apparemment, cela ne fonctionne pas avec le navigateur WEB Chromium.

 

Installation de Zoom sous Linux Mint, Ubuntu et Debian

Zoom

Zoom est un service de conférence à distance qui combine la vidéoconférence, les réunions en ligne, le chat et la collaboration mobile à l’aide d’applications propriétaires.

Wikipédia

Testé avec Ubuntu 18.04 64 bits, Linux Mint 19.03 64 bits et Debian 10 64 bits

Depuis la page WEB : https://zoom.us/download?os=linux

Choisir votre distribution Linux, 64 ou 32 bits, la version.

Puis cliquez sur [Télécharger]

Sélectionnez Enregistrer le fichier puis cliquez sur [OK].

Personnellement, j’ai installé les versions 64 bits.

Depuis un terminal, dans le dossier Téléchargements.

cd ~/Téléchargements/

Pour Mint et Ubuntu (on utilise sudo)

sudo apt install ./zoom_amd64.deb

Pour Debian (on se connecte en administrateur root)

su
apt install ./zoom_amd64.deb

L’installation est terminée.


Désinstallation de Zoom

Pour désinstaller Zoom sous Mint et Ubuntu

sudo apt remove zoom

Pour désinstaller Zoom sous Debian (en administrateur root)

su
apt remove zoom

Plus d’informations

https://support.zoom.us/hc/en-us/articles/204206269-Installing-or-updating-Zoom-on-Linux

Si vous rencontrez des problèmes, n’hésitez pas à laisser des commentaires.


Une alternative open source Jitsi Meet

Jitsi Meet est une solution de visioconférence entièrement chiffrée et 100% open source – aucun compte requis.

La visioconférence open source avec Jitsi Meet


Le Shell

La page consacrée au Shell Linux.

Le shell

Obtenir l’adresse MAC de votre carte réseau

Pour trouver l’adresse MAC de votre carte réseau sous Windows 10, iOS, Android et Linux.

Une adresse MAC (Media Access Control), parfois nommée adresse physique, est un identifiant physique stocké dans une carte réseau ou une interface réseau similaire. À moins qu’elle n’ait été modifiée par l’utilisateur, elle est unique au monde. Le MAC (acronyme de Media Access Control) n’a aucun rapport avec le Mac d’Apple (diminutif de Macintosh). Toutes les cartes réseau ont une adresse MAC, même celles contenues dans les PC et autres appareils connectés (tablette tactile, smartphone, consoles de jeux…).

Wikipédia

L’adresse MAC est sous la forme xx-xx-xx-xx-xx-xx avec des valeurs allant de 0 à 9 et de A à F (système hexadécimal). Les 24 premiers bits servent à identifier le constructeur et les 24 derniers la carte.

Plus d’informations :

https://fr.wikipedia.org/wiki/Adresse_MAC

Pour ce qui me concerne, dans le cadre de la mise en place d’un portail captif, nous devons obtenir les adresses MAC des différents périphériques destinés à être utilisés pour se connecter au réseau par ce moyen.

Mes tutoriels au format PDF :

Sous Windows 10 :

Obtenir l’adresse MAC en utilisant l’interface graphique (la carte réseau doit être active)

Obtenir l’adresse MAC en utilisant l’invite de commande

Et aussi :

Obtenir l’adresse MAC sous iOS ou iPadOS

Obtenir l’adresse MAC sous Android

Et linux ?

Pour Obtenir l’adresse MAC sous Linux depuis le terminal on utilise la commande ifconfig.

Obtenir l’adresse MAC d’une carte réseau sous Linux

Simulation du clavier avec Python

J’utilise Debian 10 Buster et Python 3.7.3.

Pour simuler l’appui sur des touches du clavier en Python, j’ai utilisé la bibliothèque keyboard.

Pour l’installer, en administrateur (root) :

pip3 install keyboard

Si cela ne fonctionne pas.

Installation des paquets nécessaires à la mise en place des bibliothèques pour Python 3, en administrateur (root pour Debian ou sudo pour Ubuntu, Mint). Pip est un gestionnaire de paquets :

apt-get install python-pip python3-pip

Le lien :

https://pypi.org/project/keyboard/

Je l’ai utilisé dans l’exemple suivant :

#!/usr/bin/env python3.7

#-*- coding: utf-8 -*-

import keyboard

keyboard.press_and_release('alt + tab')

keyboard.press_and_release('ctrl + v')

Dans cet exemple, je simule l’appui simultané sur les touches [Alt] + [Tab] pour basculer vers une autre application où je colle le contenu du presse-papiers [Ctrl] + [v].

Cela fonctionne très bien, le problème que je rencontre est que je ne peux utiliser cette bibliothèque qu’en administrateur (root). Je voulais intégrer cette fonctionnalité à un programme utilisant tkinter pour l’interface graphique et là ça fonctionne avec mon utilisateur, mais pas en root, dommage !

Si vous avez des informations pouvant aider à avancer sur le sujet, n’hésitez pas à laisser un commentaire.