Skip to main content

Open Subtitles Hash implementation

Project description

oshash

OpenSubtitles Hash implementation.

This algorithm is focused on speed because unlike other algorithms, OSHash doesn't read the whole file. This makes it a perfect algorithm for hashing large files.

Installation

The latest stable release can be installed from PyPI:

$ pip install oshash

API usage

Simply import oshash and call oshash function with your file path.

import oshash

file_hash = oshash.oshash("/path/to/file")

Command usage

You can compute OSHash directly from the terminal.

$ oshash <file_path>

For example:

$ oshash /path/to/video.mp4
OSHash (/path/to/video.mp4) = d315edebf53a4af3

Comparison

A short comparison with other algorithms:

320p video (61.7 MB) 1080p video (339.4 MB)

You can create a comparison for any file with the following command:

$ python3 scripts/compare_algorithms.py <file_path>

If you want to view graphics, make sure you have matplotlib installed.

How It Works?

In pseudo-code, the hash is computed in the following way:

file_buffer = open("/path/to/file/")

head_checksum = checksum(file_buffer.head(64 * 1024))  # 64KB
tail_checksum = checksum(file_buffer.tail(64 * 1024))  # 64KB

file_hash = file_buffer.size + head_checksum + tail_checksum

You can read more in OpenSubtitles.org Wiki

Acknowledgements

Thanks to the OpenSubtitles.org team for this algorithm.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oshash-0.1.1.tar.gz (3.4 kB view details)

Uploaded Source

File details

Details for the file oshash-0.1.1.tar.gz.

File metadata

  • Download URL: oshash-0.1.1.tar.gz
  • Upload date:
  • Size: 3.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/42.0.2 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.0

File hashes

Hashes for oshash-0.1.1.tar.gz
Algorithm Hash digest
SHA256 7eb7dfdd7d976d3a06fcc14ba8cf8265cd387c99e57bdd310e0ab847b7b7f0b7
MD5 5231690c99cc4f18fb8548c5c80fca53
BLAKE2b-256 82ea074c82c08eb702e4f1a52beb0c59db5dcbb8054befcc647b9b5be7264805

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page