Извлечение метаданных pdf фото аудио и видео на Python

Python извлечение метаданных pdf фото аудио видео

В этой статье мы будем использовать Python для извлечения метаданных. Я покажу, как извлечь метаданные из PDF-документов, изображений, видео и аудиофайлов. Это может пригодиться в OSINT и форензике.

Еще по теме: Взлом WiFi на Python

Извлечение метаданных фото аудио и видео на Python

Итак, мы напишем программу на Python, которая будет отображать метаданные документов PDF, видео, аудио и изображений на основе расширения файла.

Извлечение метаданных PDF

Метаданные в файлах PDF представляют собой ценную информацию о документе PDF. Они включают заголовок документа, автора, дату последней модификации, дату создания, тему и многое другое. Некоторые PDF-файлы содержат больше информации, чем другие, и в этом разделе вы узнаете, как извлекать метаданные из PDF-файлов с помощью Python.

Существует множество библиотек и инструментов на Python, позволяющих достичь той же цели, но я предпочитаю использовать библиотеку pikepdf, так как она активно поддерживается. Установим ее:

Как упоминалось в статье «Взлом PDF на Python», pikepdf — это Python обертка библиотеки C++ QPDF. Импортируем ее в наш скрипт:

Мы будем использовать модуль sys для получения имени файла из аргументов командной строки.

Теперь давайте создадим функцию, которая принимает имя файла PDF в качестве параметра и возвращает метаданные PDF:

Результат:

Скрипт отобразил дату последней модификации и дату создания, а также программу, использованную для создания этого документа PDF (в моем случае — pdfTeX).

Обратите внимание, что /ModDate и /CreationDate — это дата последней модификации и дата создания соответственно в формате даты и времени PDF.

Еще по теме: Как восстановить удаленные метаданные PDF

Извлечение метаданных из фото

Существуют бесплатные инструменты для извлечения метаданных, такие как ImageMagick или ExifTool в Linux. Но наша цель — понять, как извлечь метаданных изображения с помощью Python.

Для начала нужно установить библиотеку Pillow:

Откройте новый файл Python и добавьте:

Учтите, что это будет работать только с файлами изображений в формате JPEG.

Создадим функцию, которая будет отвечать за извлечение метаданных изображения:

Мы загрузили изображение с помощью метода Image.open(). Перед вызовом функции getexif(), библиотека Pillow предоставляет атрибуты объекта изображения, такие как размер, ширина и высота.

Проблема с переменной exifdata в том, что названия полей — это только идентификаторы, а не человеко-читаемые имена полей. Вот почему нужен словарь TAGS из модуля PIL.ExifTags, который преобразует каждый идентификатор тега в понятный текст. Это то, что мы делаем в цикле for.

Извлечение метаданных из видео и аудио

Теперь напишим код для извлечения метаданных из видео и аудио с использованием библиотек FFmpeg и tinytag:

Существует множество оберток для FFmpeg на Python. Но нам больше подойдет ffmpeg-python.

Функция, которая отвечает за извлечение метаданных:

Метод ffmpeg.probe() использует команду ffprobe для извлечения технических метаданных, таких как продолжительность, ширина, количество каналов и многое другое.

Метод TinyTag.get() возвращает объект, содержащий аудио и видео метаданные об альбомах, треках, композиторах и т.д.

Теперь у нас есть три функции для документов PDF, изображений и видео и аудио. Давайте напишим программу, которая, в зависимости от расширения файла, будет определять, какую функцию вызывать:

Если расширение файла, переданное через аргументы командной строки, заканчивается на .pdf, то это, безусловно, документ PDF. То же самое верно для файла JPEG.

В блоке else вызываем функцию get_media_metadata(), так как она поддерживает несколько расширений, таких как MP3, MP4 и многие другие медиа-расширения.

Извлечение метаданных

Сначала попробуем извлечь метаданные PDF:

Результат:

Теперь попробуем извлечь метаданные аудиофайла:

Результат:

Теперь извлечем метаданные фотографии, сделанной на мой телефон:

Результат:

На этом все. Теперь вы знаете, как извлекать метаданные PDF, фото, видео и аудио. В следующей статье будем использовать Python для извлечения паролей из браузера Chrome.

ПОЛЕЗНЫЕ ССЫЛКИ:

Ban32

Хакер-самоучка, который может взломать тостер и настроить его на отправку вам утреннего приветствия в коде Морзе.

Добавить комментарий