All Projects → Welltory → Zoom2Youtube

Welltory / Zoom2Youtube

Licence: MIT license
Transfer video recordings from the Zoom to YouTube

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Zoom2Youtube

sync-deploy
🔄 shell toolkit for deploying script/command task on remote host, including up/download files, run script on remote
Stars: ✭ 20 (-68.25%)
Mutual labels:  downloader, uploader
BulkDownloader
BulkDownloader is used for multiple downloading process easy. It provides progress listener for each files and for whole file. It guarantees completion of download files as it runs on work manager
Stars: ✭ 24 (-61.9%)
Mutual labels:  downloader, notification
angular-material-datatransfer
A HTML5 datatransfer UI for handling upload and download of multiple simultaneous files.
Stars: ✭ 13 (-79.37%)
Mutual labels:  downloader, uploader
Goph
🤘 The native golang ssh client to execute your commands over ssh connection. 🚀🚀
Stars: ✭ 734 (+1065.08%)
Mutual labels:  downloader, uploader
Firupdater
Fir.im通道APK更新器,使用简单,让自己的demo快速具备升级功能
Stars: ✭ 148 (+134.92%)
Mutual labels:  downloader, notification
S3uploader
A minimalistic UI to conveniently upload and download files from AWS S3
Stars: ✭ 111 (+76.19%)
Mutual labels:  downloader, uploader
Aria
下载可以很简单
Stars: ✭ 4,777 (+7482.54%)
Mutual labels:  downloader, uploader
mega-link-downloader-bot
A telegram bot to download mega.nz links. (made with pyrogram).
Stars: ✭ 180 (+185.71%)
Mutual labels:  downloader, uploader
Atomic
An android restful api/networking library using okhttp library as backbone.
Stars: ✭ 13 (-79.37%)
Mutual labels:  downloader, uploader
TikTok
Download public videos on TikTok using Python with Selenium
Stars: ✭ 37 (-41.27%)
Mutual labels:  downloader
radiojavan.sh
download your favorite musics from radiojavan 👨‍🎤
Stars: ✭ 19 (-69.84%)
Mutual labels:  downloader
gsrd
GitHub Starred Repos Downloader
Stars: ✭ 23 (-63.49%)
Mutual labels:  downloader
gotify-push
Chrome Extension for Send Push Notification 🔔 to gotify/server ☁
Stars: ✭ 32 (-49.21%)
Mutual labels:  notification
HTSDCycleScrollView
一款基于SDScrollView的轮播图控件,对源码进行了修改,可切换为滚动时图片带有缩放效果的模式,可改变PageControl小圆点的样式
Stars: ✭ 48 (-23.81%)
Mutual labels:  zoom
amaran-laravel
AmaranJS stylish notification for your laravel application.
Stars: ✭ 24 (-61.9%)
Mutual labels:  notification
google-music-manager-uploader
Google Music Manager Uploader module / Easily upload MP3 (folder) to Google Music
Stars: ✭ 21 (-66.67%)
Mutual labels:  uploader
pdbfetch
Fetch PDB symbols directly from Microsoft's symbol servers
Stars: ✭ 33 (-47.62%)
Mutual labels:  downloader
util
封装了一些Java常用的功能
Stars: ✭ 19 (-69.84%)
Mutual labels:  downloader
codecourse-downloader
codecourse.com video downloader.
Stars: ✭ 60 (-4.76%)
Mutual labels:  downloader
All-Url-Uploader
A simple telegram Bot, Upload Media File| video To telegram using the direct download link. (youtube, Mediafire, google drive, mega drive, etc)
Stars: ✭ 122 (+93.65%)
Mutual labels:  downloader

Zoom2youtube showcase

↓↓↓

Zoom2youtube slack notifications

Zoom2Youtube is a utility for transferring video recordings from the Zoom.us to YouTube

At Welltory, we hold and record 3-4 virtual meetings every day. The easiest way is to record meetings in zoom.us, then upload them to YouTube where they can be accessed by anyone, from any device: phones, Chromecast, etc. We’ve automated video transfers from Zoom to YouTube, added notifications, and now every recording is automatically dropped into a Slack channel. We use privacy settings (unlisted) on YouTube to make sure people who aren’t on the team don’t have access to our meetings.

The project is written in Python and launched in Docker. This simplifies the project’s initial deployment.

About

Disclaimer: The utility is supplied "AS IS" without any warranties.

You can reach us at [email protected]

Features

  • Automatically download a new Zoom video
  • Upload the video to YouTube (privacy settings: unlisted)
  • Drop a link to the YouTube video into a Slack channel
  • Filter settings: will not upload videos under 15 minutes long to prevent uploads of accidental recordings

Quick Start Guide

Step 1 - Set up Docker

Install Docker and Docker-Compose

  1. Docker installation instructions: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#install-docker-ce
  2. Docker-compose installation instructions: https://docs.docker.com/compose/install/#alternative-install-options

Then create a Docker image. To do this, enter the command:

    $ make build

Step 2 - set up Zoom

You need to create a .env file in the root directory of the project, specifying the keys listed below:

ZOOM_API_KEY
ZOOM_API_SECRET
ZOOM_EMAIL

To get the keys, follow these steps:

  1. Follow the link: https://marketplace.zoom.us/docs/guides/build/jwt-app
  2. Create JWT app
  3. Enter the API Key in ZOOM_API_KEY, API Secret in ZOOM_API_SECRET

Step 3 - Set up Youtube

Add the following keys to the .env file

GOOGLE_REFRESH_TOKEN
GOOGLE_CLIENT_ID
GOOGLE_CLIENT_SECRET

To get the keys, follow these steps:

  1. Go to the developer console: https://console.developers.google.com/cloud-resource-manager
  2. Create a new project and go to the new project
  3. Follow the link: https://console.developers.google.com/apis/api/youtube.googleapis.com/overview
  4. Turn on YouTube Data API v3
  5. Follow the link: https://console.developers.google.com/apis/credentials
  6. create OAuth client credentials.
  7. Select Other types or Other (depends on localization), create
  8. Enter Client ID in GOOGLE_CLIENT_ID and Client Secret in GOOGLE_CLIENT_SECRET

To get the GOOGLE_REFRESH_TOKEN follow these steps:

  1. Follow the link: https://accounts.google.com/o/oauth2/auth?client_id=<GOOGLE_CLIENT_ID>&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://www.googleapis.com/auth/youtube.upload&access_type=offline&response_type=code, replacing <GOOGLE_CLIENT_ID> with the GOOGLE_CLIENT_ID, you got from the previous step
  2. Select the Google account you need access for
  3. Get access
  4. Enter the token in the .env file, in the .env in the GOOGLE_CODE field
  5. Run the script in docker container
    $ docker-compose run app bash
    $ python3.6 src/get_google_refresh_token.py`
  1. Enter the refresh token in the .env file, in the GOOGLE_REFRESH_TOKEN field

Step 4 - Set up Slack

Add the following keys to the .env file

SLACK_CHANNEL
SLACK_TOKEN
  1. Enter the recipients (separated with commas) in SLACK_CHANNEL, for example SLACK_CHANNEL=#my_cannel,@my_user
  2. Enter the slack token in SLACK_TOKEN

Step 5 - Check keys

To make sure all the keys were entered into the .env file, run the script in docker container

    $ docker-compose run app bash
    $ python3.6 src/check_env.py

Step 6 - Run the app

Launch the container:

    $ make up

Another way to run the app, through virtualenv

  1. Create a virtual environment
    $ virtualenv venv -p /usr/bin/python3 --no-site-package
  1. Activate virtual environment
    $ source venv/bin/activate
  1. Establish requirements
    $ pip install -r requirements.txt
  1. Copy cron config
    $ sudo cp cron/crontab /etc/cron.d/zoom2youtube-cron
  1. Restart cron
    $  sudo service cron restart

Sample .env file

ZOOM_API_KEY=AAAAAAAAAAAAAAA
ZOOM_API_SECRET=BBBBBBBBBBBB
[email protected]

GOOGLE_CLIENT_ID=AAAAAAAAAAAAAA.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=BBBBBBBBBBBBBb
GOOGLE_REFRESH_TOKEN=CCCCCCCCCCCC
GOOGLE_CODE=DDDDDDDDDDDDDD

SLACK_CHANNEL=@user
SLACK_TOKEN=AAAAAAAAAAAAA

// Extra/optional configs
ZOOM_FROM_DAY_DELTA=7
ZOOM_PAGE_SIZE=10

License

The MIT License (MIT)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].