The Making of JaVale McGee’s “Life in the Bubble” Vlog

Veteran video producer Devin Dismang walks us through his daily process for creating the best behind-the-scenes NBA bubble show.

July 30, 2020

By Trung Phan (@TrungTPhan)


In mid-July, LA Lakers center JaVale McGee was packing his bags for a flight to Orlando.

With the NBA season back on, the 12-year veteran was preparing for 2-3 months away from his long-time girlfriend and 4-year old daughter.

McGee sent a message to a friend, “do you think I should bring a camera?”

The friend was Devin Dismang — a veteran video producer and McGee’s head of content — and he said “yes, you should.”

“I met JaVale [in 2016] while doing production and content creation for the Golden State Warriors,” Dismang tells me on a recent call. “JaVale always had interest on the video side. He’d constantly ask why a shot was taken a certain way. The entire creative process intrigued him.”

The two have been creative partners since and the equipment that McGee brought to Disney World — where the NBA restart is taking place — has proven very fortuitous.

McGee’s footage covers every detail of bubble life, including:

  • tossing half-court shots with Lebron James
  • doing COVID-19 tests with the health staff
  • working out with Jared Dudley
  • eating JR Smith’s eggs
  • joking with Dwight Howard
  • playing Call Of Duty with other NBA players
  • fishing with Alex Caruso (yes, there’s fishing at Disney World)

Since releasing the first “Life in the Bubble” vlog, McGee’s YouTube subscriber count has exploded from 37k to 469k (and counting).

The series is now up to 8 videos, with an impressive 1.5m views per episode.

Chicago-based Dismang — who celebrated three championships with the Warriors over a 5-year stretch (2014-2019) — walked us through his creative process to document McGee and the Lakers’ quest for an NBA title.


JaVale’s Equipment

Left to Right: Sony a6500, Sony a7, Call Of Duty, Go Pro Hero 7

McGee brought three cameras to the bubble:

  1. Sony α6500
  2. Sony α7
  3. Go Pro Hero 7 (for the water-related shots)

Devin Dismang (DD): “JaVale is intelligent as hell and creative as well. But he’s never really been comfortable filming himself. To make the footage natural, I told him to imagine that he’s talking to people all the time. I also asked him to take videos of everything. Walking around campus and the hotels. Eating. Working out. Playing games. Capture everything.”


Dropbox For File Management

Dismang uses Dropbox to share high-res videos with his athletes

Dismang works with a number of athletes. In addition to McGee, he also does content for another Lakers player (Quinn Cook) as well as a Denver Nuggets player (Troy Daniels).

Unsurprisingly, NBA players aren’t really the “scrolling through emails while hunched over a desktop” type. To get into their daily workflows, Dismang handles all file management via Dropbox and communications via text (or FaceTime).

It’s not just the day-to-day footage, either.

Each athlete is set up with their own Twitch streaming channel (Call Of Duty is a favourite) and Dismang also receives select game footage from the teams themselves.

In total, he’ll get up to 30-40 gigs of raw video files from each athlete a day.

DD: “It’s hard to send high-res videos through email so for each of my athletes, I set up a shared Dropbox with a folder that just says ‘Drop New Footage Here’. I tell them to text whenever a new file has been added. I’m in central time, so I’ll get files as late as midnight and I’ll work through them until it’s time to sleep.”


The Magic Happens In Adobe

Screenshot of Dismang working his Adobe magic

Dismang tells me that he spends anywhere from 8-12 hours a day in Adobe Premier Pro, the industry-standard video editing software. He also uses the companion Adobe After Effects for graphics.

The YouTube algorithm rewards longer videos. So, for the JaVale vlogs, he’s targeting a 10-20 minute run time (which typically comes out of 3-4 hours of raw footage).
Anthony Davis “Purple till the day I die” (9:02 – 9:11)

DD: “I’m up at around 10am CST. I’ll get right to my computer to see if any new files have been loaded. Then I have to go through all the clips. It’s quite a tedious process. Of the 12 hours I spend a day going through the videos, half of it will be to just select clips. I can’t speed up the video, either, because I might miss something as not all the audio is clear. As an example, there’s this great clip where Anthony Davis says ‘Purple till the day I die’ [referring to the jersey color of his scrimmage team]. I had to slow the video down a few times to catch what he was saying. I wouldn’t have caught it if I was watching at 2x or faster.”


Music From Pierre (aka JaVale’s Alter-Ego)
Clip of Pierre’s “Off the Flow” (2:39 – 2:49)

When not hooping, McGee is an accomplished music producer, working under the alter-ego Pierre. His credits include writer and producer on the Justin Bieber track “Available”.

Each vlog that Dismang produces includes Pierre’s music (including the clip above).


Final Review, YouTube Analytics & Send

JaVale McGee’s YouTube page

There are a lot of stakeholders in the making of these vlogs.

The teams, the other players and the league.

To ensure that his cuts are all good, Dismang sends the completed video to McGee for a final review. When he receives the go-ahead, Dismang dives into the YouTube Analytics and decides when to release the final product.

DD: “We are bringing a lot of characters into the show and we want to get everyone involved. But, at the same time, we are respectful of everyone’s situation so we make sure that the other players can review the footage. Before publishing the video on YouTube, we’ll look at the analytics and decide when the best time to reach our audience is. If the numbers are telling us our subscribers are most active on Wednesday afternoon, then that’s when we’ll hit send.”


What’s Next?

People have told Dismang that they “feel like they are part of the Lakeshow” while watching the vlogs.

As they target a goal of 1m subscribers (subscribe here), the type of content and storytelling that brings out that feeling will remain.

“My ultimate goal remains the same from the beginning,” Dismang says. “I want to tell the story of the athletes. Give a platform to show their creativity. Let people see that they’re just as great outside the b-ball court as they are on it.”

Get the 5-minute roundup you’ll actually read in your inbox

Business and tech news in 5 minutes or less

100% free. We don’t spam. Unsubscribe whenever.


How'd Bezos build a billion dollar empire?

In 1994, Jeff Bezos discovered a shocking stat: Internet usage grew 2,300% per year.

Data shows where markets are headed.

And that’s why we built Trends — to show you up-and-coming market opportunities about to explode. Interested?

We’re shooting our shot…

Start your mornings with The Daily.

Get the freshly baked 5-minute newsletter every day except Saturdays.

It’s filled with the most interesting stories on business, tech, and the internet.

And written for innovators of every industry. Sign up for the news that slaps.

If you don’t like it, unsubscribe any time. Privacy policy.

[email-submission-form redirect-to-home="true" button-text="Join Free" include-trends-opt-in="true" id="main-signup-form" fail-url="" success-url="" default-source="thehustleco" default-campaign="home"]
<script type="text/javascript"> var onloadCallback = function() { grecaptcha.render('verify-your-humanity', { 'sitekey' : '6LdddrcZAAAAALyttpvOqiwQGwq5BNhgDz4tMQGE' }); }; function getCookieValue(a) { var b = document.cookie.match('(^|[^;]+)\\s*' + a + '\\s*=\\s*([^;]+)'); return b ? atob(decodeURIComponent(b.pop())) : ''; } function setHiddenFieldValue(wrappingDiv, searchParams, className, utmName, cookieName, defaultValue) { var el = wrappingDiv.getElementsByClassName(className)[0]; var existingVal = el.getAttribute('value'); var newVal = searchParams.get(utmName) || getCookieValue(cookieName); if ((existingVal == null || existingVal == '' || existingVal == defaultValue) && (newVal != null && newVal != '')) { el.setAttribute('value', newVal); } } function setHiddenFieldValueFromUtm( wrappingDiv, searchParams, className, utmName, defaultValue ) { var el = wrappingDiv.getElementsByClassName(className)[0]; if (el != null) { var existingVal = el.getAttribute("value"); var newVal = searchParams.get(utmName); if (newVal != null && newVal != "") { el.setAttribute("value", newVal); } } } function initForm() { var wrappingDivs = document.getElementsByClassName('email-submission'); wrappingDivs.forEach(wrappingDiv => { var sp = new URLSearchParams(; setHiddenFieldValue(wrappingDiv, sp, 'funnel-source', 'utm_source', 'funnel_source', 'thehustleco'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-campaign', 'utm_campaign', 'funnel_campaign', 'home'); setHiddenFieldValue(wrappingDiv, sp, 'funnel-medium', 'utm_medium', 'funnel_medium', ''); setHiddenFieldValue(wrappingDiv, sp, 'funnel-referral', 'ref', 'funnel_referral', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-a', 'a', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-c', 'c', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-o', 'o', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-oc', 'oc', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-e', 'e', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-f', 'f', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-r', 'r', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-t', 't', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s1', 's1', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s2', 's2', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s3', 's3', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s4', 's4', ''); setHiddenFieldValueFromUtm(wrappingDiv, sp, 'funnel-s5', 's5', ''); var error_message = getCookieValue('funnel_error_message'); if (error_message && error_message.trim() != '') { var error = wrappingDiv.getElementsByClassName('funnel-error')[0]; var prev_email = getCookieValue('funnel_email'); error_message = prev_email + " is not valid. Please try again"; error.innerHTML = error_message; = ''; } }); if (false) { initCaptchaFormV2(); } } function initCaptchaFormV2() { var v3RecaptchaResponseEl = document.getElementById('recaptcha-response-v3'); v3RecaptchaResponseEl.parentNode.removeChild(v3RecaptchaResponseEl); var wrappingDiv = document.getElementById('main-signup-form'); var subForm = wrappingDiv.getElementsByClassName('email-submission')[0]; var captchaVersion = document.createElement('input'); captchaVersion.class = 'g-recaptcha hidden-input'; captchaVersion.type = 'hidden'; = 'g-recaptcha-response-v2'; captchaVersion.value = 'true'; subForm.appendChild(captchaVersion); var captchaEl = document.createElement('div'); = 'verify-your-humanity'; subForm.appendChild(captchaEl); var captchaApiScriptEl = document.createElement('script'); captchaApiScriptEl.src = ''; captchaApiScriptEl.async = true; captchaApiScriptEl.defer = true; document.head.appendChild(captchaApiScriptEl); } function appendCheckboxes() { var optInDivs = document.querySelectorAll('.trends-opt-in'); optInDivs.forEach(el => { if (el.getElementsByClassName('trends-opt-in-checkbox').length < 1) { var checkbox = document.createElement('input'); checkbox.setAttribute('class', 'trends-opt-in-checkbox'); checkbox.setAttribute('type', 'checkbox'); checkbox.setAttribute('name', 'trends_opt_in'); var label = document.createElement('label'); label.setAttribute('class', 'trends-opt-in-text'); label.textContent = "Yes, I'd like to receive updates on market opportunities before they explode from Trends by The Hustle"; el.appendChild(checkbox); el.appendChild(label);; } }) } window.addEventListener('DOMContentLoaded', (event) => { var funnel_email_cookie = getCookieValue('funnel_email'); if ( (true) && (funnel_email_cookie != null && funnel_email_cookie != '') ) { window.location.replace('/home'); } initForm(); if (true) { appendCheckboxes(); } }); </script> <div class="email-signup" id=main-signup-form> <div class="funnel-error" style="display:none;"></div> <form class="email-submission" action="" method="post" autocomplete="email"> <div class="email-form-wrap"> <input class="funnel-source hidden-input" type="hidden" name="source" value="thehustleco"> <input class="funnel-campaign hidden-input" type="hidden" name="campaign" value="home"> <input class="funnel-medium hidden-input" type="hidden" name="medium"> <input class="funnel-referral hidden-input" type="hidden" name="referral_code"> <input class="funnel-fail-url hidden-input" type="hidden" name="fail_url" value=""> <input class="funnel-a hidden-input" type="hidden" name="a" value=""> <input class="funnel-c hidden-input" type="hidden" name="c" value=""> <input class="funnel-o hidden-input" type="hidden" name="o" value=""> <input class="funnel-oc hidden-input" type="hidden" name="oc" value=""> <input class="funnel-e hidden-input" type="hidden" name="e" value=""> <input class="funnel-f hidden-input" type="hidden" name="f" value=""> <input class="funnel-r hidden-input" type="hidden" name="r" value=""> <input class="funnel-t hidden-input" type="hidden" name="t" value=""> <input class="funnel-s1 hidden-input" type="hidden" name="s1" value=""> <input class="funnel-s2 hidden-input" type="hidden" name="s2" value=""> <input class="funnel-s3 hidden-input" type="hidden" name="s3" value=""> <input class="funnel-s4 hidden-input" type="hidden" name="s4" value=""> <input class="funnel-s5 hidden-input" type="hidden" name="s5" value=""> <input class="funnel-success-url hidden-input" type="hidden" name="success_url" value=""> <input id="recaptcha-response-v3" class="g-recaptcha hidden-input" type="hidden" name="g-recaptcha-response" value=""> <input class="signup-email" type="email" name="email" placeholder="Your email address" required autocomplete="email"> <input class="email-submit" type="submit" value="Join Free"> </div> <div class="trends-opt-in"></div> <div submit-success> <template type="amp-mustache"> <p class="c-message c-message--success">Thank you for subscribing.</p> </template> </div> <div submit-error> <template type="amp-mustache"> <p class="c-message c-message--failed">Your submission failed. Please try again!</p> </template> </div> </form> </div>