Skip to content

Manage Youtube videos

Martin Hinshelwood nkdAgility.com edited this page Nov 22, 2024 · 10 revisions

On the site there is a page for each video we publish to yourube. These videos are synched using the mechanism below, and then updated with a blog post content on a future schedule:

Folder Structure for Each Video

Each video's folder includes the following:

  1. index.md: Contains the Markdown and front matter.
  2. data.json: Cached YouTube API data to minimise API calls.
  3. transcript.*.srt: Transcripts for use in AI tools or other content generation.

Legacy Files (Imported from WordPress)

  • wordpress.custom.yaml: Original WordPress post in YAML format.
  • wordpress.custom.md.import: Markdown version of the WordPress post.

These legacy files are retained for reference but not actively used.


Sync Videos from Youtube

We synchronise all our YouTube videos to a local folder to publish and link them from our site. At a later date, these posts are updated with enhanced marketing content. This happens automatically at midnight, and a Pull Request will be created and posted with the changes!

SOP: Review and Approve the Pull Request

When the automation runs at midnight, it will pend any necessary changes through a pull request titled "Youtube Daily Pull", which is updated nightly until it is approved. Approving this PR will bring the changes into Preview, which is ready to push to live.

  1. Open https://github.com/nkdAgility/NKDAgility.com/pulls and look for a PR titled "Youtube Daily Pull"
  2. Check the changes made on
  3. Check https://yellow-pond-042d21b03-{{pr_number}}.westeurope.5.azurestaticapps.net/ to ensure it works... check at least 1 of the imported/changed videos.
  4. Ensure that all checks are valid.
  5. If all is good, merge the Pull request.
  6. Check https://preview.nkdagility.com

Anatomy of a synched video to check against

Below is an example of a synced post:

---
title: Why do you encourage people to follow a certification path in their career journey?
date: 2023-03-07T07:00:09Z
videoId: _fFs-0GL1CA
url: /resources/videos/:slug
slug: why-do-you-encourage-people-to-follow-a-certification-path-in-their-career-journey-
canonicalUrl: https://www.youtube.com/watch?v=_fFs-0GL1CA
aliases:
- /resources/videos/_fFs-0GL1CA
- /resources/videos/why-do-you-encourage-people-to-follow-a-certification-path-in-their-career-journey-
preview: https://i.ytimg.com/vi/_fFs-0GL1CA/maxresdefault.jpg
duration: 372
isShort: false
tags:
- Scrum
- Scrum Training
- Agile
- Agile Scrum Training
- Scrum Certification
- Scrum Master
- Product Owner
sitemap:
  priority: 0.4
  filename: sitemap.xml

---

{{< youtube _fFs-0GL1CA >}}

# Why do you encourage people to follow a certification path in their career journey?

The world of #agile is inherently complex. If building complex solutions or solving complex problems was a straightforward process of observing a formula, traditional #projectmanagement would do the trick and there would be no need for #agile or #scrum.

....redacted...

[Watch on YouTube](https://www.youtube.com/watch?v=_fFs-0GL1CA)

Updated Youtube page with new Marketing Post

Once we are ready to post the new marketing content, we have a number of changes that need to be made to ensure that the new post supersedes the old one and that SEO works as intended.

https://www.youtube.com/watch?v=9lBvhLXW8xY&ab_channel=nakedAgilitywithMartinHinshelwood

When a post is updated with new content, the following changes are made:

  1. Title: Updated to the new marketing title for SEO and branding.
  2. Canonical URL: Removed to establish the site as the original source.
  3. Aliases: Add the current slug as /resources/videos/{{slug}} to prevent 404 errors.
  4. Slug: Updated to match the new title or removed to dynamically generate it from the title.
  5. Sitemap Priority: Increased to 0.6 for SEO optimisation.
  6. Content: Rewritten to include new, engaging copy.
  7. giscusDiscussionId: add with id of existing discussion if necessary

Note:

  • If slug is missing, update url to /resources/videos/:slug and derive the slug from the title.
  • Be mindful of adding appropriate aliases when changing titles.

Automated Updates: Sitemap and other metadata, like the last modified date, are automatically refreshed based on Git activity.

Example Updated Post:

---
title: 'Training: A Bridge to Knowledge and Growth'
date: 2024-09-18
resourceTypes: video
layout: video
videoId: _2ZH7vbKu7Y
url: /resources/videos/:slug
slug: training-a-bridge-to-knowledge-and-growth
preview: https://i.ytimg.com/vi/_2ZH7vbKu7Y/maxresdefault.jpg
duration: 412
isShort: false
aliases:
  - /resources/videos/3-key-elements-for-an-agile-leader-to-consider-if-the-team-are-incompetent
  - /resources/training-a-bridge-to-knowledge-and-growth
  - /resources/videos/_2ZH7vbKu7Y
sitemap:
  filename: sitemap.xml
  priority: 0.6
---

{{< youtube _2ZH7vbKu7Y >}}

In any organisation, the skills and knowledge of a team can determine its success or failure. But what happens when a team is identified as deficient? This video explores how to address these gaps through training and continuous learning before resorting to drastic measures.


Standard Operating Procedures (SOPs)

Pull New Videos

  1. Sync with main.
  2. Create a new branch: update-youtube-[date].
  3. Ensure $env:google_apiKey is configured.
  4. Run .powershell\syncNKDAgilityTV.ps1.
  5. Commit changes using opencommit and push to GitHub.
  6. Create a PR on GitHub.
  7. Preview changes on Preview Site.
  8. (Optional) Create a new release.

Update Videos with New Marketing Content

  1. Sync with main.
  2. Create a new branch: update-marketing-[date].
  3. Update the video’s index.md with the latest marketing copy, following the steps outlined in the "Updated Markdown and Front Matter" section.
  4. Commit and push changes.
  5. Preview updates on the site and validate changes.