Discourse Video Upload Plugin with YouTube and Vimeo

Summary: Allows users on a Discourse forum to upload videos to Vimeo and YouTube directly from the Discourse composer.

The same is also available as a theme component which enables a much easier installation: Video Upload to YouTube and Vimeo using Theme Component

:link: GitHub: GitHub - xomads/discourse-video-upload
:arrow_right: Install: Follow the plugin installation guide.


All forum members can upload videos to Vimeo or YouTube (admins can choose to enable either or both).

Admins can control the view and embed privacy of the videos uploaded to Vimeo using admin settings.

User can control view privacy of the videos uploaded to YouTube from the upload modal.

You can watch a demo of the plugin here:


The developer setup for enabling uploads to YouTube and Vimeo are listed below. If you prefer someone to do it for you, you can request support by contacting me, @ti0.

For YouTube Uploads

YouTube uploads go to the uploaders account, unlike Vimeo uploads which go to a common account.

View steps
  • Create an account and project at https://console.developers.google.com

  • Enable the YouTube Data API v3

  • Setup the OAuth consent screen for External users (unless all users on your Discourse forum belong to one Google organization).

  • Setup your credentials:

    • Create an OAuth client ID
    • Choose Web Application type
    • Add your Discourse instance URL in the Authorized Javascript origins section
  • Copy the generated client ID only

  • Go to the plugin settings page in Discourse Admin, and paste the client ID in the youtube api client id field.

  • Enable Youtube uploads by enabling this setting: youtube upload enabled

  • Adjust the default view privacy options for Youtube if required.

  • You should now be able to upload videos from the Discourse topic composer directly to YouTube.

For Vimeo Uploads

Once you setup the plugin with the steps below, all community users will be able to upload videos to your Vimeo account.
You are responsible for limits and usage of your Vimeo account.

View steps
  • Create an account and app on Vimeo Developers:

  • Request Upload Access on the app page

  • Generate an access token with Upload permissions

  • Go to the Plugin settings page on your Discourse Admin, and add the generated access token in the vimeo api access token setting, and save

  • Enable Vimeo uploads by enabling the vimeo upload enabled setting.

  • Adjust view and embed privacy options

  • You should now be able to upload videos from the Discourse topic composer directly to Vimeo

Posting a video

  • To post a video, create a new Topic or reply to an existing

  • Click the new Upload to Video button in the composer toolbar (the video icon). This button is only visible if you have enabled either YouTube or Vimeo (or both) in the plugin settings.

  • Choose a video file and edit the details such as title and description, if you wish.

  • Click the Upload to Vimeo or Upload to YouTube button.

    • The buttons shown will depend on whether you have enabled YouTube / Vimeo uploads (either or both).

    • It will show you upload progress, and then it will wait till the video completes the transcoding process.

    • The modal will remain open till the transcoding is complete.

    • Once transcoding is complete, the video link will be added to the composer (unless there was a transcoding error).

  • Save the post, and your video can be viewed by all other community users
    (depending on privacy options you selected).


Feature Requests

You can request additional features or support by contacting me @ti0.


If you found the plugin helpful, please consider donating to the plugin developer using this Paypal link: https://paypal.me/ti0it

Big and small contributions are equally welcome :slight_smile:

If you would like to enhance the plugin, PRs are welcome.


Awesome plugin, people have asked for something similar for years now!

One suggestion I have is hiding the “Uploading to Video” button on the modal unless the file returned from the File Picker has one of the supported video extensions.


You could go one step further here - hide the button, and make the whole thing completely transparent to the user. If they upload a video, it goes to vimeo. If they upload something else, it works as normal.

We have an API specifically for that - here’s an example use:

(plus, this API makes it work seamlessly with drag&drop uploads as well)


I don’t know about this - I would like to know where my videos are being uploaded. There are many issues nowadays concerning privacy and related matters, and I feel it’s good to know where stuff goes, especially if it’s off-platform

I do like this possibility, I may implement this in the next update.

any idea where ? I can perhaps post an update on those topics to let them know of the existence of this new plugin.

since Discourse has not had this feature before, I felt it would be good if people could see that now there is a possibility to upload videos by keeping the button explicit (for those who have the plugin).

perhaps in later updates I can make these changes.


You could use a second modal on the client that discloses the Vimeo upload and asks for any extra information (title?) they want to provide. (For drag and drop, this would be the first seen modal.)


Important update
I updated the plugin so it is now the Discourse Video Upload plugin (earlier it was Discourse Vimeo Upload plugin). Now the plugin supports uploads directly to YouTube and Vimeo. Please check the updated guide in the first post for setup instructions.


Is there absolutely no way to upload them on a common account like it’s done with Vimeo?


I tried desperately to make this happen, there is no reasonable way to do this.

Also YouTube’s api limits are much worse than Vimeo, so you can only do 6 videos a day per account, and no good way to increase that (you have to request a limit increase, and if you tell them many people share one account they will stop it).

On the other hand, Vimeo let’s you just pay $7 or more a month and you have practically no limits.

Any reason you prefer Youtube?



Thank you for creating this awesome plugin :heart: :slight_smile:

Is that possible to make a limitation for max upload video size?

I just installed it and there are warning messages in chrome dev.

Thank you :slight_smile:

1 Like

Thanks for the feedback @dodesz :slight_smile:

Regarding the warnings, I don’t think they are coming from this plugin, are you sure it’s related? I’m not using whitelist anywhere.

And about the feature request, certainly it’s possible. I was hoping people would contribute to enhance the plugin, preferably through donations / paying for support or feature upgrades, small or big.
Any thoughts on that? Pm if you prefer


Thanks for your response! :slight_smile:

I use whitelist in settings. Is that related with that warning?

If i disable the plugin these warnings not appears so it may be cause by this plugin.

Thank you :slight_smile:

1 Like

It isn’t quite the same. Vimeo business model is paid subscriptions. So, as long as you pay, you can upload more. If it becomes a problem, just pay more, and you will pretty much always be good to go. If I’m not mistaken, there won’t be any easy way to monetize the video content, except by adding ads in the video yourself (we could always imagine your plugin doing this one day, but you would still need to find the advertisers, make them pay, etc. And it wouldn’t be easy to change ads and so on. Not very good in any case).

On the other end, Youtube would allow a forum to monetize easily the uploaded video content. If that was uploaded to an account belonging to the forum. A quick search say that limits are pretty high (100 per day, with a limit getting put in place at 50 per day if you hit 100 one day), BUT seem far more limited when you use the API, as you’re saying (I also saw the number of 6 per day).

It would be a great option to be able to choose how to upload to Youtube: Common account or individual accounts. The big question is if forum owners would be able to get this limit increased with youtube. I don’t think you should tell them several people use the account, but that the account belong to an entity (the forum), and it’s the entity which uploads. A question of how you spin it. You would maybe need (and that would be your best interest in any case if it’s with your account) to check the videos before upload: An option to store the videos locally for approval before upload to youtube ? And an option to limit the number of uploads per day (to be able to start with a limit of 6) ?

That’s a few suggestions. Do what you want with them (they rely on the fact that it would be possible to get the limit increased. I’m not sure at all how possible that is. But it sure would be great).


when I try that I still don’t get the warning you are seeing. Sorry, cannot help with this because I am not seeing the warnings - perhaps it is specific to your instance ? I am using beta5 (the most recent release), and not seeing those warnings.


I had not thought of this angle.

I’m sure it’s possible to get the limit increased, it is certainly in YTs best interest to do this especially if monetization is involved.

Your suggestions are great, and quite possible to implement with enough effort. These are pretty significant changes to the plugin and require quite a lot of work, so I would only be interested in doing them if someone (or a group) is willing to pay for feature development.


What about copyright issues? You’re basically giving free access to your own YouTube/Vimeo channel and allow people to upload anything they like into it - that sounds like a DMCA disaster waiting to happen, which might have personal repercussions for you.


certainly an issue, that’s why I think the Vimeo option should only be used by communities where the members can be trusted to be responsible. and that’s why there is a strong message indicating users are responsible for their vimeo account.


Alright no problem. :slightly_smiling_face: I use the latest Discourse. I will check the other plugins etc maybe this is a conflict issue or something like that. Are you familiar with these warnings? It will cause any issue or I can just skip these. I didn’t notice any issue on the site usage. Thanks anyway I love this plugin! :slightly_smiling_face:

1 Like

I don’t think it should cause any issue, since it’s just a warning. And I reviewed the code, there is no use of whitelist anywhere.
Glad to see you love it :green_heart:

1 Like

I really appreciate this plugin’s feature though I don’t use it right now for various reasons but I’ll keep an eye on the development. It seems nicely implemented.

Also, if nobody can be done about the 6 videos a day API limited, I really like this idea:

I’m not sure the plugin feature would be used by my community. This community is mainly split between our Discourse forum and a Facebook group (which I don’t own), and most of the people who share videos do it on Facebook for obvious reasons.
I guess I could try with a free Vimeo account and see how it goes.

Do you have long-term goals that you want to fulfill no matter what, or do you think your involvement will rely much on donations earnings?