Skip to content

agnosto/archive-player

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Archive Player

App Icon

A ragtag-like player
with built-in integration for fansly-scraper livestream VODs.

built with wails (go version of tauri/electron, i know, sorry)
I probably won't add any other integrations unless it's for something I end up using


Fansly Scraper Integration

Archive Player includes integration with the Fansly Scraper tool, allowing you to easily browse and watch recorded livestreams with their associated chat logs.

Setup

  1. Open the Settings panel and click "Configure" under Fansly Integration
  2. Provide the path to your Fansly Scraper config file (usually at ~/.config/fansly-scraper/config.toml on Mac/Linux or %APPDATA%\fansly-scraper\config.toml on Windows)
  3. Provide the path to the folder containing the downloads.db file (usually the save_location specified in your Fansly Scraper config)
  4. Click "Save" to complete the setup

Usage

  1. Click the "Fansly Streams" button in the top menu to open the Fansly browser
  2. Browse available streams, filter by model name, or search for specific content
  3. Click on a stream to load it along with its chat (if available)
  4. Enjoy watching the stream with synchronized chat replay

Features

  • Automatically pairs videos with their chat logs and contact sheet thumbnails
  • Displays stream information including model name, date, and duration
  • Allows filtering and searching by model name or filename
  • Clip creation tool to extract segments (up to 5 minutes) from videos (requires FFmpeg)
  • Preserves all Archive Player features like theater mode and chat display options

Development

Requirements

  • FFmpeg is required for the clip creation feature

Chat Format

The player supports chat files in a format similar to what chat-downloader provides:

{
  "message_id": "xxxxxxxxxx",
  "message": "actual message goes here",
  "message_type": "text_message",
  "timestamp": 1613761152565924,
  "time_in_seconds": 1234.56,
  "time_text": "20:34",
  "author": {
    "id": "UCxxxxxxxxxxxxxxxxxxxxxxx",
    "name": "username_of_sender",
    "images": [...],
    "badges": [...]
  }
}

Or from the fansly-scraper format:

{
  "message_id": "xxxxxxxxxx",
  "message": "message content here",
  "message_type": "text_message",
  "timestamp": 1746116588125,
  "time_in_seconds": 4.686060153,
  "time_text": "00:04",
  "author": {
    "id": "xxxxxxxxxxxxxxxxxxxxxxx",
    "name": "display name of sender",
    "is_creator": true,
    "tier_info": {}
  },
  "raw_data": "...",
  "received_at": "2025-05-01T09:23:08.307450813-07:00"
}

Building from Source

  1. Install Go (1.24 or later)
  2. Install Wails
  3. Install FFmpeg for clip creation functionality
  4. Clone the repository
  5. Run wails build to build the application

Creating New Integrations

To add a new integration:

  1. Create a new package in the backend/integrations directory
  2. Implement the required service methods (similar to the Fansly integration)
  3. Add your integration to the Manager in backend/integrations/manager.go
  4. Create a UI component for your integration
  5. Add the necessary methods to the App struct to expose your integration to the frontend

Support the Project

If you find this tool useful and would like to support its development, you can donate using the following crypto addresses:

Bitcoin (BTC) Solana (SOL)
Bitcoin QR Code

bc1q0e78wrtc9ezp6tqv000wfewgqf2ue4tpzdk7ee

Solana QR Code

Bv3kYZcwSTHXAQtnPddTF27D3F6Gc29v2MfFLqmGF6Gf

About

A https://archive.ragtag.moe/player like player with built in integration for my scraper. I'm very creative with names.

Resources

License

Stars

Watchers

Forks

Packages

No packages published