Commit Graph

215 Commits (master)

Author SHA1 Message Date
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
Mike Lang 40f6a72ad7 thrimbletrimmer: Add keyboard shortcuts -/= to adjust playback speed 5 years ago
Mike Lang fd35c0dc20 thrimbletrimmer: Have a download link instead of a iframe
The iframe doesn't always work, this is more reliable.
5 years ago
Mike Lang c9f2e8e0a5 thrimbletrimmer: Preserve trim timings when re-loading playlist
Useful if you've already cut the start
but want to extend the range of times before cutting the end.
5 years ago
Mike Lang 3eb0ed2350 thrimbletrimmer: Fix bug where "Draft Saved" is shown after a failed submission 5 years ago
Mike Lang 8739a7a24a thrimbletrimmer: Popup on save draft
so we know it succeeded
5 years ago
Mike Lang 2342b66db0 thrimbletrimmer: Don't open advanced pane if upload_location is null 5 years ago
Mike Lang 8d3c863a49
Merge pull request #138 from ekimekim/mike/thrimbletrimmer/cancel-upload
Allow thrimshim to safely cancel a job while it is cutting
5 years ago
Mike Lang 58d09b419c thrimbletrimmer: Add option to select cut type for Download button
In most cases, you want "rough" because you're going to trim the resulting
video later anyway.
5 years ago
Mike Lang cc48f17348 thrimbletrimmer: Add cancel row button using the new thrimshim functionality 5 years ago
Mike Lang bdbfd37c51 thrimbletrimmer: Pad start and end times 5 years ago
Mike Lang a68684c24c thrimbletrimmer: Fix use of tabs again 5 years ago
Mike Lang 26f91a02ea thrimbletrimmer: Parse durations as HH[:MM[:SS]] instead of [[HH:]MM:]SS
ie. 1:00 is 1 hour, not 1 minute.

This is consistent with our use of bustime everywhere else.
5 years ago
Mike Lang a6ee746e6b thrimbletrimmer: disable autoplay 5 years ago
Mike Lang 5d5358019a thrimbletrimmer: Improve bustime/ago parsing
Allow partial entries like 5:00 instead of 0:05:00.
5 years ago
Mike Lang ff43e186f6 thrimbletrimmer: Support "time ago" as a third time format
This is especially useful for the re-streaming page, and is default there.
5 years ago
Mike Lang d4c8974601 thrimbletrimmer: Some video controls tweaks
Allow fullscreen

Hide disabled picture-in-picture control

Autoplay
5 years ago
Mike Lang 47ac1c7ff8 thrimbletrimmer: Add second page built for watching stream with a delay
This is for giffers, etc.

It shares the codecase but uses a flag to say whether to affect all the editor inputs.
5 years ago
Mike Lang 671079861a thrimbletrimmer: Fix lack of usage of var throughout code
Chalk this one up to not knowing the language.
You need to declare variables as var otherwise they're implicitly globals.

This leads to many bugs where if a function runs twice at once it'll do weird things.
5 years ago
Mike Lang 8accc1338e thrimbletrimmer: Refactor how time formatting is handled
Instead of having two input fields and switching between them,
we just have one and re-write the value on switch.

We also handle invalid or empty dates a LOT better, and clean up some
other things around query strings.
5 years ago
Mike Lang 316504899a thrimbletrimmer: Fix a bug on initial load
loadPlaylist was happening before bustime was set, resulting
in the wrong times being loaded.
5 years ago
Mike Lang 971841d73b thrimbletrimmer: Move last bit of code into IO.js
since everything else is there anyway.
5 years ago
Mike Lang 934c640a04 thrimbletrimmer: Display edit notes below the video
In nice distracting pink so they're sure to see it.
5 years ago
Mike Lang f7f07a2688 Add /defaults to thrimshim, use it to populate config stuff in thrimbletrimmer
Thrimbletrimmer needs to know stuff like the bustime start time,
default channel, even if it's not looking at a specific row.
5 years ago
Mike Lang d03120548b thrimbletrimmer: Always respect the channel given by thrimshim 5 years ago
Mike Lang 6cfad08a26 thrimbletrimmer: Restore previously saved advanced options
and show the advanced pane if any are non-default.
5 years ago
Mike Lang 728ede61c0 thrimbletrimmer: Don't leave page after saving edits 5 years ago
Mike Lang 983e3a61c6 thrimbletrimmer: also pause on spacebar
Most video players pause on space, so we make sure it works if they try
5 years ago
Mike Lang 775799944a thrimbletrimmer: Don't hide the video player on error
It means you can't read the error, and it's more confusing.
5 years ago
Mike Lang 7dea1f0cdb thrimbletrimmer: Fix some typos in the new error handling 5 years ago
Mike Lang da3cc24ed1 Pass a list of upload locations from thrimshim to thrimbletrimmer
with the first one being the default.
5 years ago
Mike Lang b0ea790407 thrimbletrimmer: Misc cleanup 5 years ago
Mike Lang 93fc202394 thrimbletrimmer: submit button: clean up, error handling, no-auth mode 5 years ago
Mike Lang cdd286c0ee thrimbletrimmer: manual link and download buttons: cleanup, error handling, no-auth mode 5 years ago
Mike Lang b06721df07 thrimbletrimmer: Update bustime/UTC values when you switch
so if you change one it changes the other.

Also in general takes those conversions and makes them available as functions for re-use.
5 years ago
Mike Lang 91c67899ee thrimbletrimmer: Read title prefix from thrimshim and display it greyed out
This gives a visual indicator showing the editor what prefix the title will have.
It also allows us to set the correct max title length.
5 years ago
MasterGunner 52e456e0c1 Draft Button and Dashboard Columns 5 years ago
mg 936a2387c8 Change to how default channel is handled. 5 years ago
mg ca11e59511 Adding channel/start time info to Thrimshim to pass to Thrimbletrimmer. 5 years ago
mg ae3d82026e Removed extrenuous .bak files, ensured newline at the end of files, and changed thrimbletrimmer to be separate from services. 5 years ago
mg 7876880629 Removing "experimental" cutting feature 5 years ago
mg dee140aec0 Changes to dashboard, and adding reset/manual link functions. 5 years ago
mg 2611ec5916 Added padding to BusTime conversion. 5 years ago
mg e49ec90d3e UI Improvements 5 years ago
mg 950204aec6 Added setting of trim times on page load. 5 years ago
mg aed2a77a88 Initial merge of Thrimbletrimmer proper into repo. 5 years ago