There are a few different WooCommerce Facebook groups and all of them have great discussions. Earlier today there was a question about selling videos with WooCommerce:
If I have video files in a cloud storage independent from my WordPress site can I link those videos and sell them as digital, downloadable products? I don't want to store videos in my WordPress site.
The short answer is yes – WooCommerce can sell downloadable videos (or any sort of downloadable product).
The longer answer is that there are a ton of ways of selling videos. You can do it with WooCommerce all on its own or you can enhance the experience with a few extensions.
How to Sell Downloadable Videos With Just WooCommerce
Alright – let's start with the easy option – you have WooCommerce (no extensions) and you want to sell videos.
You can start by creating a new product in WooCommerce. You'll want to check both digital & virtual.
Store Videos on Your Site
Under the downloadable settings you can upload a video directly to your WordPress site. When you do this the downloadable file URL will be set. And when a customer checks out they'll get the link to download the file directly from your site.
Unfortunately – videos do tend to take up a lot of hard drive space. So most hosting plans won't let you upload large videos. To get around this you can use a number of services. The easiest is to use a 3rd party streaming service like YouTube, Vimeo, or Wistia.
I'll go ahead and use YouTube because just about everyone is familiar with it. When you upload a video you can set the visibility to Unlisted. This will prevent it from popping up in the search results of YouTube. The only way to get to the video is with a direct URL which only you have.
You then copy this url and under the advanced tab you can paste this into the purchase notes.
The customer will see the message:
Streaming is great but sometimes you really want to have downloadable videos. If that's the case YouTube isn't the best. You might want to use a service like Dropbox that let's you upload any type of raw file. And those files can be accessed via a public link that you create.
I'll upload something to my Dropbox, right click on the file, and then copy the public link.
I'll copy that link into WooCommerce
And as per usual once the purchase is complete an email will be sent with the link. Or customers can view it on the My Account page.
But what about piracy!?!?
Someone is inevitably worried about piracy. And I get it. It's your hard work that created this video and you don't want anyone else stealing it and making money from it. That's a totally normal feeling.
Unfortunately there will always be (a small amount of) piracy and it's usually not worth the investment in time to protect your videos.
None of the methods above are fool proof. Someone could share the link or file with a friend. If you see lots of piracy then you can change links or you invest in something a bit more secure.
Downloadable Videos With Amazon S3
If you want to have a lot of storage for videos you can look into WooCommerce Amazon S3 Storage. Amazon S3 storage is a hosting platform built for hosting large files. It's very affordable. And the WooCommerce integration pulls all of that power into WooCommerce.
You can upload files to Amazon S3 and then copy those links into WooCommerce. WooCommerce will handle all of the download permissions which are far more secure than just sending someone a link.
If you're selling a course or an actual film it can be helpful to have a preview video. And WooCommerce handles that beautifully. There are a few featured video plugins for WooCommerce. I personally like YITH WooCommerce Featured Video which replaces the featured image with a video.
So when someone asks if WooCommerce can sell videos the answer is most definitely yes. You can stream the video and you can distribute the actual file yourself.
Nice roundup of techniques, Patrick.
Regarding piracy, I sell a lot of digital products and agree that it’s not worth trying to put protection on the files. It’s an inconvenience to honest customers and can be easily broken by those who are determined.
However, there are steps we can take to prevent the spread of our digital products. In the WooCommerce settings under Products –> Downloadable Products there are a few choices for File Download Method. If that’s combined with something like Amazon S3 then you can have expiring links that are unique to each purchaser and that don’t reveal a URL to your source file. That way if someone posts their download link online publicly at least it will expire and not be useful after a short time.
Totally agree that there’s a few 80/20 methods of protecting your files. Thanks for sharing. 🙂
I should also mention another method of selling videos since it may be helpful to others.
We make the sale through WooCommerce and then use VHX to handle delivery. The VHX API is used to create accounts and grant access to videos for our customers at checkout. This solution requires custom software development but does have some nice advantages.
It all seamlessly looks like part of our site but we let a company that’s really good at video delivery handle those details. Customers can watch the videos through a videos tab on their WooCommerce My Account page or use one of the VHX apps for Apple TV, iOS, Roku, Chromecast, and others.
Thanks Doug for sharing your tips!
Great tutorial Patrick!
I’ve built a Netflix style site for Indie Australian projects using WooCommerce and WooCommerce subscriptions: https://haview.com.au
It uses a different Amazon S3 plugin that automatically loads uploads made to the media library to S3 and allows you to use the media library urls. It uses expiring links and some encoding as well to secure the videos.
Each video is a product, so tags and reviews and all the other great WooCommerce features are usable.
Once a subscription is purchased, the viewer visits the link to the view page, which then pulls data from the product to the player and displays related videos of that video below it, using shortcodes and built in WooCommerce functions.
I didn’t have to make too many tweaks to templates. The site also uses a third-party plugin for credit purchases, but those are WooCommerce too.
I would need your help!
trying to set up a page where I sell my saxophone tutorials, I have signed up to amazon S3 (like it very much) and now I try to find out how to let my customers stream my videos but not downloading them.
S3 is working on my site, that is looking great. But always after purchase my video, the customer receives a download link for the vid and the videos is downloading. thats not what I want.
Do you have a few more hints for me how you did set up your site?
thanks in advance and regards from Germany,Mario
Do you happen to have a step by step or tutorial on how you achieved it? Your site looks great
Hi Bobbie your method sounds amazing. do you think it will succeed with vimeo instead of amazon?
what if I want to sell a subscription to a private YouTube channel, with ALL my videos? Can woocommerce do that?
Thanks for the great article. I’ve also used a service called HostStreamSell who have plugins which work with woocommerce really well. We sell videos as products with streaming access only with no options to download. Worth checking then out
So I’m looking to set up a site to sell custom videos. What I’ve gleamed from reading your great article and some of these comments is that I can set up a woocommerce site and show the video with a watermark on it that I’ve uploaded to youtube. Then upload the original file to amazon S3 and delivery that link to the buyer after the purchase so they can download it. Would that work. Is it this simple?
You could totally do that. 🙂
What if I have a video on Vimeo only viewable trough my domain, how would I sell that via WooCommerce? I set is to virtual but I cannot make a page that’s visible after purchase to display the video on.
You could use WooCommerce Memberships to have restricted pages that let users play the file.
Patrick, you mentioned that you can use woocommerce Amazon S3 to host the video. Does the plugin require you to have first Amazon S3 account?
Yes. You need an Amazon S3 account if you want to use that plugin. 🙂
Hello! I’m setting up a WooCommerce site for a friend who is a professional artist. He is going to be selling a number of advanced instructional painting videos. Ideally we’d like to have someone be able to login on his website and get to a page where they can watch the videos they have purchased. Do you know if Woo can do THAT? Or do you have a suggestion on how to approach this. Thank you very much for your input!
I’d reference the other comments about WooCommerce Memberships to allow paid users to access certain pages with the video embedded. You can use Vimeo to host the videos and prevent users from downloading them.
Hi! I have a similar idea. Is woocommerce memberships for free?
Thanks in advance! I love your article. Also another question, some have told me to use woocommerce and learndash (i didnt know u can do it only with woocommerce) what do u say about learndash? Do u think just woocommerce is ok or do u recommend also learndash? I want to sell courses but not downloadable
Is WooCommerce free to sell my music videos? Is this still the best online selling platform for videos in 2018?
Great article Patrick! Researching the best way to distribute my own video content. I get your point about piracy being rare but doesn’t the “unlisted youtbe video” just make it TOO EASY? Thought maybe you could embed with Amazon so it at least puts up some defense. Let em know if i’m being overly catious?
Thanks for this article, Patrick. It’s exactly what I was looking for, as I am brand new to this whole arena.
Question: in your discussion of the DropBox method, you advise this is a good path for downloading files. Does the DropBox method also allow for purchasers to stream the file?
Ideally, I’d like those who purchase my content to be able to both stream and download. Is there a solution you’d recommend for this capability?
Thank you for your information.
I’m also looking to offer paid videos in streaming. I’m not sure how to do it. I didn’t quite understand if it was possible to sell streaming by hosting the videos on a remote server (S3 or other) or if it is better to put the videos on the site server. ? Thank you! (sorry I’m French-speaking)
Please tell me if woocommerce will play videos from google drive when shared url with woocommerce. Pricing of Google drive is damn cheap 🙂
This is 2020, And this post is still very insightful. Thanks to the author and to those that contributed through asking questions and answering
If you want downloadble videos, you could also sell your videos on vimeo, where you can allow downloads on a per video basis.
I’m having issues in automating the link to the buyer. I have to go to my dashboard and look at orders and confirm them in order for them to get a second email with the link.
Is there a way to automated this?
Am I missing a step?
You shouldn’t have to confirm orders. That usually happens with gateways like PayPal which might not correctly notify your site about receiving payment.
If you use PayPal check out Debugging IPN Issues.
Not sure if it’s the same issue, but I had to add Autocomplete WooCommerce Orders plugin to get the automation I was looking for. Hope that helps.
I have a set of videos that I want to be able to make available once someone pays. Right now I’m using Paywall
i.e. They choose the program
Video 1 is made available
Once they complete video 1 I want them to be able to advance /click to go to video 2 etc.
Some great ideas here Patrick! I was wondering if you could help me… I’ve gone with the simple ‘store videos on your site’ approach but after some customers successfully download the file, they have issues playing the entire video on their device. I’ve optimised the videos as best as I can (roughly 400mb in size) and made them available in mp4 and webm format but my customers say the video freezes half way through. I thought it might have something to do with the server timeouts but surely they wouldnt be able to successfully downlaod the video if that we’re the case? Any help would be much appreciated.
Hi. I am going to be selling training videos via WooCommerce on my site. I want the buyer to have a limited time window to access and view the training. For example, they purchase the video and receive a link to the video that expires in 24 hours. Or after purchase they receive a code that expires 24 hours after activation. I am open to alternate ways to expire their access/the link. Could you advise on how I can achieve this functionality? Thank you!
Have you found a solution? I’m trying to do some very similar.
We are selling videos so we want to show the 5-10 seconds preview of the video product.
Can we show the preview of the video product?
I have uploaded a video but it shows the full video.
Is it possible by using woocommerce?
Please help for this
You can upload two different videos. One you show on the frontend. And one the user downloads after purchase. So should be possible. 🙂
Thank you for your reply.
Is there any addon plugin for generating video previews on the website?