Scribal is an online education platform that rehosts videos taken down by a recent lawsuit against Berkeley for not being ADA compliant. Scribal not only rehosts them but makes them ADA compliant by transcribing the educational videos on the platform through crowd-sourcing.
- Users can pick and enroll in a course from a categorized selection
- Before users are allowed to watch a video for that course, a popup comes up forcing them to transcribe a randomly selected 7 second clip.
- Once the clip is transcribed it gets stored in a database where it will then be analyzed.
- The user can then proceed to their video.
- Process repeats for all other videos.
- Users can track their videos watched.
- Transcriptions are always available to be used even if they are incomplete. Just check the options for a video and use them if you'd like. A completion % and confidence % is provided.
- Clips are 7 second consecutive segments for the length of the video. So if a video is 35 seconds long, it will have 5 clips.
- First clip covering an offset of 0 to 7 seconds.
- Second clip covering an offset of 7 to 14 seconds.
- etc...
- To ensure that transcriptions cover words that are cut off at the boundary of clips, a second set of clips is generated. This set is offset by 2 seconds.
- First clip in second set covers an offset of 2 to 9 seconds.
- Second clip in second set covers an offset of 9 to 16 seconds.
- etc
- When it comes time to generate transcriptions, the first clipset is merged with the second clip set accordingly.
- User inputs for random clip transcriptions are stored in a database.
- A random clip can be served up multiple times to different users and each different user's input is stored.
- With a collection of inputs for a clip, the levenshtein distance (or edit distance) is compared across and agasint all inputs.
- The input which has the lowest average levenshtein distance is used in the final transcription.
- If none of that made any sense, essentially the filter looks at a collection of strings and returns the most "average" looking string for that clip.
Scribal uses a number of open source projects to work properly:
- MongoDB - For the database.
- MongooseJS - MongoDB js wrapper
- Express - For user creation
- ReactJS - For the view
- NodeJS - For all things back-end
- BackboneJS - For putting the MC in MVC
- Cloudinary - For hosting my videos and parsing them.
- VideoJS - For making my video player not look super ugly
- Materialize - For not making the whole site look super ugly
git clone https://github.com/wysesean/Scribal.git
cd Scribal
npm install
mongod (in a new tab)
npm run go
open localhost:3000 in the browser
MIT
Free Software, Hell Yeah!