Stella, of @StellaHikes, is
attempting to complete a US long-distance hiking Calendar Year
Triple Crown. That is, she's trying to hike the AT, PCT, and
CDT--7,875 miles of trail--in one year.
And she's bringing us along for the ride on her YouTube
channel.
I'm only on day 8 of her attempt, but I'm really enjoying her
video-a-day format. Stella's superpower is her
honesty: she's willing to give us a behind-the-scenes look at her
undertaking, warts and all.
The countless challenges she is facing on this adventure are
classic.
She needs to push for miles, but she also needs to give her body
rest to avoid injury. She needs to carry as little as possible, but she also
needs to have the gear to stay warm and the food to stay fueled. She
needs to stay focused on the trail, but she also needs to capture
and share her effort online. And the list goes on.
There are plenty of videos on the web that talk about how to solve these
challenges. But in Stella's case, we get something far more rare: we
learn by her example. She's showing, not telling, and to me that
makes her video stream not just entertaining, but also an immensely
valuable learning tool.
Easy to Enjoy, Hard to Watch
So I'm in! As long as Stella is on the trail, I want to follow
along. Unfortunately, YouTube is far from the ideal platform for watching
episodic content like Stella's daily videos.
For one thing, YouTube prioritizes new content, so it's pushing me to
watch Day
65 when I'm still on Day 8.
And related to this, navigating YouTube to get to Day 8 is a minefield of
distractions. On my way there, it's easy to get sucked into
any number of other videos.
Ideally, YouTube would recognize that content like this is
best consumed not as a traditional channel, but as a
podcast. Podcast
Addict, for example, seamlessly resumes where I left off, and is
set up for distraction-free access.
Whether I consume a podcast in
days, months, or years, Podcast Addict will patiently queue up future
content and wait for me to consume it at my own pace.
A bit of Googling turned up Podsync, an open-source
platform for podcastifying YouTube content. Perfect,
right? Unfortunately, tools like Podsync rely on extracting
raw video from YouTube, before processing it and
republishing it as a podcast. This is against YouTube's policies and
not officially supported. Even if I could get Podsync
running, it would remain a fragile solution that could stop working
at any time.
An API, DIY Solution
All hope isn't lost. Using YouTube's API, I was able to rig
up my own version of a watch queue that offers distraction-free access. Here's how I did it.
First, I created a new playlist called StellaHikes
CYTC Watch Queue. I added the current video I was watching; Day
5 at the time.
Next, using youtubeassist
(introduced here),
I figured out Stella's uploads playlist.
$ youtubeassist -a channel -n StellaHikes -v |
jq -r '.items[] |
.contentDetails.relatedPlaylists.uploads'
UU_xoSErGgqXfYzpTFE1JDbg
The 'uploads' playlist is a bit of magic on YouTube. On one hand, it's a playlist
like any other, so you can view it in the standard
playlist
player. On the other hand, it can't be manually
maintained. YouTube automatically adds to it
when a user uploads a video to their channel. While I have
plenty to quibble about with YouTube, this implementation is pretty genius.
Next, I added a new option to youtubeassist:
-a playlist-populate. This option grabs videos from a source
playlist and adds them to a destination playlist. The command tries
to be smart, taking the newest video in the destination playlist as
a reference point. Only videos that are newer than this in the
source playlist will be added.
This bit of logic ensures that new videos on @StellaHikes will be added
to my watch queue, while those that I've already watched will be
skipped.
Every so often I run this command to pull in more videos from
Stella's channel to my watch queue:
$ youtubeassist -a playlist-populate -s UU_xoSErGgqXfYzpTFE1JDbg -d PLBuxEPZOHHKYytW39ZPXDRR6fan7ygCL9
UExCdXhFUFpPSEhLWXl0VzM5WlBYRFJSNmZhbjd5Z0NMOS42MjYzMTMyQjA0QURCN0JF|I wanted breakfast so bad! AT Day 66 CYTC
UExCdXhFUFpPSEhLWXl0VzM5WlBYRFJSNmZhbjd5Z0NMOS40MDNEMzA0QTBFRThFMzBE|Big climb in Massachusetts! AT Day 65 CYTC
UExCdXhFUFpPSEhLWXl0VzM5WlBYRFJSNmZhbjd5Z0NMOS42RTNCOEMxREI3Q0VDMjU2|It happened suddenly ⛈️ AT Day 64 CYTC
I've now solved half the dilemma: I have a playlist with the next
video to watch at the top and new videos auto-added below.
This leaves the question of how to avoid distraction within YouTube.
To address this, I visited the
watch
queue playlist in Chrome on my mobile phone:
Clicking on the three dots menu, I selected Add to Home
Screen.
This put an icon on my phone's home screen that, when clicked, will
launch YouTube's playlist viewer. At the top will be the video I'm currently
watching.
This isn't as streamlined as a proper podcasting app, but it gives me a
temptation-free way to jump
right to where I left off watching.
Now all I have to do is sit back, watch, and root for Stella. C'mon girl, 136 miles
down, 7,739 more miles to go! You got this!