Project Info
This project did not submit a demo video on Devpost.
Inspiration
In the age of rapid communication, social media platforms such as TikTok, Instagram, and YouTube have risen to the top in short-form media. These clips can circulate the internet and go viral. However, many of these viral videos often lead to the spreading of misinformation. How can someone quickly and easily check if a video they see is misleading?
What it does
Detects misinformation in TikTok posts with AI. It provides a summary on potential misinformation present and links to any relevant articles about the topic.
How we built it
The webpage was built in React while the backend utilized Flask and several AI libraries. These include OpenCV, LLama, ChatGPT, Assembly-AI, and a CDN is used to host video frames while processing. Additionally, web scraping of the fact-checking site snopes.com is done so that certain claims can be backed up with sources if they have been checked by snopes.com.
Challenges we ran into
Obtaining the audio file from TikTok posts proved difficult, and the subsequent challenge involved aiming for high accuracy in detecting false information using the OpenAI API. However, by utilizing several APIs we were able to provide more context to improve the reliability. Additionally, scraping snopes.com for relevant articles provides sources for claims and prevents AI hallucination. We also had to learn how to use asynchronous programming to improve the speed of the program.
Accomplishments we're proud of
We are proud of our ability to integrate several different APIs to tackle this difficult problem. The UI for the webpage was designed with care and user-friendly.
What we learned
Our group learned to implement several APIs in our backend along with web scraping and image processing while collaborating with each other to hook up the frontend and backend.
What's next
Develop a language model to aim for higher accuracy.
Miss Info (CruzHacks 2024)
A web page that detects any misinformation present in TikTok videos using AI and Large Language Models. The LLMs used for this project include LLama, ChatGPT, and Assembly-AI. OpenCV and CDN are also used to process video frames. After the provided TikTok video is processed, a summary of the misinformation analysis is displayed alongside relevant sources from snopes.com. (Project for CruzHacks 2024)
Usage
Insert your OpenAI, AssemblyAI, Replicate, and CDN keys in backend/api/api_keys.py with the following variables:
OPEN_AI_API_KEY = ""
ASM_AI_API_KEY = ""
REPLICATE_API_KEY = ""
CDN_CLOUD_NAME = ""
CDN_API_KEY = ""
CDN_API_SECRET = ""
This project consists of two components: the React application for webpage rendering and the Flask application for running the LLM APIs and processing the TikTok video. Both components must be run for the web application to function.
In one terminal, run the following commands to start up the React application:
cd client
npm install
npm run start
In another terminal, run the following commands to start up the Flask application:
pip3 install -r requirements.txt
cd backend
python3 app.py
Analysis
View
Metric
- 35
- 16
- 6
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- FlaskIn code
- HTMLIn code
- JavaScriptIn code
- OpenAIIn code
- PythonIn code
- ReactIn code
- StreamlitIn code
8 of 8 appear in the indexed code.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
24 KB
Source files
17
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
inkyant/cruz-hacks-2024
22 files · 733 KB · @ e259b5c
Structure
API & routing
8 files · 36%Request entry points: routes, handlers and controllers.
Application logic
5 files · 23%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python49%
- Markdown20%
- JavaScript12%
- CSS12%
- HTML7%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
requirements.txt
pypi · 16- assemblyai
- browser-cookie3
- bs4
- cloudinary
- Flask
- Flask-Cors
- lxml
- numpy
- openai
- opencv-python
- pandas
- pyktok
- replicate
- requests
- selenium
- streamlit
client/package.json
npm · 9- @testing-library/jest-dom
- @testing-library/react
- @testing-library/user-event
- react
- react-dom
- react-loader-spinner
- react-scripts
- react-social-media-embed
- web-vitals
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.