Skip to content

marcomontalbano/video-to-markdown

Repository files navigation

Video to Markdown

Test Cloudinary     PayPal.me Sponsor

Add videos to your markdown files easier starting from here!

Why?

How often did you find yourself googling ¨How to embed a video in markdown?¨

While its not possible to embed a video in markdown, the best and easiest way is to extract a frame from the video, add a layer with a play icon and link the video url on the image.

Speaking HTMLese, this is what you would do:

<a href="{video-url}" title="Link Title"><img src="{image-url}" alt="Alternate Text" /></a>

that translates into markdown as:

[![Alternate Text]({image-url})]({video-url} "Link Title")

To speed up the process I developped this tool that will do it for you.

You just need to paste the video url in the field above and you will get the markdown you need.

Features

List of supported video providers:

  • Asciinema
  • CleanShot Cloud
  • Dailymotion
  • Facebook (low-quality)
  • Google Drive
  • Imgur
  • Loom
  • OneDrive
  • PeerTube
  • SharePoint
  • Streamable
  • TikTok
  • Vimeo
  • Wistia
  • Youtube

A browser extension

Originally, this tool started as a simple website where you could paste a video URL and instantly get a nicely formatted Markdown snippet with the video thumbnail and title.

But over time, we ran into limitations: many websites restrict access to their content from external services, which made it harder to reliably fetch video metadata just from a pasted URL.

That’s why we moved to a browser extension.

By running directly in your browser, the extension can access video information from the page you’re currently viewing, with your permission. This makes the tool:

  • 🔍 More accurate — it works directly with the content you’re seeing
  • ⚡ Faster — no need to copy and paste URLs

Just click the extension when you’re on a video page, and it will instantly generate the Markdown code for you — thumbnail included.

This change helps the service stay reliable, and super easy to use.

Development stuff

To run the project locally, here’s what you’ll need:

Requirements

Setup

cd into your local copy of the repository and run pnpm install

cd video-to-markdown
pnpm install
cp ./packages/service/.env.sample ./packages/service/.env
# update the .env with proper values
  • CLOUDINARY_URL ( required ) - this is the API Environment variable that you can get from your Cloudinary dashboard inside the Account Details section.
# run the service
pnpm --filter service dev
# build the extension
BASE_URL=http://localhost:8787 pnpm --filter browser-extension build

# built extensions are available at:
# `./packages/browser-extension/dist-chrome.zip`
# `./packages/browser-extension/dist-firefox.zip`
# run the website
pnpm --filter website dev

# http://localhost:8080

About Privacy

We anonymously track the number of visitors with Simple Analytics. No personal data is collected or stored.

Simple Analytics is a privacy-friendly analytics tool that does not use cookies or collect personal data. It provides insights into website traffic without compromising user privacy.

All images are generated via Cloudinary and stored in it.

Cloudinary is a cloud-based image and video management service that provides a comprehensive solution for managing and delivering images and videos. It offers features such as image and video upload, storage, transformation, optimization, and delivery through a global content delivery network (CDN).

This site and service does not use cookies.

We do not store any other data on our servers.

Terms of Use

By using this service, you agree to the following terms:

  • You are responsible for the content you upload and share.
  • You will not use this service for any illegal or unauthorized purpose.
  • We reserve the right to modify or discontinue the service at any time.

If you do not agree to these terms, please do not use this service.