{"id":56715,"date":"2020-11-23T10:37:53","date_gmt":"2020-11-23T09:37:53","guid":{"rendered":"https:\/\/cfpowertools.com\/?p=56715"},"modified":"2025-02-12T22:21:57","modified_gmt":"2025-02-12T21:21:57","slug":"video-streaming-plugin-wordpress","status":"publish","type":"post","link":"https:\/\/cfpowertools.com\/ja\/article\/video-streaming-plugin-wordpress\/","title":{"rendered":"CF Power Tools\u5f37\u529b\u306a\u30d3\u30c7\u30aa\u30b9\u30c8\u30ea\u30fc\u30df\u30f3\u30b0\u30d7\u30e9\u30b0\u30a4\u30f3Wordpress\u306e\u30a2\u30af\u30b7\u30e7\u30f3\u3067\u30d3\u30c7\u30aa\u4fdd\u8b77"},"content":{"rendered":"<p>Cloudflare Stream offers its own <a href=\"https:\/\/wordpress.org\/plugins\/cloudflare-stream\/\" target=\"_blank\" rel=\"noopener\">free plugin<\/a> which, actually, has limited functionalities. So we created our <a href=\"https:\/\/cfpowertools.com\/ja\/\">CF Power Tools<\/a>\u00a0video streaming plugin wordpress for Cloudflare Stream to fill in that gap.<\/p>\n<p>We tested the &#8220;official&#8221; WordPress plugin but in our case, it was not powerful enough.<\/p>\n<p>We needed to integrate the functionality of signed URLs into WordPress to protect our videos because, in the end, we wanted to <span style=\"text-decoration: underline;\"><strong>prevent our videos to be downloadable by anyone.<\/strong><\/span><\/p>\n<p>CF Power Tools video streaming plugin WordPress tokenises the streaming process and generates one shortcode for each video that you can embed wherever you want in WordPress. If you want to know more, you can <a href=\"https:\/\/cfpowertools.com\/ja\/%e8%a8%98%e4%ba%8b\/cloudflare-stream-wordpress-plugin-for-video-protection\/\" rel=\"nofollow noopener\">read our detailed blog post<\/a>.<\/p>\n<p>Our video streaming plugin Wordpress easily integrates the signed URL capabilities (video protection) in your WordPress installation (classic, Gutenberg, and WPBakery), and allows streaming only from domains that you add to the allow list.<\/p>\n<h2>The\u00a0<strong>core functionalities<\/strong>\u00a0we needed (and the problems we solved) were:<\/h2>\n<p><strong>A)<\/strong> protect our videos by <strong>allowing only some domain origins<\/strong> directly from WordPress, pretty much as you do manually in CF:<\/p>\n<div class=\"lightbox-wrapper\">\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone wp-image-56757 size-large\" src=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/6b593ff09c0a8c0584fcc77caa0c4f701121a5fc-800x246.jpeg\" alt=\"\" width=\"800\" height=\"246\" title=\"\" srcset=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/6b593ff09c0a8c0584fcc77caa0c4f701121a5fc-800x246.jpeg 800w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/6b593ff09c0a8c0584fcc77caa0c4f701121a5fc-200x61.jpeg 200w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/6b593ff09c0a8c0584fcc77caa0c4f701121a5fc-768x236.jpeg 768w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/6b593ff09c0a8c0584fcc77caa0c4f701121a5fc-600x184.jpeg 600w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/6b593ff09c0a8c0584fcc77caa0c4f701121a5fc.jpeg 1054w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>So that the streaming would have only be possible from our domain cfpowertools.com<\/p>\n<\/div>\n<p><strong>B)<\/strong> make the <strong>video ID hidden from public..<\/strong> yes, normally it isn\u2019t!!<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-large wp-image-56758\" src=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/b6fe93e58e15e4c3c39192bf230031502181045e-800x304.jpeg\" alt=\"\" width=\"800\" height=\"304\" title=\"\" srcset=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/b6fe93e58e15e4c3c39192bf230031502181045e-800x304.jpeg 800w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/b6fe93e58e15e4c3c39192bf230031502181045e-200x76.jpeg 200w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/b6fe93e58e15e4c3c39192bf230031502181045e-768x291.jpeg 768w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/b6fe93e58e15e4c3c39192bf230031502181045e-1536x583.jpeg 1536w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/b6fe93e58e15e4c3c39192bf230031502181045e-2048x777.jpeg 2048w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/b6fe93e58e15e4c3c39192bf230031502181045e-600x228.jpeg 600w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>i.e. if you take your video ID and paste it after this URL you will see that the video streams perfectly publicly:<br \/>\n<a class=\"onebox\" href=\"https:\/\/watch.cloudflarestream.com\/yourNumericIDgoesHere\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">https:\/\/watch.cloudflarestream.com\/yourNumericIDgoesHere<\/a><\/p>\n<p><strong>C)<\/strong> to have a \u201c<strong>unlock button<\/strong>\u201d that would un-sign all the videos URLs in bulk. So, in case anything would happen with the tokenisation (e.g. WordPress updates, sudden plugin incompatibilities or malfunctions, etc) we would have ensured that users can still stream the videos, even if unprotected.<\/p>\n<p><strong><br \/>\nD)<\/strong> a <strong>Shortcode<\/strong> so to embed the videos wherever in\u00a0 WordPress (pretty much as the official CF plugin is doing)<\/p>\n<p><strong><br \/>\nE)<\/strong> managing all the streaming\u00a0<strong>parameters<\/strong>\u00a0(autoplay, poster, loop, etc)<\/p>\n<h2><strong><br \/>\nSo we made CF Power Tools Video Streaming Plugin Wordpress that works in 4 simple steps:<br \/>\n<\/strong><\/h2>\n<ol>\n<li><strong>A setting page get all the CF basic parameters (ID, email, API key, etc)<\/strong>:<br \/>\n<img decoding=\"async\" class=\"alignnone wp-image-56402 size-large\" src=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/settings-800x628.jpg\" alt=\"Video Streaming Plugin Wordpress\" width=\"800\" height=\"628\" title=\"\" srcset=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/settings-800x628.jpg 800w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/settings-200x157.jpg 200w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/settings-768x603.jpg 768w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/settings-600x471.jpg 600w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/settings.jpg 1500w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/li>\n<li>There you can also set a\u00a0<strong>Buffer time<\/strong>. Which will be added to the video length.<br \/>\nE.g. if your video last 5 min and your buffer time is 5 min, the generated token for the streaming session will be invalidated after 10 minutes.<\/li>\n<li><strong>You can add your video as you would do with a normal WordPress page<\/strong>, giving it a title and inserting your video ID taken directly from CF stream interface:<\/li>\n<li>Once you hit \u201cpublish\u201d or &#8220;update&#8221; it will automatically add the current domain to the allow list only on CF, so that you don\u2019t have to insert the domain origins via CF interface and sign the URL, de facto, protecting the video. E.g. if someone wanted to grab your URL and copy it in a forum or download it.<\/li>\n<li><strong>You get all your videos and their shortcodes:<\/strong>\n<div class=\"lightbox-wrapper\">\n<div class=\"meta\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-56391\" src=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/all-videos-800x462.jpg\" alt=\"\" width=\"800\" height=\"462\" title=\"\" srcset=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/all-videos-800x462.jpg 800w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/all-videos-200x116.jpg 200w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/all-videos-768x444.jpg 768w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/all-videos-600x347.jpg 600w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/all-videos.jpg 1500w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/div>\n<div><\/div>\n<\/div>\n<\/li>\n<li><strong>you simply paste the Shortcode wherever you want in your Wordpress<\/strong> + add any parameter you want after it<img decoding=\"async\" class=\"emoji\" title=\":wink:\" src=\"https:\/\/sjc4.discourse-cdn.com\/cloudflare\/images\/emoji\/apple\/wink.png?v=9\" alt=\":wink:\" \/>\n<div class=\"lightbox-wrapper\"><\/div>\n<\/li>\n<\/ol>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-56759\" src=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/8d7199d81b088f498fe34c26222520c8ce1f2e83-800x469.png\" alt=\"\" width=\"800\" height=\"469\" title=\"\" srcset=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/8d7199d81b088f498fe34c26222520c8ce1f2e83-800x469.png 800w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/8d7199d81b088f498fe34c26222520c8ce1f2e83-200x117.png 200w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/8d7199d81b088f498fe34c26222520c8ce1f2e83-768x450.png 768w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/8d7199d81b088f498fe34c26222520c8ce1f2e83-600x352.png 600w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/8d7199d81b088f498fe34c26222520c8ce1f2e83.png 1500w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>Our <a href=\"https:\/\/cfpowertools.com\/ja\/#pricing\">CF Power Tools<\/a>\u00a0video streaming plugin Wordpress allows for <span style=\"font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;\">our videos to stream in a \u201cprotected way\u201d, eg. instead of the ID, a time-bound token is shown on the DOM and the video ID remains hidden:<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-56760\" src=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/e2119e426123a55edc64157db98b6223162e5b58-800x208.jpeg\" alt=\"\" width=\"800\" height=\"208\" title=\"\" srcset=\"https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/e2119e426123a55edc64157db98b6223162e5b58-800x208.jpeg 800w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/e2119e426123a55edc64157db98b6223162e5b58-200x52.jpeg 200w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/e2119e426123a55edc64157db98b6223162e5b58-768x200.jpeg 768w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/e2119e426123a55edc64157db98b6223162e5b58-1536x400.jpeg 1536w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/e2119e426123a55edc64157db98b6223162e5b58-2048x533.jpeg 2048w, https:\/\/cfpowertools.com\/wp-content\/uploads\/2020\/11\/e2119e426123a55edc64157db98b6223162e5b58-600x156.jpeg 600w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>We hope this may be of any interest to anyone facing our same need vs Cloudflare stream video protection, signed URL, tokenisation, etc.<\/p>\n<p>We are pretty sure there are better, faster and more efficient ways to do this, so we are very open to read your thoughts, comments and expertise and to learn from it to improve our video streaming plugin Wordpress\u00a0<img decoding=\"async\" class=\"emoji\" title=\":wink:\" src=\"https:\/\/sjc4.discourse-cdn.com\/cloudflare\/images\/emoji\/apple\/wink.png?v=9\" alt=\":wink:\" \/><\/p>\n<p><a href=\"https:\/\/cfpowertools.com\/ja\/\">CF Power Tools\u3092\u5165\u624b<\/a>\u00a0video streaming plugin Wordpress today!\u00a0<a href=\"https:\/\/cfpowertools.com\/ja\/#faq\">Read our FAQ<\/a> or feel free to <a href=\"https:\/\/cfpowertools.com\/ja\/get-in-touch\/\">get in touch<\/a> with us for any comments, doubts or questions you may have.<\/p>","protected":false},"excerpt":{"rendered":"<p>Cloudflare Stream offers its own free plugin which, actually, has limited functionalities. So we created our CF Power Tools\u00a0video streaming plugin wordpress for Cloudflare Stream to fill in that gap. We tested the &#8220;official&#8221; WordPress plugin but in our case, it was not powerful enough. We needed to integrate the functionality of signed URLs into WordPress to protect our videos because, in the end, we wanted to prevent our videos to be downloadable by anyone. CF Power Tools video streaming plugin WordPress tokenises the streaming process and generates one shortcode for each video that you can embed wherever you want in WordPress. If you want to know more, you can [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":57063,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[142],"tags":[],"class_list":["post-56715","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cfpt"],"_links":{"self":[{"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/posts\/56715","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/comments?post=56715"}],"version-history":[{"count":0,"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/posts\/56715\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/media\/57063"}],"wp:attachment":[{"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/media?parent=56715"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/categories?post=56715"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cfpowertools.com\/ja\/wp-json\/wp\/v2\/tags?post=56715"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}