code: def hash_opensubtitles(video_path):
      
      bytesize = struct.calcsize(b'<q')
      with open(video_path, 'rb') as f:
          filesize = os.path.getsize(video_path)
          filehash = filesize
          if filesize < 65536 * 2:
              return
          for _ in range(65536 // bytesize):
              filebuffer = f.read(bytesize)
              (l_value,) = struct.unpack(b'<q', filebuffer)
              filehash += l_value
              filehash &= 0xFFFFFFFFFFFFFFFF  # to remain as 64bit number
          f.seek(max(0, filesize - 65536), 0)
          for _ in range(65536 // bytesize):
              filebuffer = f.read(bytesize)
              (l_value,) = struct.unpack(b'<q', filebuffer)
              filehash += l_value
              filehash &= 0xFFFFFFFFFFFFFFFF
      returnedhash = '%016x' % filehash
  
      return returnedhash
docs: Compute a hash using OpenSubtitles' algorithm.
  
      :param str video_path: path of the video.
      :return: the hash.
      :rtype: str