iscc cli-从媒体文件创建iscc代码

iscc-cli的Python项目详细描述


iscc cli-命令行工具

Linux Build StatusWindows Build StatusVersion

A command line tool that creates ISCC Codes for digital media files based on the reference implementation.

目录

背景

国际标准内容代码建议使用open standard进行分散式内容标识。iscc代码通过算法从内容本身生成{str 1}$,并提供许多强大的功能,如内容相似性聚类和部分完整性检查。如果您想进一步了解iscc请查看https://iscc.codes

这个工具提供了一种从命令行生成iscc代码的简单方法。它支持通过Apache Tika提取内容,并使用ISCC reference implementation

支持的媒体文件类型

文本

doc、docx、epub、html、odt、pdf、rtf、txt、xml

图像

gif、jpg、png

音频

AIF、MP3、OGG、WAV

注意:对音频ID的支持是实验性的,还不是specification

的一部分

要求

NOTE: Requires JAVA to be installed and on your path!

iscc cli在linux和windows上使用python 3.5/3.6/3.7进行测试,但也应该在macos上工作。

这个工具依赖于tika-pythonTika用于在生成iscc代码之前从媒体文件中提取元数据和内容。第一次执行iscc命令行工具时,它将自动下载并在后台启动java tika服务器(这可能需要一些时间)。连续运行将访问现有的TIKA实例。您可以使用$ iscc init

显式地预先启动tika服务器。

安装

iscc命令行工具是用Python Package Index上的包名iscc-cli发布的,可以用pip:

$ pip3 install iscc-cli

用法

获得帮助

通过调用不带任何参数的iscc来显示帮助概述:

$ iscc
Usage: iscc [OPTIONS] COMMAND [ARGS]...Options:  --version  Show the version and exit.  --help     Show this message and exit.Commands:  gen*   Generate ISCC Code for FILE.  batch  Create ISCC Codes for all files in PATH.  info   Show information about environment.  init   Inititalize and check environment.  sim    Estimate Similarity of ISCC Codes A & B.  web    Generate ISCC Code from URL.

通过输入iscc <command>

$ iscc gen
Usage: iscc gen [OPTIONS] FILE  Generate ISCC Code for FILE.Options:  -g, --guess       Guess title (first line of text).  -t, --title TEXT  Title for Meta-ID creation.  -e, --extra TEXT  Extra text for Meta-ID creation.  -v, --verbose     Enables verbose mode.  -h, --help        Show this message and exit.

生成iscc代码

gen命令为单个文件生成iscc代码:

$ iscc gen tests/demo.jpg
ISCC:CCTcjug7rM3Da-CYDfTq7Qc7Fre-CDYkLqqmQJaQk-CRAPu5NwQgAhv

gen命令是默认的,因此您可以跳过它,只需执行$ iscc tests/demo.jpg

要获得更详细的结果,请使用-v--verbose)选项:

$ iscc -v tests/demo.jpg
ISCC:CCTcjug7rM3Da-CYDfTq7Qc7Fre-CDYkLqqmQJaQk-CRAPu5NwQgAhvNorm Title: concentrated catTophash:    7a8d0c513142c45f417e761355bf71f11ad61d783cd8958ffc0712d00224a4d0Filepath:   tests/demo.jpgGMT:        image

有关如何同时为多个文件生成iscc代码的帮助,请参见iscc batch

iscc码的相似性

sim命令计算两个iscc代码的估计相似性:

$ iscc sim CCUcKwdQc1jUM CCjMmrCsKWu1D
Estimated Similarity of Meta-ID: 87.50 %

您还可以比较完整的四组分ISCC代码。

维护人员

@titusz

贡献

欢迎拉取请求。对于重大变更,请先打开一个问题来讨论您希望更改的内容。

请确保根据需要更新测试。

您可能还想加入我们的开发人员在https://t.me/iscc_dev的电报聊天。

更改日志

[0.6.0]-2019-06-11

  • 添加了新的web命令(为url创建iscc代码)

[0.5.0]-2019-06-06

  • 增加了对aif、mp3、ogg、wav的实验性支持
  • 更详细的批处理输出
  • 修复批处理输出默认meta id

[0.4.0]-2019-06-03

  • 添加了对HTML、ODT、TXT、XML、GIF的支持
  • 添加了对标题的可选猜测(文本的第一行)
  • 添加了新的info命令
  • 修复了对相同实例id的错误检测

[0.3.0]-2019-06-01

  • 添加simiscc代码的命令相似性比较

[0.2.0]-2019-05-31

  • 添加对doc、docx和rtf文档的支持
  • 更新到iscc 1.0.4(修复空白错误)

[0.1.0]-2019-05-31

  • 基本ISCC代码创建
  • 支持的文件类型:jpg、png、pdf、epub

许可证

麻省理工学院©2019泰特斯斯潘

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Android同步不同页面上的按钮   java评测每个类收集的垃圾对象实例数   java(Spring MVC+Hibernate 4+Test 4)自动连线DAO返回NULL   java Android编辑文本和虚拟键盘   java Selenium与BrowserMobProxy   JAVAlang.NoClassDefFoundError:com/sun/jersey/spi/inject/Errors$关闭原因?   java为什么在我成功登录后仍然会出现“不正确的帐户或密码或用户类型”   安卓应用程序在重新启动java时崩溃。网UnknownHostException:无法解析主机   多线程在Java中同步共享静态对象的正确方法是什么?   未调用自定义注释的java类验证(约束类)   java如何将指定目录的存档文件放入所需位置?   java如何识别Selenium中的每个编辑文本字段,如果它们的Xpath都相同   使用gwtmockito/mockito的java简单单选按钮单元测试?