for public site
Run with: $ bundle exec jekyll serve
Need to have Ruby and Bundkler Installed: Docs
Interface for getting viewing data from Panopto sessions
License: Apache License 2.0
for public site
Run with: $ bundle exec jekyll serve
Need to have Ruby and Bundkler Installed: Docs
I’ve managed to create two data tables to help us answer questions about viewership in Panopto
TABLE 1: UNIQUE VIEWERSHIP ACROSS CHUNKS
Example Output (COMM 290)
=> Unique Viewers: 272
Creating this table turned out to be more challenging than expected:
For the purposes of not forgetting what we did, and transparency about how we calculate this, the steps are:
I tried to play around with including dates somehow as values in the data but they didn’t really make sense to me. Even if a chunk was completed, a user could’ve watched it over multiple times/days. Users can also rewatch chunks, so which date counts?
To me it made the most sense to just say, we can narrow dates by adjusting the call we make so that the raw data that we begin to work with is already filtered to those dates (although I realize this could make it difficult to adjust these via parameters in Tableau )
TABLE 2: CHUNK VIEWERSHIP PER USER
For example, in analyzing the data above (excel)...
averages in yellow
totals in green
As we can see, chunk 3 has notably higher total and average viewership than its neighbours.
Also, looking at the first table shows that it has a lot of unique viewership as well
...and indeed going into the content of the video, this section is a walkthrough of a problem solution - so it makes sense that viewership would be more concentrated
Chunks 9-12 also look interesting - in context of the video it's yet another walkthrough of a problem solution followed by a steep dropoff in chunk 13, when the walkthrough is finished, all math disappears from the slides in favour of images
Chunks 17-19 see a pretty major drop-off both in unique viewership as well as totals/averages - and in the context of the video, this is when the instructor ends their slides and the main lecture
In my limited experimenting with COMM290, I found that if a chunk has some combination of:
… it tends to be indicative of a more-engaged-with part of the video. (usually the solutions to an example problem). Pretty cool!
Nov 4th Update and Notes
I’ve been able to take the video timeline and break it down into “chunks”:
5% of total video
20 chunks
[
{
'session_id': 84cef7f7-f168-4a80-9a5a-ac100144db29,
'chunk_index': 0,
'chunk_start': 0.0000,
'chunk_end': 1.5596,
'chunk_id': 84cef7f7-f168-4a80-9a5a-ac100144db29-0
},
{
'session_id': 84cef7f7-f168-4a80-9a5a-ac100144db29,
'chunk_index': 1,
'chunk_start': 1.5596,
'chunk_end': 3.1192,
'chunk_id': 84cef7f7-f168-4a80-9a5a-ac100144db29-1
},
...
...
...
{
'session_id': 84cef7f7-f168-4a80-9a5a-ac100144db29,
'chunk_index': 19,
'chunk_start': 29.6324,
'chunk_end': 31.1920,
'chunk_id': 84cef7f7-f168-4a80-9a5a-ac100144db29-19
}
]
I’ve also been able to go through each user and compute a unique “coverage” list: a list of tuples representing viewing ranges across the timeline
So even if someones viewing activity has a lot of entries like this:
Their coverage would look like this:
[(0.0, 31.305298999999977)]
i.e. viewed the entire video
notice that times (seconds) are sometimes off by a few milliseconds
Or somebody who’s has gaps in their viewing would appear something like
[(0.0, 3.316318), (10.190626, 31.289296999999983)]
i.e. watched everything except for between 3.31 and 10.19
I’m still noticing ironing out a few bugs but I’m close. So now we know, for each user, what parts of the video they did/didn’t watch.
I’ll also be able to compare this to the chunks list, and see how many unique users viewed each chunk (that’s next!)
HOST keyword in env causes problem (not reading properly input HOST). Should change name for now.
Changing env to THE_HOST and calling 'THE_HOST' in settings.py seemed to work
in error, was setting host
HTTPConnectionPool(host='x86_64-apple-darwin13.4.0', port=80)
for all date outputs, include UTC (original from API) and Vancouver time
I called this panopto-data-api because in an abstract sense, it's an interface for Panopto data.
Is this terminology accurate? misleading?
Low priority, just food for thought
As title
Revisit implementation for sub-folder traversal and document
Think about how it should work given requests we get
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.