Inspiration
Social media has become the primary source of news for many people, with platforms like TikTok being particularly popular with youth. While social media makes it easier to learn about current events, it also enables the mass spreading of misinformation. Many false rumors can be debunked with a bit of research, but a majority of people won’t take the time to do so.
What it does
Nobull allows users to paste in a TikTok link and view key claims made by the video and whether or not they’re true, with links to reputable sources for more information.
How we built it
NoBull’s frontend was designed with Figma, which we then implemented using React.js. We chose React.js for the front end because of its modular architecture and ease of use. We used GoDaddy to register our awesome domain, nobull.today!
As for the backend, we wrote a Node.js Google Cloud Function to run the API calls we need. We first download the Tiktok videos using the Tiktok API and then use the Google Cloud Speech to Text API to generate a transcript of the video. Once we have the transcript, we use OpenAI’s GPT-3.5 API to summarize the main claims of the video, then pass the claims through the Google Fact Checker API to obtain reputable sources that let users know what’s bull and what’s nobull!
Finally, we use Google Firebase to cache fact-check results for faster loading times and return these results to be displayed in the frontend.
Challenges we ran into
To extract the key claims from the video, we pass the entire transcript into GPT-3.5 and ask it to generate search terms that we can pass to the Google Fact Check API. We had to spend a lot of time trying different prompts on varying videos to see which ones produced the most relevant search terms.
Another challenge we ran into was downloading the TikTok videos - due to a lack of API documentation, we had to reverse engineer their REST API endpoints in order to get a downloadable MP4 file. Afterwards, extracting the audio from the downloaded video also did not prove easy because we had to make a native library call (ffmpeg) from our Node.js Cloud Function environment to process the video.
Accomplishments that we're proud of
We’re proud of having a fully working project, with both frontend and backend integrated together. The project required the integration of many APIs, which meant we spent a lot of time creating proper data structures to parse all the data passing from one API to the next.
What we learned
We learned about how to integrate multiple APIs within our code, such as Google Cloud, OpenAI, and Google Fact Check. We learned how to create system prompts for the OpenAI Chat API endpoint to parse unstructured text data into key claims. We also learned how to call Google Cloud Functions from a React.js frontend.
What's next for nobull
In the future, we hope to create multiple ways for users to use Nobull, such as through text messages, TikTok sharing, and web extensions.
Additionally, we understand that our current fact-checking sources do not provide a wide variety of perspectives, with Google Fact Check API offering a limited set of topics. In the future, we’d love to expand the sources used to prove or debunk video topics, check the political leaning and financial backing of the sources, as well as allow for more input types like news articles and posts from different social media platforms.
Log in or sign up for Devpost to join the conversation.