A Web Platform for Secure Video Distribution with Embedded Watermarking
Argos is an open-source web application that enables secure video sharing with embedded digital watermarks. It’s designed for organizations needing to trace access and prevent misuse of sensitive video content. This project was developed as a Final Project (TCC) at the Escola Politécnica da Universidade de São Paulo.
The platform supports:
- Watermarking each video with an encrypted user-specific identifier.
- Defending against DeepFake manipulation using CMUA (adversarial noise).
- Operating fully offline in local networks.
📚 See the full documentation:
- 🧬 Dual watermarking: user tracking + AI attack prevention
- 🧩 API-first architecture using Django Ninja
- 🖥️ Simple and responsive frontend built with Franken UI
- 🔒 Operates entirely on local networks for enhanced security
- 🗄️ Lightweight data management with SQLite
⚠️ Warning: The steps below are written for Windows.
Linux and macOS users can follow the same steps with minimal changes to terminal commands.
⚠️ Warning: This project requires Python 3.9.7.
Follow the steps below to run Argos locally:
- Clone the repository
git clone https://github.com/CezarGab/argos.git
cd argos- Create and activate virtual environment
python -m virtualenv venv
cd ./venv/Scripts
activate.bat # or source ../bin/activate on Linux/macOS
cd ../..- Install dependencies
pip install -r requirements.txt
pip install -r requirements-offmark.txt- Clone Offmark library
cd ..
git clone https://github.com/CezarGab/offmark-py
cd argos- Run the server
python manage.py runserverFinally, open http://localhost:8000 in your browser to see the client side application.
| Username | Password | Superuser? |
|---|---|---|
| admin | admin | ✅ |
| zuffo | senhapsi3592 | ❌ |
| roseli | senhapsi3592 | ❌ |
All core features are exposed via REST endpoints. Interactive docs available at:
http://localhost:8000/api/docs
As a superuser, you can manage users and permissions at:
http://localhost:8000/admin
All the data is stored in a local SQLite database. You can inspect it with Beekeeper Studio.
We thank the open-source projects that made Argos possible:
- Franken UI: A powerful open-source library of UI components that significantly enhanced Argos's user interface. https://github.com/franken-ui/ui
- Offmark: This forensic digital watermarking framework was crucial for implementing our video content protection mechanisms. https://github.com/eluv-io/offmark-py
- Django: The robust and versatile web framework that served as the backbone for Argos's backend development. https://www.djangoproject.com/
- Django Ninja: An excellent and efficient tool that streamlined our API development within the Django ecosystem. https://django-ninja.dev
- SQLite: The reliable and lightweight embedded database system that provided essential data storage for the project. https://www.sqlite.org/
Ways to support or improve the project:
- Starring: If you find the app useful, consider starring the repository.
- Reporting Issues: If you find a bug or have a suggestion for a new feature, please report it via the Issue tab.
- Contributing Code: If there is an open issue that you think you can help with, submit a pull request.
Released under the MIT License.
Argos é uma aplicação web de código aberto que possibilita o compartilhamento seguro de vídeos com marcas d'água forenses. Foi projetada para organizações que precisam rastrear acessos e prevenir o uso indevido de conteúdo de vídeo sensível. Este projeto foi desenvolvido como Trabalho de Conclusão de Curso (TCC) na Escola Politécnica da Universidade de São Paulo, orientado pelo Prof. Dr. Marcio Lobo.
A plataforma oferece:
- Marca d'água em cada vídeo com um identificador criptografado específico do usuário.
- Defesa contra manipulação por DeepFake usando CMUA (ruído adversarial).
- Operação totalmente offline em redes locais.
📚 Documentação completa:
- 🔐 Proteção dupla por marca d’água
- 🌐 API em Django Ninja
- 🖥️ Frontend simplificado com Franken UI
- 🗃️ Banco de dados local com SQLite
- 🧠 Defesa contra DeepFake com ruído adversarial
⚠️ Atenção: Os passos abaixo foram escritos para Windows.
Usuários de Linux ou macOS podem seguir os mesmos passos com adaptações mínimas nos comandos do terminal.
⚠️ Warning: Este projeto requer Python 3.9.7.
Siga os passos abaixo para rodar localmente:
- Clone o repositório
git clone https://github.com/CezarGab/argos.git
cd argos- Crie e ative o ambiente virtual
python -m virtualenv venv
cd ./venv/Scripts
activate.bat # ou source ../bin/activate no Linux/macOS
cd ../..- Instale as dependências
pip install -r requirements.txt
pip install -r requirements-offmark.txt- Clone o repositório offmark
cd ..
git clone https://github.com/CezarGab/offmark-py
cd argos- Execute o servidor
python manage.py runserverAbra http://localhost:8000 no navegador.
| Usuário | Senha | Admin? |
|---|---|---|
| admin | admin | ✅ |
| zuffo | senhapsi3592 | ❌ |
| roseli | senhapsi3592 | ❌ |
Acesse a interface interativa (swagger) da API em:
http://localhost:8000/api/docs
Com uma conta superuser, gerencie usuários e permissões em:
http://localhost:8000/admin
Os dados são armazenados em SQLite. Recomendamos o uso do Beekeeper Studio para gerenciamento.
Distribuído sob a Licença MIT.


