Identifying harmful content

Facebook open sources photo and video matching technology

Sarah Schlothauer
© Shutterstock / Leyn

The Facebook development team announced at their Child Safety Hackathon that they have open sourced ThreatExchange. ThreatExchange is a collection of RESTful APIs that helps find matching content for an explicit video, in order to prevent it from being shared. Check out some of the privacy features and how you can potentially help make the internet safer.

In order to help make browsing the Internet safer, Facebook open sourced its video matching technology ThreatExchange.

According to the announcement blog by Facebook Newsroom, some of the main uses for this technology are combating child exploitation and the spread of terrorist material. This software helps find matching content to an explicit video, in order to help prevent it from being shared.

With the release of ThreatExchange, Facebook hits a new milestone. This marks the first time that the company has open sourced its photo or video matching technology.

Open sourcing security

From GitHub: “ThreatExchange is a set of RESTful APIs on the Facebook Platform for querying, publishing, and sharing security threat information. It’s a light-weight way for exchanging details on malware, phishing pages, and other threats with either specific members of the community or the ThreatExchange community at large.

SEE ALSO: The trendy five: Beat the heat with our favorite July 2019 repos

The repo includes freely available libraries in multiple languages, including JavaScript, PHP, Python, and Ruby. It also includes a JavaScript, client-side user interface.

It is currently in beta, as it continues to collect high-confidence information.

Under the hood

How does it work? The announcement blog explains:

These technologies create an efficient way to store files as short digital hashes that can determine whether two files are the same or similar, even without the original image or video. Hashes can also be more easily shared with other companies and non-profits. For example, when we identify terrorist propaganda on our platforms, we remove it and hash it using a variety of techniques, including the algorithms we’re sharing today. Then we share the hashes with industry partners, including smaller companies, through GIFCT so they can also take down the same content if it appears on their services.

The API supports three levels of privacy/visibility: all members, the ThreatPrivacyGroup, and a whitelist limited to specific members. Users can create their own privacy groups.

Signing up

See some examples in Python, Java, and PHP using cURL and see how it works.

SEE ALSO: 5 alternatives to JavaScript for front-end development

View the full repository on GitHub. The repo also contains example code for using the API.  You can request access to ThreatExchange.

Want to help share threat information and make the internet more secure? In order to apply, you will need a Facebook developer app, which will give you an app ID. You will need to authenticate the ThreatExhange API via an Access Token.

Full documentation for the current version available here, including more info about best practices, and how to edit and submit data.

Sarah Schlothauer

Sarah Schlothauer

All Posts by Sarah Schlothauer

Sarah Schlothauer is the editor for She received her Bachelor's degree from Monmouth University, West Long Branch, New Jersey. She currently lives in Frankfurt, Germany with her husband and cat where she enjoys reading, writing, and medieval reenactment. She is also the editor for Conditio Humana, an online magazine about ethics, AI, and technology.

Inline Feedbacks
View all comments