GithubHelp home page GithubHelp logo

gallicality's Introduction

Description

CLI permettant de télécharger les images d'un manifest ark, s'il est dans le domaine public, via l'API IIIF de Gallica. Il permet de récupérer des images de meilleure qualité par rapport aux téléchargements image par image depuis l'interface web de Gallica.

Télécharge des fichiers images à partir d'un intervalle de folios, présents dans un id ark. Ce script présuppose donc une connaissance du contenu de l'ark duquel on souhaite avoir les images.

Enregistrement par défaut des fichiers image en JPEG dans un nouveau dossier, situé là où se trouve le script python. Le nommage des fichiers respecte le numéro de folio. Il est possible de télécharger les fichiers en TIFF et en PNG grâce à des options dans le CLI.

Si je télécharge l'image du folio 198 en JPEG, mon fichier sera nommé "f198.jpg" et sera enregistré dans mon répertoire lenomdurépertoirequejaichoisi.

Le script génère également un fichier csv, nommé par l'utilisateur.ice, regroupant les metadata de l'identifiant ark.

Comment ça marche

Une seule commande est disponible : query

Pour exécuter le script :

python gallicality.py query ark from_f to_f directory_name csv_file_name
  • ark : ID ARK
  • from_f : numéro de folio indiquant le départ de l'intervalle de téléchargement
  • to_f : numéro de folio indiquant la fin de l'intervalle de téléchargement
  • directory_name : nom du nouveau dossier créé, dans lequel seront enregistrées les images.
  • csv_file_name : nom du fichier csv créé où sont regroupées les métadonnées.

Par exemple, pour récupérer les images des folios 7 à 20 en JPEG du Horla de Guy de Maupassant, édité par la librairie Ollendorff, en 1908, à Paris, et conservé à la Bibliothèque nationale de France :

python gallicality.py query ark:/12148/bpt6k9923506 7 20 le_horla le_horla_metadata

Il est possible de récupérer les images en TIFF avec l'option -t ou --tif

python gallicality.py query ark:/12148/bpt6k9923506 7 20 le_horla le_horla_metadata -t

Ou bien :

python gallicality.py query ark:/12148/bpt6k9923506 7 20 le_horla le_horla_metadata -tif

Ou en PNG avec l'option -p ou --png

python gallicality.py query ark:/12148/bpt6k9923506 7 20 le_horla le_horla_metadata -p

Ou bien :

python gallicality.py query ark:/12148/bpt6k9923506 7 20 le_horla le_horla_metadata --png

Requirements

Pour faire fonctionner ce script :

Linux (Ubuntu/Debian) :

Téléchargez ou clonez ce repository Github sur votre machine, au sein du dossier de votre choix. Dans ce dossier, créez un nouvel environnement virtuel qui sera utilisé pour installer les librairies nécessaires au fonctionnement du script et dans lequel il sera exécuté.

Pour cela, une fois dans votre dossier, ouvrez un terminal et tapez la commande suivante pour créer un nouvel environnement virtuel :

virtualenv le_nom_de l'environnement_virtuel_que_vous_aurez_choisi -p python3

Pour l'activer, tapez la commande suivante :

source le_nom_de l'environnement_virtuel_que_vous_aurez_choisi/bin/activate

Les librairies à télécharger dans l'environnement virtuel, une fois que celui-ci est activé, sont les suivantes :

  • requests
  • click
  • Pillow

L'installation peut se faire grâce au fichier requirements.txt avec la commande suivante, dans le terminal :

pip install -r requirements.txt

Quelques informations sur la librairie Pillow

Pillow est une librairie permettant d'ouvrir, manipuler et sauvegarder des formats d'images. Le script utilise ici le module Image de Pillow. Voir le site officiel de Pillow : https://pillow.readthedocs.io/en/stable/index.html Documentation spécifique à l'installation : https://pillow.readthedocs.io/en/stable/installation.html

gallicality's People

Contributors

hugoschtr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

gallicality's Issues

Pour relier les images dans un PDF.

Si cela peut aider...

#!/usr/bin/env python3
#
#  Usage:
#    pdf_stitch.py [-d] -o output.pdf -i input_folder
#
#  Example
#    pdf_stitch.py [-d] -o book.pdf -i "pages/*.jpg"
#

import sys, traceback, argparse, glob, img2pdf
from pathlib import Path


def parse_arguments():
    """
        Purpose: parse all arguments and set as global args
    """
    parser = argparse.ArgumentParser("Make a PDF out of a number of images [f1.img...fn.img] ")
    parser.add_argument('-d',  '--debug',         help='debug flag',                      dest='debug',         action='store_true', default=False)
    parser.add_argument('-o',  '--output',        help='output PDF document',             dest="output",                             required=True)
    parser.add_argument('-i',  '--input',         help='input folder',                    dest="input",                              required=True)

    return parser.parse_args()


def main():
    """
    The main sequence of calls
    :return: 0 if success
    """

    args = parse_arguments()

    try:
        all_images = glob.glob(args.input)
        all_images.sort(key=lambda x: int(Path(x).stem[1:]))

        with open(args.output, "wb") as f:
            f.write(img2pdf.convert(all_images))

    except Exception as e:
        traceback.print_exc()
        success = False
    else:
        print(f"Successfully created book {args.output}")
        success = True

    sys.exit(1 if not success else 0)


if __name__ == '__main__':
    main()

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.