Computer Vision / Twilio: Clipper - Text a Screenshot or URL of a Video & We'll Text You a Video Clip to Download
Tags: twiliohackathon, python, machinelearning
Published: 2020-04-23 20:43:46

[Comment]: # (All of this is placeholder text. Use this format or any other format of your choosing to best describe your project.)

[Reminder]: # (Make sure you've submitted the Twilio CodeExchange agreement: https://ahoy.twilio.com/code-exchange-community)

[Important]: # (By making a submission, you agree to the competition's terms: https://www.twilio.com/legal/twilio-dev-hackathon-terms)


## What I built
Clipper - Text a Screenshot or URL of a Video & We'll Text You a Video Clip to Download

I'm very excited that I've finished my first pass at Clipper, an app I've been wanting to make for a while and finally used the hackathon as an excuse to do so. 

I love watching long podcasts and whatnot on YouTube, and it's nice that you can share a video at a start time, but I never found that satisfactory to share with friends. With Clipper, you can share a screenshot of the video you're watching and Clipper will download and send you a clip of that video. You can also share the URL of the video with Clipper. Clipper has only been thoroughly tested with YouTube screenshots. It will definitely work with most video URLs though if shared via text.

#### Category Submission
Interesting Integrations


## Demo Link

[Clipper](https://clipper.ngrok.io/)

{% youtube NCsmEpg4Ab4 %}
 

## Link to Code

https://github.com/technoplato/Clipper



## How I built it (what's the stack? did I run into issues or discover something new along the way?)

* Flask
  * handles servery stuff
* RabbitMQ
  * handles doing the heavy lifting
* Google Cloud Vision
  * helps magically turn screenshots into video clips


## Additional Resources/Info
 All of the below were helpful in getting this prototype functional. I need to organize them but will just plop them for now:

* [Twilo Conversation Python](https://www.twilio.com/docs/sms/tutorials/how-to-create-sms-conversations-python)
* [Secure Flask App](https://www.twilio.com/docs/usage/tutorials/how-to-secure-your-flask-app-by-validating-incoming-twilio-requests)
* [Store Your Twilio Credentials Securely - Twilio](https://www.twilio.com/docs/usage/secure-credentials)
* [Tutorial: Google Vision API with Python and Heroku - Towards Data Science](https://towardsdatascience.com/tutorial-google-vision-api-with-python-and-heroku-3b8d3ff5f6ef)
* [Fuzzy String Matching in Python - DataCamp](https://www.datacamp.com/community/tutorials/fuzzy-string-python)
* [OpenCV: Image Thresholding](https://docs.opencv.org/master/d7/d4d/tutorial_py_thresholding.html)
* [Using Tesseract OCR with Python - PyImageSearch](https://www.pyimagesearch.com/2017/07/10/using-tesseract-ocr-python/)
* [How to receive and download picture messages in Python with Twilio MMS - Twilio](https://www.twilio.com/blog/2018/05/how-to-receive-and-download-picture-messages-in-python-with-twilio-mms.html)
* [håken.no](https://xn--hken-qoa.no/blog/cropping-3-python/#1-The-problem-of-cropping)
* [Improving the quality of the output | tessdoc](https://tesseract-ocr.github.io/tessdoc/ImproveQuality)
* [OpenCV OCR and text recognition with Tesseract - PyImageSearch](https://www.pyimagesearch.com/2018/09/17/opencv-ocr-and-text-recognition-with-tesseract/)
https://youtu.be/j-3vuBynnOE
https://youtu.be/WvoLTXIjBYU
* [GitHub - tzutalin/labelImg: 🖍️ LabelImg is a graphical image annotation tool and label object bounding boxes in images](https://github.com/tzutalin/labelImg)
* [Creating your own object detector - Towards Data Science](https://towardsdatascience.com/creating-your-own-object-detector-ad69dda69c85)
* [How to train an object detection model easy for free | DLology](https://www.dlology.com/blog/how-to-train-an-object-detection-model-easy-for-free/)*
* [tf-coriander/build-from-source.md at master · hughperkins/tf-coriander · GitHub](https://github.com/hughperkins/tf-coriander/blob/master/doc/build-from-source.md)

* [python-docs-samples/detect.py at master · GoogleCloudPlatform/python-docs-samples · GitHub](https://github.com/GoogleCloudPlatform/python-docs-samples/blob/master/vision/cloud-client/detect/detect.py)
* [Python3 import and project layout · Gaoping Huang’s Blog](https://gaopinghuang0.github.io/2018/08/03/python3-import-and-project-layout#running-a-module-in-a-sub-package)














IN ACTION

GIFS COMING SOON (this is because I don't know Markdown well) --> ![Screenshot + Accompanying Text]()