Commit Graph

195 Commits (dde76968779bf60c202c7fb65f65b00d9879253a)

Author SHA1 Message Date
ElementalAlchemist dc4e7f0835 Implement chat transcript for editor and chat replay for restreamer page 2 years ago
ElementalAlchemist 2939089edd Upgrade luxon 2 years ago
ElementalAlchemist 8c872f6999 Add image preview generation 2 years ago
ElementalAlchemist 9fa898d5aa Fix doing the time conversion before the data required for the time conversion is loaded 2 years ago
ElementalAlchemist 0e787677a0 Load thumbnail data for video 2 years ago
ElementalAlchemist 64f0ac714f Set up thumbnail editing with data plumbing through 2 years ago
Mike Lang 0681902789 Trigger download of the image file in a hacky way
Apparently this is the Recommended Approach for doing this - you create an <a> element,
set its attributes, then temporarily add it to the page and click() it.

The downloads.download() api we found earlier is exclusive to Chrome Apps.
2 years ago
Mike Lang adb6e2ae10 thrimbletrimmer: Add button to download current frame
It always uses source quality and downloads as a PNG.

We use the browser.downloads api to construct the URL on demand.

Note we might not always get the exact right frame in 60fps streams,
we might get one before or after (and "frame seek" in the editor skips 2 frames in this case).
2 years ago
ElementalAlchemist 1cb819a4c5 Use more native HTML options for editor keyboard shortcuts help 2 years ago
Mike Lang ffae321d04 editor: Make public checkbox "unlisted" instead, with negated meaning
less confusing
2 years ago
Mike Lang bd948235fb thrimbletrimmer: Add advanced submission option for "public" videos
Note that the default is true, so we only expand the advanced pane if it's false.
False corresponds to uploading a video as "unlisted".

Also mark it as modifyable.
2 years ago
Mike Lang ac6612fb85 Add ability to submit video as MODIFIED to thrimbletrimmer 2 years ago
ElementalAlchemist a942af9cb4 When padding video in editor, maintain video playback position in the same spot when possible 3 years ago
ElementalAlchemist 4bac4a46d0 Add stream name to restreamer URL 3 years ago
ElementalAlchemist 210ae6f92a Support linking to specific times in restreamer 3 years ago
ElementalAlchemist 8e8ace6f3c Properly set initial video quality 3 years ago
ElementalAlchemist e515c448eb Fix loading chapter marker setting when loading a saved draft edit 3 years ago
ElementalAlchemist 1ffb9ae2e1 Fix saving quality levels on change 3 years ago
ElementalAlchemist 965a3dfbd3 Fix range removal 3 years ago
ElementalAlchemist 59567f9404 Fix issue where pressing space for video pause/unpause can scroll the page 3 years ago
ElementalAlchemist 91cc331128 Move the error selecting times on restreamer to be common to both pages 3 years ago
ElementalAlchemist ac79206ba0 Don't reload when canceling or resetting 3 years ago
ElementalAlchemist 1ff1bcf0ab Add keyboard shortcuts to mute, set playback rate to slowest speed, and set playback rate to fastest speed 3 years ago
ElementalAlchemist d635a7941c Add support for generating chapter markers in the video description 3 years ago
ElementalAlchemist e2fb245da2 Correctly handle padding of range times when padding video load time over holes 3 years ago
ElementalAlchemist 0709082af7 Show a confirmation dialog when closing the page while a submission is still pending 3 years ago
ElementalAlchemist c1e20de813 Fix loading videos with no end time 3 years ago
ElementalAlchemist 2698b7fd74 Fix handling of lack of end time for a row 3 years ago
ElementalAlchemist e96b77992f Add one-second jump keyboard shortcuts 3 years ago
ElementalAlchemist f798b689a4 Add keyboard shortcut for setting playback speed to 1x 3 years ago
ElementalAlchemist 481b934eb8 Fix losing much of video human time when converting a time containing hours 3 years ago
ElementalAlchemist b1b8ef8973
Add fullscreen functionality to Thrimbletrimmer video player (#250)
* Add fullscreen functionality to Thrimbletrimmer video player

* Fix issue where clicking on fullscreen video pauses and unpauses instead of doing just one
3 years ago
ElementalAlchemist a8f9611d93 Update quality indicator when keyboard shortcuts are used to change the video quality 3 years ago
ElementalAlchemist 78b9b5c68d Maintain playback rate across video reloading 3 years ago
ElementalAlchemist 75e0ba56ae Fix error when loading a new playlist (when fragments aren't yet loaded by hls.js) 3 years ago
ElementalAlchemist f7c9eb5e5b Fix incorrect variable reference 3 years ago
ElementalAlchemist c44da044a8 Make the waveform clearer/more useful at larger resolutions by requesting a larger waveform image 3 years ago
ElementalAlchemist d20f37266f Add a visible error when trying to load a time range with no video content 3 years ago
ElementalAlchemist 4fb8548aba Make muting work 3 years ago
ElementalAlchemist 4e35fed5f2 Handle when the video stops playing due to load issues when seeking 3 years ago
ElementalAlchemist 497c975e3e Implement custom video controls for the new player (so we can better control styling) 3 years ago
ElementalAlchemist 56699d5737 Put quality name in the place where clients read it (or at least HLS.js does) 3 years ago
ElementalAlchemist ed2ff1b9a5 Make HLS.js not combine different quality levels into one 3 years ago
ElementalAlchemist e2487f61c0 Fix interpretation of times located in a hole in the video segments 3 years ago
ElementalAlchemist 5a9f4502c2 Set default time zone for Luxon instead of setting the time zone on each DateTime object 3 years ago
ElementalAlchemist 0340f06170 Initial transition from VideoJS to HLS.js as the video player 3 years ago
ElementalAlchemist 699bea5e9e Fix clip bar placement after video is extended 3 years ago
ElementalAlchemist 394a6c72e2 Fix issues with updating the ranges when the time range updates
There were a couple issues with this:
- The range data was updated in the wrong direction
- If no adjustments were made, the problem was masked by the range data reapplying from draft data. However, if adjustments were made, the adjustments were overwritten (or, if ranges were added, partially overwritten) by the defaults.
3 years ago
ElementalAlchemist 5f79605ee6 Check title and description fields on load 3 years ago
ElementalAlchemist ea5d17df02 Add time conversion functionality
ekim mentioned a workflow during editor training in which he may want to have times be converted for use on the edit page. The restreamer doesn't otherwise currently have the time conversion functionality it did before (which was in the form at the top and was somewhat annoying); this adds time conversion functionality.
3 years ago
ElementalAlchemist 6e3b2e767e Store the user's volume level 3 years ago
ElementalAlchemist 8b475e0bd9 Show real-time errors for issues with video title or description 3 years ago
ElementalAlchemist 6899af4251 Add play from end to ranges 3 years ago
ElementalAlchemist 14900bed4a Fix error updating the submission success message 3 years ago
ElementalAlchemist 20518af627 Fix problems with the Submit Anyway button when sheet data is changed 3 years ago
ElementalAlchemist 058d7b9355 Fix issues with help box being unclosable when stuff moves around by giving it its own close button 3 years ago
ElementalAlchemist d37175f914 Switch date/time handling from JS Date objects to a datetime library to fix padding bug with DST changeover 3 years ago
ElementalAlchemist da2ed19b9d Now that VideoJS has been pared all the way down, move it to more standard directories 3 years ago
ElementalAlchemist cc49e703dc Do a general cleanup of time conversion names to make times overall consistent 3 years ago
ElementalAlchemist 86494797e9 Apparently JavaScript hates its own events 3 years ago
ElementalAlchemist af25a90c4a Update padding video on load (when edited outside the event range) to use multiple time ranges 3 years ago
ElementalAlchemist 5168fd120d Fix incorrect loop variable declaration preventing some load processes 3 years ago
ElementalAlchemist 72227fa366 Fix defaulting ranges to whole video to avoid old start and end fields 3 years ago
ElementalAlchemist 26b8efc093 Fix issue with download link on edit page when a range timestamp is at the exact end of the video 3 years ago
ElementalAlchemist 53bd932963 Update scripts for wubloader endpoints supporting multiple ranges 3 years ago
ElementalAlchemist 37f94cb754 We're not going to have transitions this time, so remove the transitions from the ranges for now 3 years ago
ElementalAlchemist eb9bc708cf Show errors about ranges so that the user knows to fix them 3 years ago
ElementalAlchemist 491d8dc3a8 Improve the editing experience for live videos
Apparently we weren't using VideoJS's new live UI (I thought we were), which caused issues like "the progress bar is not present on the video."
3 years ago
ElementalAlchemist 94e1ecdd6d Add waveform marker for current video position 3 years ago
ElementalAlchemist 609597a547 Add a way to jump player time to a range start point 3 years ago
ElementalAlchemist 497c7625dc Fix default formatting of negative times 3 years ago
ElementalAlchemist 4e4c2f4a9f Handle loading events with no end time (yet) 3 years ago
ElementalAlchemist 3fe2848e60 Add video load time modifications, and account for run-to-live 3 years ago
ElementalAlchemist 344ca041a3 Fix formatting of bus time with milliseconds 3 years ago
ElementalAlchemist 72b34945bc Handle expanding video on load when a draft video was already saved outside the event start/end times 3 years ago
ElementalAlchemist 9a12134915 Move beta Thrimbletrimmer code to primary Thrimbletrimmer code 3 years ago
Mike Lang aab8cf2f0f Set up plumbing for multi-range videos and implement no-transition fast cut videos only
This is the simplest case as we can just cut each range like we already do,
then concat the results.

We still allow for the full design in the database and cutter, but error out if transitions
is ever anything but hard cuts or if it's a full cut.

We also update the restreamer to allow accepting ranges, however for usability we still allow
the old "just one start and end" args.

Note this changes the thrimshim API to give and take the new "video_ranges" and "video_transitions" columns.
3 years ago
Mike Lang 2467a64ec3 thrimbletrimmer: Fix missing int parsing in duration parser
yay javascript
3 years ago
Mike Lang 783c571cb2 thrimbletrimmer: Fix stupid duration parsing typo introduced in cleanup 3 years ago
Mike Lang 61f55d03fb thrimbletrimmer: Add waveform image below video 3 years ago
Mike Lang 4db8c8f61c thrimbletrimmer: undo bad refactor 3 years ago
Mike Lang 714a16bac4 thrimbletrimmer: Use template literals and other cleanup
Now that we've fixed the function declarations, prettier has also removed the semicolons on them
3 years ago
Mike Lang a69bee0548 thrimbletrimmer: Replace var with let/const and other related bits 3 years ago
Mike Lang 241d302220 thrimbletrimmer: Use "function NAME(...)" instead of "NAME = function (...)"
It's less confusing and more like other languages
3 years ago
Mike Lang ce73f7b0ea Auto-format JS files with prettier
Prettier is a tool for formatting JS files.
We add a minimal configuration to suit our purposes, and run it on all our JS files.

The main things this corrects is mixed tab and space indent issues (replacing fully with tabs),
overly long lines, inconsistent quote usage (prefers double-quotes instead), and missing semicolons.
3 years ago
Hubbe 36a5387e26 Change wording on edit submitted alert()
An edit has been submitted for the video. The video hasn't been submitted yet, thrimbletrimmer just informs other components how it wants the edit to be.
4 years ago
Mike Lang 74a38bfaeb thrimbletrimmer: Instead of redirecting on submit, alert but stay 4 years ago
Mike Lang 337111a9ab thrimbletrimmer: Always alert() on errors 4 years ago
Hubbe 27265f3bca Set video.js volume to 50% by default
When the video.js player is ready, set its volume to 50%
4 years ago
Mike Lang f8c877775d Add an alternate manual upload mode specifically for youtube
Adds a built-in "youtube-manual" location which is like "manual" except that it only works
with youtube URLs and populates the video_id column.

The intent is so that we can have playlist_manager manage videos we upload manually,
while still being able to distinguish between that and other manual links that shouldn't
be included (eg. links to third party youtube videos).

This is set when setting a manual link in thrimbletrimmer with a new checkbox, default off.
4 years ago
Christopher Usher 84f7ef71c1 More helpful UI if the database has changed plus ignore changes that are
just white space or capitalisation
4 years ago
Mike Lang 31d241eecc thrimbletrimmer: missing tags arg when submitting 4 years ago
Christopher Usher 27c6b70976 fixes in response to review 4 years ago
Christopher Usher b21a520d3a Checking for changes in the sheet now working in the thrimbletrimmer 4 years ago
Mike Lang c26a87565f Add video tags to thrimbletrimmer
Tags default to tags given on the sheet, but can be modified by the editor.
Tags are represented as a comma-seperated string, and are round-tripped on loss of focus
as a way to validate.
4 years ago
Mike Lang a37d9a0c54 Fix a bug when we fail to load a playlist that prevents loading other playlists 4 years ago
Mike Lang 47584821f9 thrimbletrimmer: Handle null trim in submit
mainly for save draft
5 years ago
Mike Lang 58ff90cefe Further fix for when getRealTimeForPlayerTime is null 5 years ago
Mike Lang 58a2a0402d thrimbletrimmer: Handle getting trim time when no valid trim time is set
Just return null instead
5 years ago
Mike Lang e2f4162ac7 thrimbletrimmer: Fix a bug when trimming controls aren't enabled 5 years ago