Easy YouTube Timestamps From Final Cut Pro X With Python!

Bryan Jenks · Beginner ·🛠️ AI Tools & Apps ·5y ago

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 rsync for Linux Backups - The Final Barrier to Migration
rsync for Linux Backups - The Final Barrier to Migration
Bryan Jenks
2 (un)Installing Packages From The (AUR) Arch Linux User Repository
(un)Installing Packages From The (AUR) Arch Linux User Repository
Bryan Jenks
3 Full RStudio Set Up On Arch Linux
Full RStudio Set Up On Arch Linux
Bryan Jenks
4 Fix RMarkdown Compilation Outside Of RStudio on Arch Linux
Fix RMarkdown Compilation Outside Of RStudio on Arch Linux
Bryan Jenks
5 Markdown Document Autocompilation on Arch Linux
Markdown Document Autocompilation on Arch Linux
Bryan Jenks
6 Cronjobs, Cronie, & Crontab on Arch Linux
Cronjobs, Cronie, & Crontab on Arch Linux
Bryan Jenks
7 Setting Up Slack With i3 on Arch Linux
Setting Up Slack With i3 on Arch Linux
Bryan Jenks
8 VS Codium (VS Code) on Arch Linux With A Shell Script
VS Codium (VS Code) on Arch Linux With A Shell Script
Bryan Jenks
9 Vimwiki Plugin For Vim Research Management on Arch Linux
Vimwiki Plugin For Vim Research Management on Arch Linux
Bryan Jenks
10 Neomutt with Protonmail on Arch Linux - LARBS - Thinkpad x220
Neomutt with Protonmail on Arch Linux - LARBS - Thinkpad x220
Bryan Jenks
11 Command Line Task Management With Taskwarrior and Taskell On Arch Linux / Thinkpad x220
Command Line Task Management With Taskwarrior and Taskell On Arch Linux / Thinkpad x220
Bryan Jenks
12 Exploring My Fitbit Data With R in RStudio on Arch Linux
Exploring My Fitbit Data With R in RStudio on Arch Linux
Bryan Jenks
13 Tellico Collections On Arch Linux
Tellico Collections On Arch Linux
Bryan Jenks
14 LaTeX, Biber, and Live Compilation on Arch Linux
LaTeX, Biber, and Live Compilation on Arch Linux
Bryan Jenks
15 R Markdown Programming Language Support
R Markdown Programming Language Support
Bryan Jenks
16 R Markdown to make HTML Wiki's with Tabbed pages
R Markdown to make HTML Wiki's with Tabbed pages
Bryan Jenks
17 Announcement: New Video Series on R - "Comprehensive R Package Reviews"
Announcement: New Video Series on R - "Comprehensive R Package Reviews"
Bryan Jenks
18 R Package Review Episode 1: Magrittr
R Package Review Episode 1: Magrittr
Bryan Jenks
19 R Package Review Episode 2: Vitae
R Package Review Episode 2: Vitae
Bryan Jenks
20 My R Workflow for Reproduce-able & Portable Analysis
My R Workflow for Reproduce-able & Portable Analysis
Bryan Jenks
21 R Package Review Episode 2: Here
R Package Review Episode 2: Here
Bryan Jenks
22 Introduction to Regular Expressions
Introduction to Regular Expressions
Bryan Jenks
23 My Workflow for Reading, Organizing, and Maintaining Articles, Papers, & Books
My Workflow for Reading, Organizing, and Maintaining Articles, Papers, & Books
Bryan Jenks
24 My First Python Project Dealing With Finance Data
My First Python Project Dealing With Finance Data
Bryan Jenks
25 R Package Review Episode 4: Beepr
R Package Review Episode 4: Beepr
Bryan Jenks
26 RMarkdown Customized Styles with CSS and HTML Output
RMarkdown Customized Styles with CSS and HTML Output
Bryan Jenks
27 RMarkdown Custom ID Selectors for Dynamic Headers and CSS
RMarkdown Custom ID Selectors for Dynamic Headers and CSS
Bryan Jenks
28 HTML Headers in RMarkdown Documents For Personal/Corporate Branding
HTML Headers in RMarkdown Documents For Personal/Corporate Branding
Bryan Jenks
29 My Semi-Complete VimWiki Workflow
My Semi-Complete VimWiki Workflow
Bryan Jenks
30 How To Make An Automated Resume With Github
How To Make An Automated Resume With Github
Bryan Jenks
31 How I Use Fuzzy Finding In the Terminal with fzf (workflow++)
How I Use Fuzzy Finding In the Terminal with fzf (workflow++)
Bryan Jenks
32 How I Organize and Create My Research Notes (Research Workflow++)
How I Organize and Create My Research Notes (Research Workflow++)
Bryan Jenks
33 How I Use fzf.vim To Improve My Programming Workflow
How I Use fzf.vim To Improve My Programming Workflow
Bryan Jenks
34 Website Updates, JavaScript, R, Shiny, Vue.js And More
Website Updates, JavaScript, R, Shiny, Vue.js And More
Bryan Jenks
35 How To Use AWK (Tutorial)
How To Use AWK (Tutorial)
Bryan Jenks
36 Bash Script Review: My Battery Power i3Blocks Module
Bash Script Review: My Battery Power i3Blocks Module
Bryan Jenks
37 Channel Updates, Where I've Been, And Where I Want To Go With YouTube
Channel Updates, Where I've Been, And Where I Want To Go With YouTube
Bryan Jenks
38 How To Use Neomutt 📨 From MuttWizard  (Basics Tutorial)
How To Use Neomutt 📨 From MuttWizard (Basics Tutorial)
Bryan Jenks
39 How To Use Jupyter Notebooks 📔 (Basics Tutorial)
How To Use Jupyter Notebooks 📔 (Basics Tutorial)
Bryan Jenks
40 How To Use Trello In 2020 (The Definitive Guide)
How To Use Trello In 2020 (The Definitive Guide)
Bryan Jenks
41 Macbook Pro 16 Inch 2020: Unboxing and Review
Macbook Pro 16 Inch 2020: Unboxing and Review
Bryan Jenks
42 How To Use Github's New Personal README and Wakatime
How To Use Github's New Personal README and Wakatime
Bryan Jenks
43 How I Set Up My 2020 Macbook Pro 16
How I Set Up My 2020 Macbook Pro 16
Bryan Jenks
44 My First Week At WGU (Western Governors University), Coffee, And Channel Updates
My First Week At WGU (Western Governors University), Coffee, And Channel Updates
Bryan Jenks
45 The Best Academic Resources & Citation Managers: OrcID, Zotero, Mendeley & More!
The Best Academic Resources & Citation Managers: OrcID, Zotero, Mendeley & More!
Bryan Jenks
46 R Package Review Episode 5: TodoR
R Package Review Episode 5: TodoR
Bryan Jenks
47 R Package Review Episode 6: Patchwork
R Package Review Episode 6: Patchwork
Bryan Jenks
48 Interview With Bryan of Norseman Leather Works
Interview With Bryan of Norseman Leather Works
Bryan Jenks
49 Zettelkasten Work in Obsidian for Research | VOD
Zettelkasten Work in Obsidian for Research | VOD
Bryan Jenks
50 How I Live With Adult ADHD (Attention Deficit Hyperactivity Disorder) [Time Stamped]
How I Live With Adult ADHD (Attention Deficit Hyperactivity Disorder) [Time Stamped]
Bryan Jenks
51 Zettelkasten Research Work in Obsidian | VOD
Zettelkasten Research Work in Obsidian | VOD
Bryan Jenks
52 Obsidian VS Roam Research: Why I Chose Obsidian
Obsidian VS Roam Research: Why I Chose Obsidian
Bryan Jenks
53 My 2020 Comprehensive Obsidian Workflow For Zettelkasten and Evergreen Notes
My 2020 Comprehensive Obsidian Workflow For Zettelkasten and Evergreen Notes
Bryan Jenks
54 How I Use Raindrop.io As The Entry Point of My Zettelkasten Workflow In Obsidian
How I Use Raindrop.io As The Entry Point of My Zettelkasten Workflow In Obsidian
Bryan Jenks
55 Comprehensive Overview | Obsidian Block References & Transclusion | Sorry Roam!
Comprehensive Overview | Obsidian Block References & Transclusion | Sorry Roam!
Bryan Jenks
Easy YouTube Timestamps From Final Cut Pro X With Python!
Easy YouTube Timestamps From Final Cut Pro X With Python!
Bryan Jenks
57 NEW | Obsidian Insiders Release 0.9.10 | Plugins & Official API
NEW | Obsidian Insiders Release 0.9.10 | Plugins & Official API
Bryan Jenks
58 TOP 5️⃣️ | FAVORITE THINGS IN OBSIDIAN
TOP 5️⃣️ | FAVORITE THINGS IN OBSIDIAN
Bryan Jenks
59 Comprehensive Obsidian & Git Sync Workflow 🔄️ | Your Mind Under Version Control
Comprehensive Obsidian & Git Sync Workflow 🔄️ | Your Mind Under Version Control
Bryan Jenks
60 Obsidian Mermaid Livestream Highlights | Zettelkasten Resources, YouTube Advice, Data Science
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
Learn how to build a Chrome extension that uses AI to drag-and-drop YouTube videos into playlists, streamlining your video management workflow
Dev.to AI
📰
"IA" não é só para quem escreve código
Aprenda a aplicar Inteligência Artificial (IA) além da programação, explorando suas aplicações práticas para não técnicos.
Dev.to AI
📰
AI Testing Tools Are Easy To Buy But Hard To Trust
AI testing tools can generate more tests but not necessarily more confidence, highlighting the importance of trust in testing
Forbes Innovation
📰
Transform Business Operations with Robotic Process Automation (RPA) Services
Learn how Robotic Process Automation (RPA) services can transform business operations by automating repetitive tasks and improving efficiency
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?
Up next
Advanced Tutorial NotebookLM Slides For Powerpoint
Russell Stannard (TTVideos)
Watch →