Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/neilgupta/abacus
Smart video analytics
https://github.com/neilgupta/abacus
Last synced: 20 days ago
JSON representation
Smart video analytics
- Host: GitHub
- URL: https://github.com/neilgupta/abacus
- Owner: neilgupta
- Created: 2015-07-12T07:33:12.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2015-11-18T16:52:09.000Z (about 9 years ago)
- Last Synced: 2023-03-14T18:10:27.441Z (almost 2 years ago)
- Language: Ruby
- Size: 41 KB
- Stars: 0
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Abacus
https://github.com/neilgupta/abacus
## Usage
1. Create an account on Abacus
2. Add your app to Abacus to get your API keys and modify your event settings
3. Add to your web app
```html
abacus.apiKey('your-api-key');
```
4. Add to your video pages
```javascript
abacus.register(video, mediaId, userId);
```## How It Works
### Abacus.js
`Abacus.js` automatically registers to the following video events and reports them back to Abacus via websockets:
- play
- pause
- seeked
- volumechange
- timeupdate### Admins, Apps, EventTypes
A user can manage multiple apps. Each app has its own set of events it can track. By default, Abacus will create the following events for an app (they can be removed/edited):
- play
- pause
- comment
- volumechange
- like
- unlike### Media
All media that is being tracked with Abacus must be registered with a media_id, duration, and optional url. Abacus needs the media duration for accurate analysis of the play/pause data.
### Events, PlaySegments
When an event comes in, Abacus analyzes it for relevant metadata. Each event is weighted so that we can determine a score for the video's performance and for each user's performance.
For example, when a user posts a comment, Abacus uses (basic) sentiment analysis to determine whether the comment is positive or negative and weights it accordingly.
When a video is paused, Abacus finds its corresponding play event and creates a `PlaySegment`, which allows us to see what segments of a video are being watched and re-watched.
## What's Done and What's Left
Abacus.js and the API for saving data exists, but is untested.
TODO:
- API for retrieving data
- CAS integration
- UI for managing data
- specs