{"id":4190,"date":"2018-08-31T20:57:36","date_gmt":"2018-08-31T18:57:36","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=4190"},"modified":"2023-06-09T12:01:09","modified_gmt":"2023-06-09T10:01:09","slug":"yourtube-a-simple-video-platform-in-you-personal-amazon-cloud","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2018\/08\/31\/yourtube-a-simple-video-platform-in-you-personal-amazon-cloud\/","title":{"rendered":"YourTube &#8211; A simple video platform in you personal amazon cloud"},"content":{"rendered":"<p>During the Dev4Cloud Levture i created a simple static webpage that uses Amazons S3 service for Hosting and video storage and amazons cognito for user authentification and role managemant.<\/p>\n<p><iframe loading=\"lazy\" src=\"https:\/\/d14kuhdhbhxd3j.cloudfront.net\/\" width=\"100%\" height=\"400px\"><\/iframe><\/p>\n<p><!--more--><\/p>\n<h2>Design considerations.<\/h2>\n<p>The platform was designed with simplicity in mind and there for i decided to go with as few services as possible. This is why this project uses no database. The features of the application as is are the following:<\/p>\n<ul>\n<li>Video storage grouped in channels<\/li>\n<li>Public viewing of videos<\/li>\n<li>Authorized users can:\n<ul>\n<li>Create channels<\/li>\n<li>Upload Videos<\/li>\n<li>Delete Channels<\/li>\n<li>Delete Videos<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Implementation<\/h2>\n<p>The system was implemented using Amazons web services but is designed in such a simple way that porting it to other cloud providers with an JavaScript API should not be to difficult.<\/p>\n<p>At first i created 2 separate Storage Buckets on amazons s3 object storage service. I configured one to act as a hosting service fore the application and the other one as storage.<\/p>\n<p>The next part was to create an Admin user on Amazons Cognito service and give him a role with full access rights to the video storage bucket and save the user id and secret key. Furthermore i created an Identity pool with anonymous users enabled and gave those read permissions on the storage bucket.<\/p>\n<p>Now i could upload the site itself to the Hosting Bucket.<\/p>\n<p>The site itself makes heavy use of Amazons aws JavaScript API and is build as a single page application. The API is used to authenticate and request the objects from the Video Storage Bucket.<\/p>\n<p>As a quick fix to ad SSL to the site i used amazons cloudfront CDN to cache the site.<\/p>\n<h2>Summary<\/h2>\n<p>The project itself was an interesting endeavor. I learned a lot about Amazons Cloud services. Going with a cloud based solution in this project had many upsides:<\/p>\n<ul>\n<li>It was free&nbsp; &#8211; Up to 5 GB storage is covered by amazons free licensing terms<\/li>\n<li>It is scale able &#8211; The storage grows with the videos, no additional storage expansions needed<\/li>\n<\/ul>\n<p>The only downside i have noticed was a bit higher cost of development hours.<\/p>\n<h2>Where to take this from here<\/h2>\n<p>For the future it is planed to ad meta data and thumbnails to both video and channel via images and text files which will be placed in the corresponding folders. Also a complete redesign of the UI is in order.<\/p>\n<p>The code of the project can be found<a href=\"https:\/\/github.com\/L0stW0lf\/YourTube\"> here.<\/a><\/p>\n<p>Written by Nils Kristjansson<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>During the Dev4Cloud Levture i created a simple static webpage that uses Amazons S3 service for Hosting and video storage and amazons cognito for user authentification and role managemant.<\/p>\n","protected":false},"author":902,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,120,650],"tags":[],"ppma_author":[768],"class_list":["post-4190","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-cloud-technologies","category-scalable-systems"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":25092,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2023\/07\/29\/ring-kameras-uberwachst-du-dein-umfeld-oder-amazon-hier-dich\/","url_meta":{"origin":4190,"position":0},"title":"Ring Kameras &#8211; \u00dcberwachst Du Dein Umfeld oder Amazon und Fremde hier Dich?","author":"Kristin Saueressig","date":"29. July 2023","format":false,"excerpt":"Es ist bereits aus vielen vorangestellten Blogbeitr\u00e4gen, Videos und Social-Media-Beitr\u00e4gen bekannt, dass Amazon eines der Unternehmen ist, das alles \u00fcber uns zu wissen scheint. Die letzte gr\u00f6\u00dfere Akquisition liegt inzwischen fast f\u00fcnf Jahre zur\u00fcck und handelt von dem Kauf der US-amerikanischen Firma Ring. Ring l\u00e4uft im Vergleich zu Alexa und\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/smart-ge734b1223_1280-1.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/smart-ge734b1223_1280-1.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/smart-ge734b1223_1280-1.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/smart-ge734b1223_1280-1.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2023\/07\/smart-ge734b1223_1280-1.jpg?resize=1050%2C600&ssl=1 3x"},"classes":[]},{"id":11973,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2020\/09\/30\/ts3-voice-channel-manager\/","url_meta":{"origin":4190,"position":1},"title":"TS3 Voice Channel Manager &#8211; Create and push a Bot to its Limits","author":"jk206","date":"30. September 2020","format":false,"excerpt":"by Jan Kaupe (jk206) Figure 1: Web Configuration Panel for the Bot Introduction TeamSpeak\u00b3 is a Voice-over-IP application allowing users to connect to a server where they can join Voice Channels to communicate with each other. Anyone can download and host own TS\u00b3 servers. Huge community servers have been established.\u2026","rel":"","context":"In &quot;Cloud Technologies&quot;","block_context":{"text":"Cloud Technologies","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/scalable-systems\/cloud-technologies\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/09\/project.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/09\/project.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/09\/project.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2020\/09\/project.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":26422,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2024\/09\/03\/how-to-not-get-rich-using-tiktok-and-aws\/","url_meta":{"origin":4190,"position":2},"title":"How to (not) get rich using TikTok and AWS","author":"Robin Schmidt","date":"3. September 2024","format":false,"excerpt":"In our Software Development for Cloud Computing course, we were tasked with building something, anything, using the cloud. After various discarded ideas, our team decided to create a platform aimed at automatically generating short-form videos. In this blog post, we will go over our development journey, the architectural decisions we\u2026","rel":"","context":"In &quot;Artificial Intelligence&quot;","block_context":{"text":"Artificial Intelligence","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/artificial-intelligence\/"},"img":{"alt_text":"How to (not) get rich using TikTok and AWS","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2024\/08\/Frame-2-1.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2024\/08\/Frame-2-1.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2024\/08\/Frame-2-1.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2024\/08\/Frame-2-1.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":22530,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/02\/28\/discord-monitoring-system-with-amplify-and-ec2\/","url_meta":{"origin":4190,"position":3},"title":"Discord Monitoring System with Amplify and EC2","author":"mk322","date":"28. February 2022","format":false,"excerpt":"Abstract Discord was once just a tool for gamers to communicate and socialize with each other, but since the pandemic started, discord gained a lot of popularity and is now used by so many other people, me included, who don't necessarily have any interest in video gaming. So after exploring\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/data-workflow.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/data-workflow.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/02\/data-workflow.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":2748,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2017\/08\/31\/developing-a-chat-server-and-client-in-the-cloud\/","url_meta":{"origin":4190,"position":4},"title":"Developing a Chat Server and Client in the Cloud","author":"Jan-Niklas Keck","date":"31. August 2017","format":false,"excerpt":"Introduction During the Lecture \"Software Development for Cloud Computing\" I decided to develop a Cloud based Chat Application with the help of IBM's Bluemix. The Application consists of 3 separate Applications: Chat Server: Allows Clients to connect to it, manages the Chat-Channels\/Users and relays messages sent from a client to\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/08\/toolchain-deploy.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/08\/toolchain-deploy.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/08\/toolchain-deploy.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2017\/08\/toolchain-deploy.png?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":4147,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2018\/08\/30\/using-the-power-of-google-cloud-api-a-dockerized-node-app-counting-words-in-prasentations\/","url_meta":{"origin":4190,"position":5},"title":"Using the power of google cloud API:  A dockerized node app counting words in prasentations.","author":"sd092","date":"30. August 2018","format":false,"excerpt":"For the Dev4Cloud lecture at HdM Stuttgart, we created a simple Go\/NodeJS\/React App, which helps people to keep track of often used words during presentations. In a presentation setting, most people tend to use too many fill words and to train against this, we want to introduce our presentation counter\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/08\/aufbau.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/08\/aufbau.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/08\/aufbau.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/08\/aufbau.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/08\/aufbau.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2018\/08\/aufbau.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":768,"user_id":902,"is_guest":0,"slug":"nk078","display_name":"nk078","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/f7827e036d11260c9a8a2b04c8c4860f75a38a6c921cbeed136afae24a7d06e8?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/4190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/902"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=4190"}],"version-history":[{"count":8,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/4190\/revisions"}],"predecessor-version":[{"id":24771,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/4190\/revisions\/24771"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=4190"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=4190"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=4190"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=4190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}