π₯οΈ Command Center
DEFCON La Villa Hacker - Translation Project
π Welcome
Welcome to the Command Center of a project from La Villa Hacker! This platform is designed to help you process, translate, and analyze multimedia files using AI technologies.
π― Project Goals
- Be able to search inside of the videos and PDFs.
- Be able to share great content with our friends that don't speak English by providing them a good searching tool for video content and get the subtitles in a target language.
We know that YouTube and other platforms are very restrictive with their content. The FTP Media Server of DEFCON and INFOCON already have great content.
π In a Nutshell
Videos
β
Transcribe (TXT and VTT File Generated)
β
Translate (another TXT and VTT File Generated)
β
Summarize
β
Searchable Text
PDFs
β
Convert to Markdown
β
Translate
β
Summarize
β
Searchable Text
πΊοΈ Roadmap
Phase 0
Develop the initial proof of concept
Completed
Phase 1
Develop the API
Completed (seems stable)
Phase 2
Develop the Client for processing mp4 files
In Progress
Phase 3
Develop the Client for VTT Files translation
On Queue
Phase 4
Develop the Client for processing PDF Files to markdown and translate them
On Queue
Phase 5
Develop the Summarization Engine for text files (VTT and PDFs in markdown)
On Queue
Phase 6
Develop the Search Engine with Vectorized Embeddings
On Queue
Help Required
Phase 7
Integrate with LLMs
On Queue
Help Required
π Authentication Endpoints
GET
/login
Start GitHub OAuth flow
GET
/profile
View profile, API key and JWT token (requires GitHub OAuth). Web Interface.
GET
/logout
Logout
POST
/api/reset-key
Reset API key (requires GitHub OAuth)
POST
/api/auth/token
Get JWT token using API key
* Note: RefreshToken is not implemented, yet.
π‘οΈ Protected Endpoints
Require Bearer token or X-API-Key header
GET
/api/protected/user-info
Get user information
GET
/api/protected/user-stats
Get detailed user statistics
π File Processing Endpoints
Require X-API-Key header
POST
/api/vttfile/start
Initialize the processing of files
POST
/api/vttfile/completed/{id}
Finalize the processing of files
GET
/api/vttfile/export/{id}
Export the processed file (pure TXT for now)
POST
/api/vttcue
Updating the database along your processing on-demand
π File Search Endpoints
Require X-API-Key header
GET
/api/file/{id}
Get detail of a file
GET
/api/file/search/{filename}
Search by filename (exact match)
GET
/api/files/{type}
List by mp4, pdf, srt, txt
GET
/api/files/{type}?page=5&pagesize=20
Pagination available
GET
/api/files/{type}/conference/{conference}/search/{term}?page=1&pagesize=20
Search inside text files (case insensitive)
GET
/api/files/download?ids=1,2,3...
Download up to 20 Ids (returns text file)
POST
/api/files/download
Download more than 20 (body: Ids[])
GET
/api/admin/dashboard
Admin dashboard with stats (idea for now)
GET
/api/users
List all users with pagination
π Public Access
GET
/api/tools/downloader
Script to download videos inside a text file
π Admin Endpoints
Require Admin Role
GET
/api/background/jobs/{jobId}/status
Get job status
GET
/api/background/jobs/active
Get all active jobs
GET
/api/background/jobs/queue/status
Get queue status
POST
/api/background/jobs/{jobId}/cancel
Cancel a job
POST
/api/background/jobs/check-files
Start file check job for specific files
POST
/api/background/jobs/check-all
Start job to check all files
POST
/api/background/jobs/check-needed
Start job to check files not checked in 24h
β±οΈ Rate Limits
Auth endpoints
10 requests/minute
API Key endpoints
100 requests/minute
Authenticated endpoints
500 requests/minute (token bucket)
Global
20 requests/minute
π Authentication Methods
1
Authorization: Bearer <jwt-token>
2
X-API-Key: <your-guid-here>