videohash is a video fingerprinting / video hashing tool written in Python
Project description
VideoHash
A simple Video Hashing Library
Installation
You must have ffmpeg installed to use this library.
➤ Install FFmpeg
Linux
- APT
sudo apt-get update
sudo apt install ffmpeg
- Snap
sudo snap install ffmpeg
Windows
Steps are based on video.stackexchange.com/a/20496, please note that the download site is outdated as of January 2021.
- Download the
release full
variant from https://www.gyan.dev/ffmpeg/builds/. You can download any variant you want, but I prefer the full release. - Decompress the archive.
- Copy the bin directory from the decompressed folder, and paste inside
C:\Program Files\ffmpeg\
. - Right click on "This PC" and navigate to
Properties > Advanced System Settings > Advanced tab > Environment Variables
. - In the Environment Variables window, click the "Path" row under the "Variable" column, then click Edit.
- Click New and add
C:\Program Files\ffmpeg\bin\
to the list. - Click Ok on all the windows we just opened up. (Answer postive)
If you still have doubts read the answer https://video.stackexchange.com/a/20496, it has images to guide you.
Prefer video? https://www.youtube.com/watch?v=qjtmgCb8NcE.
macOS
brew install ffmpeg
Install videohash
- Using pip:
pip install videohash
- Install directly from GitHub:
pip install git+https://github.com/akamhy/videohash.git
Usage
>>> import videohash
>>> hash1 = videohash.from_url("https://raw.githubusercontent.com/akamhy/videohash/main/assets/rocket.mkv")
>>> str(hash1)
'fe3fffff8ff80000'
>>> hash2 = videohash.from_url("https://www.youtube.com/watch?v=PapBjpzRhnA")
>>> str(hash2)
'fe3fffff9ff80000'
>>>
>>> diff = hash1 - hash2
>>> diff
1
>>>
>>> hash3 = videohash.from_url("https://www.youtube.com/watch?v=_T8cn2J13-4")
>>> diff = hash1 - hash3
>>> diff
29
>>> str(hash3)
'3cffff00000081f0'
>>>
>>> #hash4 file is hash1 file downloaded locally. NOTE : Use absolute path
>>> hash4 = videohash.from_path("/home/akamhy/Downloads/rocket.mkv")
>>> diff = hash4 - hash1
>>> diff
0
>>>
Run the above code @ https://repl.it/@akamhy/video-hash-example#main.py
-
https://raw.githubusercontent.com/akamhy/videohash/main/assets/rocket.mkv is copy of https://www.youtube.com/watch?v=PapBjpzRhnA, and are about the Artemis program and SLS rocket.
-
https://www.youtube.com/watch?v=_T8cn2J13-4 is an entirely distinct video also about the Artemis program.
-
Notice that the difference of hash1 and hash2 is 1, but the difference between hash1 and hash3 is 29.
-
The difference of hash1 and hash2 is not 0 as the file in this repository is slightly modified and downscaled.
-
A collage of frames is generated and imagehash(Average hashing) of this collage is videohash for the full video.
You can change the algorithm used to generate the hash of the collage via the image_hash
argument. The default algorithm is average_hash
.
>>> hash = videohash.from_url("https://www.youtube.com/watch?v=PapBjpzRhnA", image_hash="crop_resistant_hash")
>>> hash = videohash.from_path("/home/akamhy/Downloads/rocket.mkv", image_hash="phash")
➤ Algorithms supported
average_hash
phash
dhash
whash
colorhash
crop_resistant_hash
videohash is using https://github.com/JohannesBuchner/imagehash to use these image-hashing algorithms.
License
NASA videos are in the public domain. NASA copyright policy states that "NASA material is not protected by copyright unless noted".
Released under the MIT License. See license for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for videohash-1.0.7-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c8e3af14ed98cc77d1dd06e700d2b9b62ce90ea4644630950e9cb58e3b3b9a2 |
|
MD5 | 15a5cf83c21a7910ca04707c4bb34412 |
|
BLAKE2b-256 | 0b09a9cc3c52426a497524fa95abc340e4dff3f43af786f9a410adb81ccc2712 |