๐Ÿ“ฆ Svenlaa / clibpack

A PHP web app for cataloging video content with bulk scraping.

โ˜… 0 stars โ‘‚ 0 forks ๐Ÿ‘ 0 watching
๐Ÿ“ฅ Clone https://github.com/Svenlaa/clibpack.git
HTTPS git clone https://github.com/Svenlaa/clibpack.git
SSH git clone git@github.com:Svenlaa/clibpack.git
CLI gh repo clone Svenlaa/clibpack
Sven Sven fix: could not import models ea4ac8b 10 days ago ๐Ÿ“ History
๐Ÿ“‚ main View all commits โ†’
๐Ÿ“ app
๐Ÿ“„ .gitignore
๐Ÿ“„ favicon.ico
๐Ÿ“„ index.php
๐Ÿ“„ ink
๐Ÿ“„ README.md
๐Ÿ“„ README.md

Clipback

A PHP web app for cataloging video content with on-demand scraping.

Note: Personal project for learning web scraping and database design. Built to scrape from a specific video e-commerce site.

Features

  • Web Scraper: Grabs metadata (title, price, duration, thumbnails, creator info) from web pages
  • Database: Stores clips and creators in MySQL
  • Purchase Tracking: Separates local videos from wishlist items
  • Video Player: Web player with fullscreen support and MediaSession API
  • CLI Tool (ink): Batch scraping and bulk operations
  • Value Sorting: Ranks clips by price-per-minute

Tech Stack

  • Pure PHP with custom MVC structure (no framework)
  • MySQL database
  • DOM parsing for web scraping
  • JSON/HTML output
  • CLI scripts

Project Structure

  • ink - CLI tool for scraping
  • app/controllers/ - Request handlers
  • app/scraper/ - Scraping logic
  • app/views/ - HTML templates
  • app/kernel/ - Routing and views
  • app/db/ - Database stuff
  • clips/ - Local video files (gitignored)

Usage

Database Setup

php app/db/migrate.php

Use --fresh flag to drop all tables and recreate:

php app/db/migrate.php --fresh

CLI Commands

Scrape content by ID:

php ink scrape 123456 789012

Mark local media as purchased:

php ink buy

Web Interface

Access the application through your web server. The main routes are:

  • / - List all content
  • /?clip_id={id} - View specific item
  • /?view=purchased - List purchased items only
  • /?view=wishlist - List wishlist items only
  • /?model_id={id} - Filter by creator
Add &json or set Accept: application/json header for JSON responses.