Easy YouTube Timestamps From Final Cut Pro X With Python!
Key Takeaways
Easy YouTube Timestamps From Final Cut Pro X With Python
Full Transcript
[Music] welcome back everyone if you're new here my name is brian jenks and today we're going to be talking about how i automated some of my final cut pro youtube video generation workflow final cut pro is some video editing software from apple and it was one of the reasons one of the many reasons i wanted to get and utilize a macbook pro for my youtube channel and general video creation i've used several video editors over the years i've used that you know crappy windows movie maker i've used sony vegas pro i've used davinci resolve and now final cut pro and so far i really really enjoy working with final cut pro it's pretty easy to just get a good quality product done and i've thanks to this what i'm going to show in this video i found a way to automate some of my work for me so that i don't have to basically expend a lot of effort to do something that actually i think does add a lot of value to youtube videos so let's jump into final cut pro and see what all this is about so in final cut pro we have a video clip here in a project and a new library i'm not going to talk about how to use final cut pro because there are lots of videos about that and there's it's not really what i care about talking about today what we're going to talk about is how i automated the generation of time stamps in my youtube videos so in here i just have a single clip in a project in a library in final cut pro really all you need to care about is that there is a clip on the timeline so in this clip you know i can just you know walk through it i can see what's going on i was talking about obsidian in here but what i really want to care about is placing and using markers so there are lots of uses that you can have for markers leaving reminders for yourself letting you know that you fix certain things or separating pieces out of your your timeline of video clips and to be honest i'm not doing stuff on such a scale that i need like chapter markers and several sub projects and all that type of stuff i just make youtube videos so with markers what i do is i just mark separations of clip content and basically what would the timestamps i want in youtube for my video so i could be watching this you know this clip going through it and to make this work what you need to do is actually finish your editing and you know slicing through the document and making sure all the transitions are done and basically you can do this as you go which is how i do it because that's you know do it all in one pass if you're able to that way you want to do watch through the whole video and then add it but manually it's just do it as you go so if you just start from the beginning and go through your video what you can do is place markers and i'm going to use the hotkey so it's just option m and it gives you a little pop-up marker now here you can also have like a to-do or a chapter i don't use these i just use marker and you can see it already defaulted to marker 2 because i already made a marker and deleted it this will cause issues with what i'm going to show you today so really it's just do it once you're you know as you go but as you're done editing because if you remove and replace markers it gets kind of weird just because of how final cut pro exports this stuff but in any case you're just going to see some examples of what i'm doing here so the marker pops up and it is identified as marker 2 but we can actually place our own text in there which is what we're going to do we're going to say this marker is where i want to start the video and i enter and it's done that is the marker i can double click on it there it is done cool so now i can go over here and i can just add another one option m and then say this is where i talk about the thing and then i can go over there and you can see it's pretty quick to just add these as you go so i'm just making editing my video adding markers uh hey that's neat and then let's just do one more final clip starts here awesome so we have our markers in our video and now we're ready to actually do something with this so the old way of doing time stamps was that i would just watch these videos over again on higher speed and manually type out the timestamps and as a programmer i like to automate as much as possible and i i wanted a better way some other programs have some other ways of doing things better and i'm using final cut pro so i'm like how can i do this with final cut pro so i watched some youtube videos and i saw like how some people actually do collaboration with final cut pro like you have a um a cloud hosted folder full of all of your clips and they're all organized and you keep that structure but then what you can do in final cut pro is you can actually export uh where is it um you can export so it's actually here in edit what i had what i didn't do is i didn't have the clip selected but if you have all of your clips selected what you can do is you can say export xml and so this like caught my attention like hey what are we exporting to xml here and so what it actually will save is a final cut pro xml document and so what i'm going to do is i'm actually going to save this into the folder where i keep this which is really just my default movies so i actually have a whole setup process i'll show you in a second cool so i saved it and we're ready to get started so personally i have a script that i wrote to set up a lot of my new projects in final cut pro so if i like vim the new project i have a whole script that basically sets up my new project directories and you know basically sets all this stuff up for me so i don't have to worry about it and i actually copy some of my scripts to do this into a new file so actually i'm going to do this so you can see so i'm going to say a new project and it's going to be youtube test and so now it's in there and inside youtube test is all these items and so what i'm going to do is i'm actually going to grab the clips that we were working on and put them into that folder so now with these files in here this is the final cut pro library and this is the exported fcpx ml so final cut pro xml document what this is is what we're going to be working on now for the tools i'm going to show you you just have to have all this stuff in the same folder it that's all there is to it just put the xml document in here and you're good to go so what does that xml document look like so if i opened up that document let's see here so we need to go to youtube test so inside this directory is fcpx ml so where we we want to look at that so look at untitled that's a lot of stuff okay cool it was one clip it has some markers there's not too much data in here but look at what we have we have marker start duration value you can see where i might be going with this this is plain text in a way so we can easily work with this to extract what we care about and format it with scripting languages however one issue i did run into was the way that time is dealt with right here in final cut pro and these weird calculations these were really difficult to figure out i looked at as much documentation on final cut pro and official apple docs and i could not find anything that could satisfy and give me an answer to figure this out and it was weird but it's several years old but i had to actually find an old project on github from somebody to actually solve and you know fix this issue but then also get me started in the right direction with this so what i found was a very old gist on github and this gist uh i don't remember how old this thing is looks like it maybe last year 2019 but what this person did is they actually were able to extract markers from final cut pro for usage in blender for something and this whole thing is written in python so it's not too like convoluted you can actually read this and sort of make sense of what's going on and somehow it actually solved the the time values in here and maybe one day i'll you know finally fix it so i can just use one type of language and script but i actually just forked this entire gist and made my own and changed out a couple parts because i'm not using this for blender and i made this script read from standard input and output to standard output but i use a little bash helper script to call this and run some information through it and generate a new file so this way i can actually generate time stamps from that xml file and just copy and paste the plain text into youtube so what does this look like in practice well if i go back to my xml document over here i don't need to see this anymore okay so we're going to clear and now what do i have in here i have a timestamps script i have my mark script so the mark script is the python script that i originally forked and then timestamps is what i actually call that's my little bash helper script because that's what i can write better than python weirder than early enough so i call this timestamp script and i pass it the name of the file which is untitled project dot fcpx xml whatever so that's what i'm dealing with i just call timestamps and i pass it a single argument of this file this deals with the python script it all works together and the final output is a plain text file of timestamps so let's call it calling timestamps on untitled project xml run it that's it so now when i do ls dash l now i have youtube timestamps let's look at what that looks like now let me zoom in for you guys and zoom the text okay so we're going to look at what the timestamps look like okay eight seconds in where i want the video to start 38 seconds let's verify that this is actually what we wanted it to be so i'm going to take it over here cool put that over there and take final cut pro put it over there all right that's as good as we're going to get so i'm going to say eight seconds let's see where's this clip at to do it'll actually snap there i can just click eight seconds 38 seconds what do you know right on the dot and so what the scripts do is it finds the actual values in those markers let me open up another tab here actually let me just go back so xml so what it actually does is it strips out and calculates the actual difference in time and duration well not duration but it actually finds the start time and tells you what the start time is and then takes the value out of here and parses all this grabs those values and then spits it out into plain text in the format that the youtube timestamps actually work which is this format where we just have the actual name of the stamp and the actual text and it does have the uh ability to calculate hours as well which is really all you need and if you don't want that in there i mean i mean i guess if you're in vim you know you you if you know you know you could always just do control v gg and then x and there you go you're you're done but you can just keep that and it will all work fine and basically i just run that script on my exported xml document when i'm done with my editing i run this script on it and now i have all of my timestamps to just copy and paste and you can find this script on my github right here and i will post a link to this in the pinned comment below if you'd like to use it i did this is a fork of the original but instead of going to blender just goes to plain text so really you just call the the bash script and have these in the same directory as the xml document and that's all you need and it'll output to youtube timestamps so hopefully you found this interesting and yeah if you'd like to chat about this or anything else you can check out my discord server link is going to be in the description below and a quick note before i go thank you for the patrons that support this channel thank you devon alberto klaus and brandon thank you guys for supporting the channel and i will catch you all in the next [Music] you
Original Description
▬▬▬▬▬▬▬▬▬▬ ► CHECK THESE OUT ◀︎▬▬▬▬▬▬▬▬▬▬
📧️ NEWSLETTER: https://bryanjenkstech.ck.page/d4ec0713d5
💬 DISCORD: https://discord.gg/MxCVshN
🗣️ SOCIALS: https://streamerlinks.com/tallguyjenks
▬▬▬▬▬▬▬▬▬▬ ► SUPPORT THE CHANNEL ◀︎▬▬▬▬▬▬▬▬▬▬
👨🏻💻️ GITHUB SPONSOR: https://github.com/sponsors/tallguyjenks
🙏🏻️ AMAZON WISHLIST: https://www.amazon.com/hz/wishlist/ls/17FRLE35NC7G8?ref_=wl_share
😇 PATREON: https://www.patreon.com/bryanjenks?fan_landing=true
🙌🏻️ YOUTUBE MEMBERSHIP: https://www.youtube.com/c/BryanJenksTech/join
☕ BUY ME A COFFEE: https://www.buymeacoffee.com/tallguyjenks
💵 PAYPAL: https://www.paypal.me/tallguyjenks
📊️ FREE STOCKS: http://join.robinhood.com/bryanj67
▬▬▬▬▬▬▬▬▬▬ ► My Newsletter ◀︎▬▬▬▬▬▬▬▬▬▬
📧️ NEWSLETTER: https://bryanjenkstech.ck.page/d4ec0713d5
▬▬▬▬▬▬▬▬▬▬ ► My Gear ◀︎▬▬▬▬▬▬▬▬▬▬
⚙️GEAR: https://kit.co/tallguyjenks/my-gear
▬▬▬▬▬▬▬▬▬▬ ► Questions? ◀︎▬▬▬▬▬▬▬▬▬▬
❓️FAQ: https://github.com/BryanJenksCommunity/FAQ/discussions
▬▬▬▬▬▬▬▬▬▬ ► Social ◀︎▬▬▬▬▬▬▬▬▬▬
💬 DISCORD: https://discord.gg/MxCVshN
🐦 TWITTER: https://twitter.com/tallguyjenks
📺 TWITCH: https://www.twitch.tv/tallguyjenks
📜️ MEDIUM: https://medium.com/@tallguyjenks
💼️ LINKEDIN: https://www.linkedin.com/in/bryanjenks/
🖥️ GITHUB: https://github.com/tallguyjenks
🌎 WEBSITE: https://www.bryanjenks.dev/
▬▬▬▬▬▬▬▬▬▬ ► The Rest ◀︎▬▬▬▬▬▬▬▬▬▬
Thanks for watching and if you liked this video please leave a 👍🏻
Subscribe to my channel and click the 🔔 icon for notifications when I post a new video
If you read this far put a 🐄 in the comments!
▬▬▬▬▬▬▬▬▬▬ ► TAGS ◀︎▬▬▬▬▬▬▬▬▬▬
#obsidian #zettelkasten #bryanjenks
The Code: https://gist.github.com/tallguyjenks/c088efa831d4c3d90506641c6c2ccc99
0:00:00 Intro
0:00:10 Premise
0:00:24 So... Final Cut Pro
0:01:09 Looking at Final Cut Pro
0:02:33 What you need to do to use this workflow
0:04:25 We must automate ALL the things
0:05:07 The secret sauce
0:05:42 My project generation scripts
0:07:06 What does the document look like?
0
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Bryan Jenks · Bryan Jenks · 56 of 60
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
▶
57
58
59
60
rsync for Linux Backups - The Final Barrier to Migration
Bryan Jenks
(un)Installing Packages From The (AUR) Arch Linux User Repository
Bryan Jenks
Full RStudio Set Up On Arch Linux
Bryan Jenks
Fix RMarkdown Compilation Outside Of RStudio on Arch Linux
Bryan Jenks
Markdown Document Autocompilation on Arch Linux
Bryan Jenks
Cronjobs, Cronie, & Crontab on Arch Linux
Bryan Jenks
Setting Up Slack With i3 on Arch Linux
Bryan Jenks
VS Codium (VS Code) on Arch Linux With A Shell Script
Bryan Jenks
Vimwiki Plugin For Vim Research Management on Arch Linux
Bryan Jenks
Neomutt with Protonmail on Arch Linux - LARBS - Thinkpad x220
Bryan Jenks
Command Line Task Management With Taskwarrior and Taskell On Arch Linux / Thinkpad x220
Bryan Jenks
Exploring My Fitbit Data With R in RStudio on Arch Linux
Bryan Jenks
Tellico Collections On Arch Linux
Bryan Jenks
LaTeX, Biber, and Live Compilation on Arch Linux
Bryan Jenks
R Markdown Programming Language Support
Bryan Jenks
R Markdown to make HTML Wiki's with Tabbed pages
Bryan Jenks
Announcement: New Video Series on R - "Comprehensive R Package Reviews"
Bryan Jenks
R Package Review Episode 1: Magrittr
Bryan Jenks
R Package Review Episode 2: Vitae
Bryan Jenks
My R Workflow for Reproduce-able & Portable Analysis
Bryan Jenks
R Package Review Episode 2: Here
Bryan Jenks
Introduction to Regular Expressions
Bryan Jenks
My Workflow for Reading, Organizing, and Maintaining Articles, Papers, & Books
Bryan Jenks
My First Python Project Dealing With Finance Data
Bryan Jenks
R Package Review Episode 4: Beepr
Bryan Jenks
RMarkdown Customized Styles with CSS and HTML Output
Bryan Jenks
RMarkdown Custom ID Selectors for Dynamic Headers and CSS
Bryan Jenks
HTML Headers in RMarkdown Documents For Personal/Corporate Branding
Bryan Jenks
My Semi-Complete VimWiki Workflow
Bryan Jenks
How To Make An Automated Resume With Github
Bryan Jenks
How I Use Fuzzy Finding In the Terminal with fzf (workflow++)
Bryan Jenks
How I Organize and Create My Research Notes (Research Workflow++)
Bryan Jenks
How I Use fzf.vim To Improve My Programming Workflow
Bryan Jenks
Website Updates, JavaScript, R, Shiny, Vue.js And More
Bryan Jenks
How To Use AWK (Tutorial)
Bryan Jenks
Bash Script Review: My Battery Power i3Blocks Module
Bryan Jenks
Channel Updates, Where I've Been, And Where I Want To Go With YouTube
Bryan Jenks
How To Use Neomutt 📨 From MuttWizard (Basics Tutorial)
Bryan Jenks
How To Use Jupyter Notebooks 📔 (Basics Tutorial)
Bryan Jenks
How To Use Trello In 2020 (The Definitive Guide)
Bryan Jenks
Macbook Pro 16 Inch 2020: Unboxing and Review
Bryan Jenks
How To Use Github's New Personal README and Wakatime
Bryan Jenks
How I Set Up My 2020 Macbook Pro 16
Bryan Jenks
My First Week At WGU (Western Governors University), Coffee, And Channel Updates
Bryan Jenks
The Best Academic Resources & Citation Managers: OrcID, Zotero, Mendeley & More!
Bryan Jenks
R Package Review Episode 5: TodoR
Bryan Jenks
R Package Review Episode 6: Patchwork
Bryan Jenks
Interview With Bryan of Norseman Leather Works
Bryan Jenks
Zettelkasten Work in Obsidian for Research | VOD
Bryan Jenks
How I Live With Adult ADHD (Attention Deficit Hyperactivity Disorder) [Time Stamped]
Bryan Jenks
Zettelkasten Research Work in Obsidian | VOD
Bryan Jenks
Obsidian VS Roam Research: Why I Chose Obsidian
Bryan Jenks
My 2020 Comprehensive Obsidian Workflow For Zettelkasten and Evergreen Notes
Bryan Jenks
How I Use Raindrop.io As The Entry Point of My Zettelkasten Workflow In Obsidian
Bryan Jenks
Comprehensive Overview | Obsidian Block References & Transclusion | Sorry Roam!
Bryan Jenks
Easy YouTube Timestamps From Final Cut Pro X With Python!
Bryan Jenks
NEW | Obsidian Insiders Release 0.9.10 | Plugins & Official API
Bryan Jenks
TOP 5️⃣️ | FAVORITE THINGS IN OBSIDIAN
Bryan Jenks
Comprehensive Obsidian & Git Sync Workflow 🔄️ | Your Mind Under Version Control
Bryan Jenks
Obsidian Mermaid Livestream Highlights | Zettelkasten Resources, YouTube Advice, Data Science
Bryan Jenks
Related Reads
📰
📰
📰
📰
I built a Chrome extension that drag-and-drops YouTube videos into playlists using AI
Dev.to AI
"IA" não é só para quem escreve código
Dev.to AI
AI Testing Tools Are Easy To Buy But Hard To Trust
Forbes Innovation
Transform Business Operations with Robotic Process Automation (RPA) Services
Medium · AI
Chapters (9)
Intro
0:10
Premise
0:24
So... Final Cut Pro
1:09
Looking at Final Cut Pro
2:33
What you need to do to use this workflow
4:25
We must automate ALL the things
5:07
The secret sauce
5:42
My project generation scripts
7:06
What does the document look like?
🎓
Tutor Explanation
DeepCamp AI