{"id":42288,"date":"2025-04-02T11:51:07","date_gmt":"2025-04-02T11:51:07","guid":{"rendered":"https:\/\/new-blog.artlist.io\/blog\/?p=42288"},"modified":"2026-02-15T12:49:26","modified_gmt":"2026-02-15T12:49:26","slug":"how-to-create-ai-videos-with-images","status":"publish","type":"post","link":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/","title":{"rendered":"6 essential tips to perfect your AI-generated images and videos"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Master the art of generating AI content<\/h2>\n\n\n\n<p>Generative AI is a game-changer for creators. But to get the most out of it, you need to know how to use it right. Whether you\u2019re making a short film teaser or <a href="\&quot;https:\/\/artlist.io\/blog\/how-to-make-a-youtube-thumbnail\/\&quot;">thumbnails for your YouTube video<\/a>, the quality of your output depends on the details.&nbsp;<\/p>\n\n\n\n<p>In this article, we\u2019re breaking down six key strategies to help you perfect your AI-generated visuals. While these practical tips are relevant for all types of generative AI tools, they are particularly useful for Artlist\u2019s <a href="\&quot;https:\/\/artlist.io\/ai\/video-generator\&quot;" target=\"_blank\" rel=\"noreferrer noopener\">AI video generator<\/a>, a carefully curated collection of generative AI models and visual styles to fit the needs of video creators. You can try it for free today.\u00a0<\/p>\n\n\n\n<div class=\"b-youtube-embed\" id=\"xBRLaKspIpA\">\n    <div class=\"play-button\"><\/div>\n            <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/xBRLaKspIpA\/maxresdefault.jpg\&quot;" class=\"asset original\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/xBRLaKspIpA\/maxresdefault.jpg\&quot;" class=\"asset desktop\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/xBRLaKspIpA\/maxresdefault.jpg\&quot;" class=\"asset desktop-small\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/xBRLaKspIpA\/maxresdefault.jpg\&quot;" class=\"asset tablet\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/xBRLaKspIpA\/maxresdefault.jpg\&quot;" class=\"asset mobile\" alt=\"Artlist Blog\"\ />\n<\/div>\n\n\n\n\n<p>Now, let\u2019s dive into the tips and start making your AI content shine.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tip 1: Start with stills<\/h2>\n\n\n\n<p>Before you even think about generating your AI videos, nail your image. Why? Because great videos start with great frames, and in the world of AI, that means getting your still image just right before you hit Animate.<\/p>\n\n\n\n<p>It\u2019s quicker, more cost-effective, and gives you more room to experiment. You can fine-tune your prompt, tweak the lighting, and adjust the framing, all without using too many credits or waiting on longer renders.&nbsp;<\/p>\n\n\n\n<p>This is why we built the Artlist AI video generator to generate an image before turning it into a video. It\u2019s designed to help you get the best results, fast, and get you the best use of your credits. If it is easier to write in your native language, you can enter text in your language of choice to write prompts and generate stunning AI images and videos.&nbsp;<\/p>\n\n\n\n<p>With <a href="\&quot;https:\/\/artlist.io\/ai\/image-generator\/image-to-image\&quot;" target=\"_blank\" rel=\"noreferrer noopener\">Image to Image<\/a>, you can upload or generate an image and modify it to make it your own \u2014 change the background, add or remove objects, and more. It is simple to upload your own image \u2014 JPG or PNG \u2014 and animate it into an AI video. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"600\" height=\"506\" src="\&quot;https:\/\/artlist.io\/blog\/wp-content\/uploads\/2025\/06\/Image-to-Image.gif\&quot;" alt=\"\" class=\"wp-image-46056\"\/><\/figure>\n\n\n\n<p>Another AI tool allows you to blend multiple images into one: <a href="\&quot;https:\/\/artlist.io\/blog\/how-to-blend-images-ai\/\&quot;">Upload your images<\/a> and merge them into one complete scene, blending characters or elements with a single prompt.<\/p>\n\n\n\n<p>With all these options, you have even more creative flexibility \u2014 whether you\u2019re refining your own artwork or starting from an existing visual concept, you\u2019re in control from the very first frame.<\/p>\n\n\n\n<div class=\"b-youtube-embed\" id=\"o6uXwR5Ozkk\">\n    <div class=\"play-button\"><\/div>\n            <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/o6uXwR5Ozkk\/maxresdefault.jpg\&quot;" class=\"asset original\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/o6uXwR5Ozkk\/maxresdefault.jpg\&quot;" class=\"asset desktop\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/o6uXwR5Ozkk\/maxresdefault.jpg\&quot;" class=\"asset desktop-small\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/o6uXwR5Ozkk\/maxresdefault.jpg\&quot;" class=\"asset tablet\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/o6uXwR5Ozkk\/maxresdefault.jpg\&quot;" class=\"asset mobile\" alt=\"Artlist Blog\"\ />\n<\/div>\n\n\n\n\n<h2 class=\"wp-block-heading\">Tip 2: Write better prompts for better results&nbsp;<\/h2>\n\n\n\n<p>Your prompt is the secret sauce \u2014 it\u2019s how you communicate your creative vision to the AI. So the more specific and descriptive you are, the better your results will be. Treat your prompt like you\u2019re briefing a cinematographer or concept artist, and you\u2019ll get results that are a lot closer to what you had in mind.<\/p>\n\n\n\n<p>Not sure how to refine your prompt? Use the Enhance button in Artlist\u2019s AI video generator tool to automatically expand your text into a more detailed, creative prompt that will guide the AI. You can keep enhancing the prompt to get more suggestions, and edit the enhancement to perfect the details. To learn even more about how to get great results, check out <a href="\&quot;https:\/\/artlist.io\/blog\/ai-art-and-image-prompts\/\&quot;">our complete guide to mastering prompts<\/a>.&nbsp;<\/p>\n\n\n\n<p><strong>Prompt:<\/strong> \u201c<em>A floating jellyfish city drifting through a cotton candy sky, with giant translucent tendrils hanging below, glowing softly in pastel pinks, purples, and electric blues. Small airships and flying whales move around it, casting dreamy shadows across the clouds. The scene is surreal and magical, with sparkling particles in the air, golden hour light, soft lens flare, whimsical atmosphere, and ultra-detailed, dreamy, and ethereal composition.<\/em>\u201d <\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src="\&quot;https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcS8rggQkA0b9gXIhb0FwO8XtYnRD9xcDOeFUW5qkR-rheJ8vbUEmdLnJou8x7-655qdR6TKNouM6pvuKLpXOmdSTjiy_1WRZH88zjawYk20tnLK_V4hGTzjnfBdC1SgvwRTN1U?key=hfDakd8bMGPpycCwOpf_tK4R\&quot;" alt=\"Image of floating jellyfish in a candy sky made with Artlist's AI image and video generator \"\ /><\/figure>\n\n\n\n<p><strong>Enhanced Prompt<\/strong>: \u201c<em>Capture an ultra-detailed, professional photograph using a Canon EOS R5 that showcases a surreal, ethereal cityscape. The city resembles floating jellyfish, suspended in a sky swirled with hues of cotton candy, with gargantuan tendrils, translucent and softly glowing in pastel pinks, purples, and electric blues, hanging below. Add small, intricate airships and majestic flying whales that traverse the sky, their forms casting whimsical shadows across the cloud canvas. The atmosphere should emit a sense of magic, speckled with sparkling particles drifting in the air, bathed in the golden wash of the hour\u2019s light. Incorporate a gentle, soft lens flare to enhance the dreamy ambience. The composition must be shot in RAW, ensuring perfect exposure, complemented by professional studio lighting techniques. Create a shallow depth of field for a focused, sharp image, and apply professional color grading to accentuate the high-end photography.&#8221;<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src="\&quot;https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcDaTqocbKSXpRfR3DicQ2By8-jggh7OaWDId8mbgpqfq9KAHhOHKB5gadc8aAbeLMGH1j0TRHnKuNMnfsIq3a-xAbEbBHXRJ2ii6Xdbi_Ttkmi5WxK_BLt-B2ieDPcsxI7n0a1Nw?key=hfDakd8bMGPpycCwOpf_tK4R\&quot;" alt=\"Image of floating jellyfish in a candy sky with a city below made with Artlist's AI image and video generator \"\ /><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Tip 3: Combine AI with other content<\/h2>\n\n\n\n<p>AI-generated visuals are powerful, but they\u2019re just one piece of the puzzle. To really bring your projects to life, combine them with real-world assets from <a href="\&quot;https:\/\/artlist.io\/stock-footage\&quot;" target=\"_blank\" rel=\"noreferrer noopener\">Artlist\u2019s stock footage collection<\/a>. You can then use Artlist to find <a href="\&quot;https:\/\/artlist.io\/sfx\&quot;" target=\"_blank\" rel=\"noreferrer noopener\">royalty-free sound effects<\/a> and <a href="\&quot;https:\/\/artlist.io\/royalty-free-music\&quot;" target=\"_blank\" rel=\"noreferrer noopener\">music<\/a>, and also <a href="\&quot;https:\/\/artlist.io\/blog\/ai-voiceover-new-features\/\&quot;">generate AI voiceovers<\/a> to craft a complete project.&nbsp;<\/p>\n\n\n\n<p>Once you\u2019ve generated your images and videos in Artlist, you\u2019ll<a href="\&quot;https:\/\/artlist.io\/blog\/how-to-use-artlist-ai-toolkit\/\&quot;"> find them in your sessions on the left of the Artlist AI Toolkit.<\/a> From there, you can download them, save them to <a href="\&quot;https:\/\/artlist.io\/blog\/artboard-feature\/\&quot;">Artboards<\/a>, or add them to your Favorites. This will help you stay organized and easily combine all your chosen elements so you get a finished project that feels authentic and intentional.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tip 4: Play to AI\u2019s strengths<\/h2>\n\n\n\n<p>Generative AI is an amazing tool, but like anything, it works best when you know what it\u2019s particularly good at. To get the most out of it, focus on where AI delivers its strongest results.&nbsp;<\/p>\n\n\n\n<p>Here are some areas where creators are getting particularly great results with generative AI tools:<\/p>\n\n\n\n<ul>\n<li><strong>Photo-realistic scenes<\/strong>: You no longer need a huge budget to build complex sets. Now you can generate detailed visuals, complete with actors and props to fit your vision.<\/li>\n\n\n\n<li><strong>Making the impossible possible<\/strong>: Until now, creators have been held back by the rules of physics or the cost of expensive special effects. Now you can generate wild building designs, make oceans part like curtains, or create a chase scene across the sky, in minutes.&nbsp;<\/li>\n\n\n\n<li><strong>Fantasy and surreal imagery<\/strong>: AI is perfect for generating vivid, dreamlike visuals, fantasy worlds, or stylized art that would be costly or nearly impossible to create with traditional production methods.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"744\" height=\"744\" src="\&quot;https:\/\/artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Multipurpose-1.jpg\&quot;" alt=\"Whimsical scene of five figures leaping through soft clouds at sunrise generated by Artlist's AI video generator, ideal visual inspiration for video creators using sound effects and video editing software to craft fantasy content.\" class=\"wp-image-42290\" srcset=\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Multipurpose-1.jpg 744w, https:\ \ new-blog.artlist.io\ blog\ wp-content\ uploads\ 2025\ 03\ Multipurpose-1-300x300.jpg 300w, https:\ \ new-blog.artlist.io\ blog\ wp-content\ uploads\ 2025\ 03\ Multipurpose-1-150x150.jpg 150w\" sizes=\"(max-width: 744px) 100vw, 744px\" \ /><\/figure>\n\n\n\n<ul>\n<li><strong>Previsualization and ideation<\/strong>: Quickly turn ideas into visuals by using AI to build mockups, concept art, or rough scenes. This is great for pitching or refining creative direction before filming begins.<br><\/li>\n\n\n\n<li><strong>Moodboards and storytelling<\/strong>: Easily generate consistent visual assets to build moodboards or storyboards that bring your narrative or aesthetic vision to life in minutes.<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"744\" height=\"744\" src="\&quot;https:\/\/artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Storyboard.jpg\&quot;" alt=\"Black and white illustration of a person scaling a tall skyscraper with a rope, set against a detailed cityscape generated by Artlist's AI video generator\u2014ideal for content creators crafting urban adventure scenes.\" class=\"wp-image-42299\" srcset=\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Storyboard.jpg 744w, https:\ \ new-blog.artlist.io\ blog\ wp-content\ uploads\ 2025\ 03\ Storyboard-300x300.jpg 300w, https:\ \ new-blog.artlist.io\ blog\ wp-content\ uploads\ 2025\ 03\ Storyboard-150x150.jpg 150w\" sizes=\"(max-width: 744px) 100vw, 744px\" \ /><\/figure>\n\n\n\n<p>Of course, this shouldn\u2019t limit you. The beauty of generative AI tools is that they can do anything, and they\u2019re improving all the time. Experimentation is key, so have fun and lean into what they do best, then use real footage, music, or voiceovers to ground your story.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Tip 5: Choose the best resolution and aspect ratio<\/h2>\n\n\n\n<p>Choosing the <a href="\&quot;https:\/\/artlist.io\/blog\/ai-upscale-video-guide\/\&quot;">right resolution<\/a> and aspect ratio might seem like a small detail, but it\u2019s very important. Whether you\u2019re creating a video for social media or a cinematic masterpiece, picking the right specs makes sure your content looks great everywhere.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignleft size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1009\" height=\"294\" src="\&quot;https:\/\/artlist.io\/blog\/wp-content\/uploads\/2026\/02\/Screenshot-2026-02-04-at-11.59.12.png\&quot;" alt=\"\" class=\"wp-image-58836\" style=\"width:858px;height:auto\" srcset=\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2026\/02\/Screenshot-2026-02-04-at-11.59.12.png 1009w, https:\ \ new-blog.artlist.io\ blog\ wp-content\ uploads\ 2026\ 02\ Screenshot-2026-02-04-at-11.59.12-300x87.png 300w, https:\ \ new-blog.artlist.io\ blog\ wp-content\ uploads\ 2026\ 02\ Screenshot-2026-02-04-at-11.59.12-768x224.png 768w\" sizes=\"(max-width: 1009px) 100vw, 1009px\" \ /><\/figure><\/div>\n\n\n<p>For high-quality, cinematic visuals, 1080p (Full HD) is the way to go, but for other projects, 720p HD might be the right resolution for you. Make every detail count with high-resolution outputs for any screen. Using the Artlist AI video generator, you can easily double the resolution to 4K with the Upscale button, on the right of your <a href="\&quot;https:\/\/artlist.io\/blog\/ai-image-creation-for-videos\/\&quot;">AI-generated image<\/a> or video, for high-quality results. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"416\" src="\&quot;https:\/\/artlist.io\/blog\/wp-content\/uploads\/2025\/06\/Upscale.gif\&quot;" alt=\"\" class=\"wp-image-46047\"\/><\/figure>\n\n\n\n<p>And don\u2019t forget about <a href="\&quot;https:\/\/artlist.io\/blog\/aspect-ratio\/\&quot;">aspect ratio<\/a>. Landscape 16:9 is standard for video, but if you\u2019re creating content for Instagram, a 9:16 ratio might work better. Make sure your content is optimized for where it\u2019s going to be seen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1001\" height=\"410\" src="\&quot;https:\/\/artlist.io\/blog\/wp-content\/uploads\/2026\/02\/Screenshot-2026-02-04-at-12.01.05.png\&quot;" alt=\"\" class=\"wp-image-58845\" srcset=\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2026\/02\/Screenshot-2026-02-04-at-12.01.05.png 1001w, https:\ \ new-blog.artlist.io\ blog\ wp-content\ uploads\ 2026\ 02\ Screenshot-2026-02-04-at-12.01.05-300x123.png 300w, https:\ \ new-blog.artlist.io\ blog\ wp-content\ uploads\ 2026\ 02\ Screenshot-2026-02-04-at-12.01.05-768x315.png 768w\" sizes=\"(max-width: 1001px) 100vw, 1001px\" \ /><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Tip 6: Play around, embrace experimentation&nbsp;<\/h2>\n\n\n\n<p>AI is a tool, and like any tool, the more you experiment, the better you\u2019ll get at using it. Don\u2019t be afraid to push the boundaries of what your AI can do. Try different text prompts, tweak your parameters, and explore different variations of the same concept.<\/p>\n\n\n\n<p>If you\u2019re generating a scene, play around with elements like color tones, object placement, or even the time of day. AI can surprise you, so be open-minded and let it! By embracing experimentation, you\u2019ll unlock even more creative possibilities and find new ways to bring your ideas to life.<\/p>\n\n\n\n<p>For example, the artist <a href="\&quot;https:\/\/artlist.io\/stock-footage\/artist\/murad-muradov\/1460\&quot;" target=\"_blank\" rel=\"noreferrer noopener\">Murad Muradov<\/a> loves experimenting with AI video. Check out some of his clips that are available for download in the <a href="\&quot;https:\/\/artlist.io\/stock-footage\/story\/covered\/6013974\&quot;" target=\"_blank\" rel=\"noreferrer noopener\">Artlist catalog<\/a>.<\/p>\n\n\n\n\n    <div class=\"clipsContainer\" id=\"69d00a55914d2\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"footage\" == 'footage') {\n                if(\"6402842\" == '') { \/\/ if this is a request for multiple clips by attributes\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query ClipList($page: Int, $sortType: Int, $categoryIds: String, $searchTerm: String) {\n\t\t\t\t\t\t\t\tclipList(page: $page, sortType: $sortType, categoryIds: $categoryIds, searchTerm: $searchTerm) {\n\t\t\t\t\t\t\t\t  exactResults  {\n\t\t\t\t\t\t\t\t\tclipPath\n\t\t\t\t\t\t\t\t\tclipNameForUrl\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tisNew\n\t\t\t\t\t\t\t\t\tfilmMakerDisplayName\n\t\t\t\t\t\t\t\t\timageUrl\n\t\t\t\t\t\t\t\t\tthumbnailUrl\n\t\t\t\t\t\t\t\t\twidth\n\t\t\t\t\t\t\t\t\tvideoUrl\n\t\t\t\t\t\t\t\t\trawFileExt\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n\t\t\t\t\t\t\t\t\"page\": 1,\n\t\t\t\t\t\t\t\t\"sortType\": 1,\n\t\t\t\t\t\t\t\t\"categoryIds\": null,\n\t\t\t\t\t\t\t\t\"searchTerm\": \"\"\n\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('footage list: ', res);\n                            var data = res.data.clipList.exactResults;\n                            if ($(\"#69d00a55914d2\").length && data.length > 0) {\n                                createClipsGrid(data, \"69d00a55914d2\");\n                            } else if ($(\"#69d00a55914d2\").length && data.length == 0) {\n                                $(\"#69d00a55914d2\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                } else if(\"6402842\" !== '') { \/\/ if this is a request for a specific clip by id\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query Clip($clipId: Int!) {\n\t\t\t\t\t\t\t\tclip(id: $clipId) {\n\t\t\t\t\t\t\t\t\tclipPath\n\t\t\t\t\t\t\t\t\tclipNameForUrl\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tisNew\n\t\t\t\t\t\t\t\t\tfilmMakerDisplayName\n\t\t\t\t\t\t\t\t\timageUrl\n\t\t\t\t\t\t\t\t\tthumbnailUrl\n\t\t\t\t\t\t\t\t\twidth\n\t\t\t\t\t\t\t\t\tvideoUrl\n\t\t\t\t\t\t\t\t\trawFileExt\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n\t\t\t\t\t\t\t\t\"clipId\": 6402842\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('specific footage: ', res);\n                            var data = res.data.clip;\n                            if ($(\"#69d00a55914d2\").length && data !== '') {\n                                createClipsGrid(data, \"69d00a55914d2\");\n                            } else if ($(\"#69d00a55914d2\").length && data.length == '') {\n                                $(\"#69d00a55914d2\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                }\n            } else if(\"footage\" == 'templates') {\n                if(\"6402842\" === '') {\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query TemplatesList($payload: TemplatesByTermSearchPayload!) {\n                                templatesList(payload: $payload) {\n                                    nameForUrl\n                                    id\n                                    name\n                                    isNew\n                                    artistName\n                                    thumbnailUrl\n                                    previewVideoFileUrl\n                                }\n                            }`,\n                            variables: `{\n                                \"payload\": {\n                                    \"page\": 1,\n                                    \"take\": 1,\n                                    \"sortBy\": \"1\",\n                                    \"categories\": null,\n                                    \"searchTerms\": \"\"\n                                }\n                            }`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('templates list: ', res);\n                            var data = res.data.templatesList;\n                            if ($(\"#69d00a55914d2\").length && data.length > 0) {\n                                createClipsGrid(data, \"69d00a55914d2\");\n                            } else if ($(\"#69d00a55914d2\").length && data.length == 0) {\n                                $(\"#69d00a55914d2\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                    } else if(\"6402842\" !== '') {\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query Template($ids: [String!]!, $page: Int!, $take: Int!) {\n\t\t\t\t\t\t\t\ttemplatesByIds(ids: $ids, page: $page, take: $take) {\n\t\t\t\t\t\t\t\t\tnameForUrl\n                                    id\n                                    name\n                                    isNew\n                                    artistName\n                                    thumbnailUrl\n                                    previewVideoFileUrl\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n                                \"ids\": [\"6402842\"],\n                                \"page\": 1,\n                                \"take\": 1\n\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('specific template: ', res);\n                            var data = res.data.templatesByIds[0];\n                            if ($(\"#69d00a55914d2\").length && data !== '') {\n                                createClipsGrid(data, \"69d00a55914d2\");\n                            } else if ($(\"#69d00a55914d2\").length && data.length == '') {\n                                $(\"#69d00a55914d2\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                }\n            }\n\n            function createClipsGrid(data, clipsContainerId){\n                const container = $(\"#\" + clipsContainerId);\n                let playerSrc = '';\n\n                $.each(data, function(index, clip) {\n                    if(\"6402842\" !== '') { \/\/ if this is a request for a specific clip by id - then the data is not an array of clips but only one clip and that's why the \"clip\" variable is actually the \"data\"\n                        index = 0\n                        clip = data;\n                    }\n                    if ((index) < 1) {\n                        \/\/ clip container\n                        const clipContainer = $(\"<div>\").addClass(\"clipContainer single_clip\");\n                        \/\/ new badge\n                        if (clip.isNew) {\n                            clipContainer.append('<span class=\"isNewBadge\">NEW<\/span>');\n                        }\n                        \/\/ video\n                        let videoElement = document.createElement('video');\n                        videoElement.setAttribute('playsinline', '');\n                        videoElement.setAttribute('webkit-playsinline', '');\n                        videoElement.setAttribute('x5-playsinline', '');\n                        videoElement.setAttribute('preload', 'auto');\n                        \n                        clipContainer.append(videoElement);\n                        \/\/ clip name and artist name\n                        let clipName = '';\n                        let artistName = '';\n                        if(\"footage\" == 'footage') {\n                            clipName = clip.clipNameForUrl;\n                            clipName = clipName.replace(\/-\/g, \", \");\n                            clipName = $(\"<a>\").addClass(\"clipName\").attr(\"href\", \"https:\/\/artlist.io\/stock-footage\/clip\/\" + clip.clipNameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").text(clipName);\n                            artistName = $(\"<div>\").addClass(\"artistName\").text('By ' + clip.filmMakerDisplayName + '');\n                        } else if(\"footage\" == 'templates') {\n                            clipName = $(\"<a>\").addClass(\"clipName\").attr(\"href\", \"https:\/\/artlist.io\/video-templates\/\" + clip.nameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").text(clip.name);\n                            artistName = $(\"<div>\").addClass(\"artistName\").text('By ' + clip.artistName + '');\n                        }\n                        const clipNames = $(\"<span>\").addClass(\"clipNames\").append(clipName, artistName);\n                        \/\/ download button\n                        let clipDownload = '';\n                        if(\"footage\" == 'footage') {\n                            clipDownload = $(\"<a>\").addClass(\"clipDownload\").attr(\"href\", \"https:\/\/artlist.io\/stock-footage\/clip\/\" + clip.clipNameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").html('<i class=\"icon download white\"><\/i>');\n                        } else if(\"footage\" == 'templates') {\n                            clipDownload = $(\"<a>\").addClass(\"clipDownload\").attr(\"href\", \"https:\/\/artlist.io\/video-templates\/\" + clip.nameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").html('<i class=\"icon download white\"><\/i>');\n                        }\n                        \/\/ overlay\n                        const overlay = $(\"<div>\").addClass(\"overlay\");\n                        overlay.append(clipNames, clipDownload);\n\n                        \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                        clipContainer.append(videoElement, overlay);\n\n                        \/\/ if this is a preview of only one specific clip (by id)\n                        if(\"6402842\" !== '') {\n                            $(container).addClass(\"clipContainerSingular\")\n                        }\n\n                        \/\/ append audio player container into main playlist container\n                        container.append(clipContainer[0]);\n\n                        if(\"footage\" == 'footage') {\n                            playerSrc =  clip.clipPath;\n                        } else if(\"footage\" == 'templates') {\n                            playerSrc =  clip.previewVideoFileUrl;\n                        }\n                        const player = videojs(videoElement, {\n                            muted: true,\n                            autoplay: true,\n                        });\n\n                        player.src({\n                            src: playerSrc,\n                            type: 'application\/x-mpegURL'\n                        });\n\n                        \/* SEGMENT EVENTS *\/\n                        const special_data = getProps();\n\n                        \/* media played *\/\n                        var $videoElement = $(videoElement);\n                        $videoElement.on('play', function() {\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/* media paused *\/\n                        var $videoElement = $(videoElement);\n                        $videoElement.on('pause', function() {\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/* media viewed *\/\n                        const observer = new IntersectionObserver(entries => {\n                            entries.forEach(entry => {\n                                if (entry.isIntersecting) {\n                                    var assetId = clip.id;\n                                    var artist = clip.filmMakerDisplayName || clip.artistName;\n                                    var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                                    var asset_type = null;\n                                    if(\"footage\" == 'footage') {\n                                        asset_type = 'footage';\n                                    } else if(\"footage\" == 'templates') {\n                                        asset_type = 'template';\n                                    }\n                                    analytics.track(\"media viewed\", {\n                                        asset_id: assetId || null,\n                                        asset_type: asset_type || null,\n                                        click_source: 'player',\n                                        artist: artist || null,\n                                        title: title || null,\n                                        genre: null,\n                                        ...special_data,\n                                    });\n                                    observer.unobserve(entry.target);\n                                }\n                            });\n                        }, {\n                            threshold: 0.5\n                        });\n                        observer.observe($videoElement[0]);\n\n                        \/* media downloaded *\/\n                        $videoElement.closest('.clipContainer').find('.clipName').on('click', function() {\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media downloaded\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n                        $videoElement.closest('.clipContainer').find('.clipDownload').on('click', function() {\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media downloaded\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/\/ check screen size\n                        var mobileScreen = window.matchMedia('(max-width: 767px)');\n                        if (mobileScreen.matches) { \/\/ mobile\n                            const observer = new IntersectionObserver(function(entries) {\n                                entries.forEach(entry => {\n                                    if (entry.isIntersecting) {\n                                        player.play(); \/\/ Play the video when it enters the viewport\n                                    } else {\n                                        player.pause(); \/\/ Pause the video when it goes out of the viewport\n                                    }\n                                });\n                            });\n                            observer.observe(videoElement);\n                        } else { \/\/ desktop\n                            clipContainer.on('mouseenter', function() {\n                                player.play();\n                            });\n\n                            clipContainer.on('mouseleave', function() {\n                                player.pause();\n                            });\n                        }\n\n                    }\n                    if(\"6402842\" !== '') { \/\/ if this is a request for a specific clip by id - then break out of loop after first time bc it's not an array\n                        return false;\n                    }\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n\n    <div class=\"clipsContainer\" id=\"69d00a55915a6\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"footage\" == 'footage') {\n                if(\"6402845\" == '') { \/\/ if this is a request for multiple clips by attributes\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query ClipList($page: Int, $sortType: Int, $categoryIds: String, $searchTerm: String) {\n\t\t\t\t\t\t\t\tclipList(page: $page, sortType: $sortType, categoryIds: $categoryIds, searchTerm: $searchTerm) {\n\t\t\t\t\t\t\t\t  exactResults  {\n\t\t\t\t\t\t\t\t\tclipPath\n\t\t\t\t\t\t\t\t\tclipNameForUrl\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tisNew\n\t\t\t\t\t\t\t\t\tfilmMakerDisplayName\n\t\t\t\t\t\t\t\t\timageUrl\n\t\t\t\t\t\t\t\t\tthumbnailUrl\n\t\t\t\t\t\t\t\t\twidth\n\t\t\t\t\t\t\t\t\tvideoUrl\n\t\t\t\t\t\t\t\t\trawFileExt\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n\t\t\t\t\t\t\t\t\"page\": 1,\n\t\t\t\t\t\t\t\t\"sortType\": 1,\n\t\t\t\t\t\t\t\t\"categoryIds\": null,\n\t\t\t\t\t\t\t\t\"searchTerm\": \"\"\n\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('footage list: ', res);\n                            var data = res.data.clipList.exactResults;\n                            if ($(\"#69d00a55915a6\").length && data.length > 0) {\n                                createClipsGrid(data, \"69d00a55915a6\");\n                            } else if ($(\"#69d00a55915a6\").length && data.length == 0) {\n                                $(\"#69d00a55915a6\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                } else if(\"6402845\" !== '') { \/\/ if this is a request for a specific clip by id\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query Clip($clipId: Int!) {\n\t\t\t\t\t\t\t\tclip(id: $clipId) {\n\t\t\t\t\t\t\t\t\tclipPath\n\t\t\t\t\t\t\t\t\tclipNameForUrl\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tisNew\n\t\t\t\t\t\t\t\t\tfilmMakerDisplayName\n\t\t\t\t\t\t\t\t\timageUrl\n\t\t\t\t\t\t\t\t\tthumbnailUrl\n\t\t\t\t\t\t\t\t\twidth\n\t\t\t\t\t\t\t\t\tvideoUrl\n\t\t\t\t\t\t\t\t\trawFileExt\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n\t\t\t\t\t\t\t\t\"clipId\": 6402845\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('specific footage: ', res);\n                            var data = res.data.clip;\n                            if ($(\"#69d00a55915a6\").length && data !== '') {\n                                createClipsGrid(data, \"69d00a55915a6\");\n                            } else if ($(\"#69d00a55915a6\").length && data.length == '') {\n                                $(\"#69d00a55915a6\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                }\n            } else if(\"footage\" == 'templates') {\n                if(\"6402845\" === '') {\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query TemplatesList($payload: TemplatesByTermSearchPayload!) {\n                                templatesList(payload: $payload) {\n                                    nameForUrl\n                                    id\n                                    name\n                                    isNew\n                                    artistName\n                                    thumbnailUrl\n                                    previewVideoFileUrl\n                                }\n                            }`,\n                            variables: `{\n                                \"payload\": {\n                                    \"page\": 1,\n                                    \"take\": 1,\n                                    \"sortBy\": \"1\",\n                                    \"categories\": null,\n                                    \"searchTerms\": \"\"\n                                }\n                            }`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('templates list: ', res);\n                            var data = res.data.templatesList;\n                            if ($(\"#69d00a55915a6\").length && data.length > 0) {\n                                createClipsGrid(data, \"69d00a55915a6\");\n                            } else if ($(\"#69d00a55915a6\").length && data.length == 0) {\n                                $(\"#69d00a55915a6\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                    } else if(\"6402845\" !== '') {\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query Template($ids: [String!]!, $page: Int!, $take: Int!) {\n\t\t\t\t\t\t\t\ttemplatesByIds(ids: $ids, page: $page, take: $take) {\n\t\t\t\t\t\t\t\t\tnameForUrl\n                                    id\n                                    name\n                                    isNew\n                                    artistName\n                                    thumbnailUrl\n                                    previewVideoFileUrl\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n                                \"ids\": [\"6402845\"],\n                                \"page\": 1,\n                                \"take\": 1\n\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('specific template: ', res);\n                            var data = res.data.templatesByIds[0];\n                            if ($(\"#69d00a55915a6\").length && data !== '') {\n                                createClipsGrid(data, \"69d00a55915a6\");\n                            } else if ($(\"#69d00a55915a6\").length && data.length == '') {\n                                $(\"#69d00a55915a6\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                }\n            }\n\n            function createClipsGrid(data, clipsContainerId){\n                const container = $(\"#\" + clipsContainerId);\n                let playerSrc = '';\n\n                $.each(data, function(index, clip) {\n                    if(\"6402845\" !== '') { \/\/ if this is a request for a specific clip by id - then the data is not an array of clips but only one clip and that's why the \"clip\" variable is actually the \"data\"\n                        index = 0\n                        clip = data;\n                    }\n                    if ((index) < 1) {\n                        \/\/ clip container\n                        const clipContainer = $(\"<div>\").addClass(\"clipContainer single_clip\");\n                        \/\/ new badge\n                        if (clip.isNew) {\n                            clipContainer.append('<span class=\"isNewBadge\">NEW<\/span>');\n                        }\n                        \/\/ video\n                        let videoElement = document.createElement('video');\n                        videoElement.setAttribute('playsinline', '');\n                        videoElement.setAttribute('webkit-playsinline', '');\n                        videoElement.setAttribute('x5-playsinline', '');\n                        videoElement.setAttribute('preload', 'auto');\n                        \n                        clipContainer.append(videoElement);\n                        \/\/ clip name and artist name\n                        let clipName = '';\n                        let artistName = '';\n                        if(\"footage\" == 'footage') {\n                            clipName = clip.clipNameForUrl;\n                            clipName = clipName.replace(\/-\/g, \", \");\n                            clipName = $(\"<a>\").addClass(\"clipName\").attr(\"href\", \"https:\/\/artlist.io\/stock-footage\/clip\/\" + clip.clipNameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").text(clipName);\n                            artistName = $(\"<div>\").addClass(\"artistName\").text('By ' + clip.filmMakerDisplayName + '');\n                        } else if(\"footage\" == 'templates') {\n                            clipName = $(\"<a>\").addClass(\"clipName\").attr(\"href\", \"https:\/\/artlist.io\/video-templates\/\" + clip.nameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").text(clip.name);\n                            artistName = $(\"<div>\").addClass(\"artistName\").text('By ' + clip.artistName + '');\n                        }\n                        const clipNames = $(\"<span>\").addClass(\"clipNames\").append(clipName, artistName);\n                        \/\/ download button\n                        let clipDownload = '';\n                        if(\"footage\" == 'footage') {\n                            clipDownload = $(\"<a>\").addClass(\"clipDownload\").attr(\"href\", \"https:\/\/artlist.io\/stock-footage\/clip\/\" + clip.clipNameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").html('<i class=\"icon download white\"><\/i>');\n                        } else if(\"footage\" == 'templates') {\n                            clipDownload = $(\"<a>\").addClass(\"clipDownload\").attr(\"href\", \"https:\/\/artlist.io\/video-templates\/\" + clip.nameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").html('<i class=\"icon download white\"><\/i>');\n                        }\n                        \/\/ overlay\n                        const overlay = $(\"<div>\").addClass(\"overlay\");\n                        overlay.append(clipNames, clipDownload);\n\n                        \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                        clipContainer.append(videoElement, overlay);\n\n                        \/\/ if this is a preview of only one specific clip (by id)\n                        if(\"6402845\" !== '') {\n                            $(container).addClass(\"clipContainerSingular\")\n                        }\n\n                        \/\/ append audio player container into main playlist container\n                        container.append(clipContainer[0]);\n\n                        if(\"footage\" == 'footage') {\n                            playerSrc =  clip.clipPath;\n                        } else if(\"footage\" == 'templates') {\n                            playerSrc =  clip.previewVideoFileUrl;\n                        }\n                        const player = videojs(videoElement, {\n                            muted: true,\n                            autoplay: true,\n                        });\n\n                        player.src({\n                            src: playerSrc,\n                            type: 'application\/x-mpegURL'\n                        });\n\n                        \/* SEGMENT EVENTS *\/\n                        const special_data = getProps();\n\n                        \/* media played *\/\n                        var $videoElement = $(videoElement);\n                        $videoElement.on('play', function() {\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/* media paused *\/\n                        var $videoElement = $(videoElement);\n                        $videoElement.on('pause', function() {\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/* media viewed *\/\n                        const observer = new IntersectionObserver(entries => {\n                            entries.forEach(entry => {\n                                if (entry.isIntersecting) {\n                                    var assetId = clip.id;\n                                    var artist = clip.filmMakerDisplayName || clip.artistName;\n                                    var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                                    var asset_type = null;\n                                    if(\"footage\" == 'footage') {\n                                        asset_type = 'footage';\n                                    } else if(\"footage\" == 'templates') {\n                                        asset_type = 'template';\n                                    }\n                                    analytics.track(\"media viewed\", {\n                                        asset_id: assetId || null,\n                                        asset_type: asset_type || null,\n                                        click_source: 'player',\n                                        artist: artist || null,\n                                        title: title || null,\n                                        genre: null,\n                                        ...special_data,\n                                    });\n                                    observer.unobserve(entry.target);\n                                }\n                            });\n                        }, {\n                            threshold: 0.5\n                        });\n                        observer.observe($videoElement[0]);\n\n                        \/* media downloaded *\/\n                        $videoElement.closest('.clipContainer').find('.clipName').on('click', function() {\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media downloaded\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n                        $videoElement.closest('.clipContainer').find('.clipDownload').on('click', function() {\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media downloaded\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/\/ check screen size\n                        var mobileScreen = window.matchMedia('(max-width: 767px)');\n                        if (mobileScreen.matches) { \/\/ mobile\n                            const observer = new IntersectionObserver(function(entries) {\n                                entries.forEach(entry => {\n                                    if (entry.isIntersecting) {\n                                        player.play(); \/\/ Play the video when it enters the viewport\n                                    } else {\n                                        player.pause(); \/\/ Pause the video when it goes out of the viewport\n                                    }\n                                });\n                            });\n                            observer.observe(videoElement);\n                        } else { \/\/ desktop\n                            clipContainer.on('mouseenter', function() {\n                                player.play();\n                            });\n\n                            clipContainer.on('mouseleave', function() {\n                                player.pause();\n                            });\n                        }\n\n                    }\n                    if(\"6402845\" !== '') { \/\/ if this is a request for a specific clip by id - then break out of loop after first time bc it's not an array\n                        return false;\n                    }\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n\n    <div class=\"clipsContainer\" id=\"69d00a5591616\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"footage\" == 'footage') {\n                if(\"6402828\" == '') { \/\/ if this is a request for multiple clips by attributes\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query ClipList($page: Int, $sortType: Int, $categoryIds: String, $searchTerm: String) {\n\t\t\t\t\t\t\t\tclipList(page: $page, sortType: $sortType, categoryIds: $categoryIds, searchTerm: $searchTerm) {\n\t\t\t\t\t\t\t\t  exactResults  {\n\t\t\t\t\t\t\t\t\tclipPath\n\t\t\t\t\t\t\t\t\tclipNameForUrl\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tisNew\n\t\t\t\t\t\t\t\t\tfilmMakerDisplayName\n\t\t\t\t\t\t\t\t\timageUrl\n\t\t\t\t\t\t\t\t\tthumbnailUrl\n\t\t\t\t\t\t\t\t\twidth\n\t\t\t\t\t\t\t\t\tvideoUrl\n\t\t\t\t\t\t\t\t\trawFileExt\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n\t\t\t\t\t\t\t\t\"page\": 1,\n\t\t\t\t\t\t\t\t\"sortType\": 1,\n\t\t\t\t\t\t\t\t\"categoryIds\": null,\n\t\t\t\t\t\t\t\t\"searchTerm\": \"\"\n\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('footage list: ', res);\n                            var data = res.data.clipList.exactResults;\n                            if ($(\"#69d00a5591616\").length && data.length > 0) {\n                                createClipsGrid(data, \"69d00a5591616\");\n                            } else if ($(\"#69d00a5591616\").length && data.length == 0) {\n                                $(\"#69d00a5591616\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                } else if(\"6402828\" !== '') { \/\/ if this is a request for a specific clip by id\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query Clip($clipId: Int!) {\n\t\t\t\t\t\t\t\tclip(id: $clipId) {\n\t\t\t\t\t\t\t\t\tclipPath\n\t\t\t\t\t\t\t\t\tclipNameForUrl\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tisNew\n\t\t\t\t\t\t\t\t\tfilmMakerDisplayName\n\t\t\t\t\t\t\t\t\timageUrl\n\t\t\t\t\t\t\t\t\tthumbnailUrl\n\t\t\t\t\t\t\t\t\twidth\n\t\t\t\t\t\t\t\t\tvideoUrl\n\t\t\t\t\t\t\t\t\trawFileExt\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n\t\t\t\t\t\t\t\t\"clipId\": 6402828\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('specific footage: ', res);\n                            var data = res.data.clip;\n                            if ($(\"#69d00a5591616\").length && data !== '') {\n                                createClipsGrid(data, \"69d00a5591616\");\n                            } else if ($(\"#69d00a5591616\").length && data.length == '') {\n                                $(\"#69d00a5591616\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                }\n            } else if(\"footage\" == 'templates') {\n                if(\"6402828\" === '') {\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query TemplatesList($payload: TemplatesByTermSearchPayload!) {\n                                templatesList(payload: $payload) {\n                                    nameForUrl\n                                    id\n                                    name\n                                    isNew\n                                    artistName\n                                    thumbnailUrl\n                                    previewVideoFileUrl\n                                }\n                            }`,\n                            variables: `{\n                                \"payload\": {\n                                    \"page\": 1,\n                                    \"take\": 1,\n                                    \"sortBy\": \"1\",\n                                    \"categories\": null,\n                                    \"searchTerms\": \"\"\n                                }\n                            }`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('templates list: ', res);\n                            var data = res.data.templatesList;\n                            if ($(\"#69d00a5591616\").length && data.length > 0) {\n                                createClipsGrid(data, \"69d00a5591616\");\n                            } else if ($(\"#69d00a5591616\").length && data.length == 0) {\n                                $(\"#69d00a5591616\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                    } else if(\"6402828\" !== '') {\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query Template($ids: [String!]!, $page: Int!, $take: Int!) {\n\t\t\t\t\t\t\t\ttemplatesByIds(ids: $ids, page: $page, take: $take) {\n\t\t\t\t\t\t\t\t\tnameForUrl\n                                    id\n                                    name\n                                    isNew\n                                    artistName\n                                    thumbnailUrl\n                                    previewVideoFileUrl\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n                                \"ids\": [\"6402828\"],\n                                \"page\": 1,\n                                \"take\": 1\n\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('specific template: ', res);\n                            var data = res.data.templatesByIds[0];\n                            if ($(\"#69d00a5591616\").length && data !== '') {\n                                createClipsGrid(data, \"69d00a5591616\");\n                            } else if ($(\"#69d00a5591616\").length && data.length == '') {\n                                $(\"#69d00a5591616\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                }\n            }\n\n            function createClipsGrid(data, clipsContainerId){\n                const container = $(\"#\" + clipsContainerId);\n                let playerSrc = '';\n\n                $.each(data, function(index, clip) {\n                    if(\"6402828\" !== '') { \/\/ if this is a request for a specific clip by id - then the data is not an array of clips but only one clip and that's why the \"clip\" variable is actually the \"data\"\n                        index = 0\n                        clip = data;\n                    }\n                    if ((index) < 1) {\n                        \/\/ clip container\n                        const clipContainer = $(\"<div>\").addClass(\"clipContainer single_clip\");\n                        \/\/ new badge\n                        if (clip.isNew) {\n                            clipContainer.append('<span class=\"isNewBadge\">NEW<\/span>');\n                        }\n                        \/\/ video\n                        let videoElement = document.createElement('video');\n                        videoElement.setAttribute('playsinline', '');\n                        videoElement.setAttribute('webkit-playsinline', '');\n                        videoElement.setAttribute('x5-playsinline', '');\n                        videoElement.setAttribute('preload', 'auto');\n                        \n                        clipContainer.append(videoElement);\n                        \/\/ clip name and artist name\n                        let clipName = '';\n                        let artistName = '';\n                        if(\"footage\" == 'footage') {\n                            clipName = clip.clipNameForUrl;\n                            clipName = clipName.replace(\/-\/g, \", \");\n                            clipName = $(\"<a>\").addClass(\"clipName\").attr(\"href\", \"https:\/\/artlist.io\/stock-footage\/clip\/\" + clip.clipNameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").text(clipName);\n                            artistName = $(\"<div>\").addClass(\"artistName\").text('By ' + clip.filmMakerDisplayName + '');\n                        } else if(\"footage\" == 'templates') {\n                            clipName = $(\"<a>\").addClass(\"clipName\").attr(\"href\", \"https:\/\/artlist.io\/video-templates\/\" + clip.nameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").text(clip.name);\n                            artistName = $(\"<div>\").addClass(\"artistName\").text('By ' + clip.artistName + '');\n                        }\n                        const clipNames = $(\"<span>\").addClass(\"clipNames\").append(clipName, artistName);\n                        \/\/ download button\n                        let clipDownload = '';\n                        if(\"footage\" == 'footage') {\n                            clipDownload = $(\"<a>\").addClass(\"clipDownload\").attr(\"href\", \"https:\/\/artlist.io\/stock-footage\/clip\/\" + clip.clipNameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").html('<i class=\"icon download white\"><\/i>');\n                        } else if(\"footage\" == 'templates') {\n                            clipDownload = $(\"<a>\").addClass(\"clipDownload\").attr(\"href\", \"https:\/\/artlist.io\/video-templates\/\" + clip.nameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").html('<i class=\"icon download white\"><\/i>');\n                        }\n                        \/\/ overlay\n                        const overlay = $(\"<div>\").addClass(\"overlay\");\n                        overlay.append(clipNames, clipDownload);\n\n                        \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                        clipContainer.append(videoElement, overlay);\n\n                        \/\/ if this is a preview of only one specific clip (by id)\n                        if(\"6402828\" !== '') {\n                            $(container).addClass(\"clipContainerSingular\")\n                        }\n\n                        \/\/ append audio player container into main playlist container\n                        container.append(clipContainer[0]);\n\n                        if(\"footage\" == 'footage') {\n                            playerSrc =  clip.clipPath;\n                        } else if(\"footage\" == 'templates') {\n                            playerSrc =  clip.previewVideoFileUrl;\n                        }\n                        const player = videojs(videoElement, {\n                            muted: true,\n                            autoplay: true,\n                        });\n\n                        player.src({\n                            src: playerSrc,\n                            type: 'application\/x-mpegURL'\n                        });\n\n                        \/* SEGMENT EVENTS *\/\n                        const special_data = getProps();\n\n                        \/* media played *\/\n                        var $videoElement = $(videoElement);\n                        $videoElement.on('play', function() {\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/* media paused *\/\n                        var $videoElement = $(videoElement);\n                        $videoElement.on('pause', function() {\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/* media viewed *\/\n                        const observer = new IntersectionObserver(entries => {\n                            entries.forEach(entry => {\n                                if (entry.isIntersecting) {\n                                    var assetId = clip.id;\n                                    var artist = clip.filmMakerDisplayName || clip.artistName;\n                                    var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                                    var asset_type = null;\n                                    if(\"footage\" == 'footage') {\n                                        asset_type = 'footage';\n                                    } else if(\"footage\" == 'templates') {\n                                        asset_type = 'template';\n                                    }\n                                    analytics.track(\"media viewed\", {\n                                        asset_id: assetId || null,\n                                        asset_type: asset_type || null,\n                                        click_source: 'player',\n                                        artist: artist || null,\n                                        title: title || null,\n                                        genre: null,\n                                        ...special_data,\n                                    });\n                                    observer.unobserve(entry.target);\n                                }\n                            });\n                        }, {\n                            threshold: 0.5\n                        });\n                        observer.observe($videoElement[0]);\n\n                        \/* media downloaded *\/\n                        $videoElement.closest('.clipContainer').find('.clipName').on('click', function() {\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media downloaded\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n                        $videoElement.closest('.clipContainer').find('.clipDownload').on('click', function() {\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media downloaded\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/\/ check screen size\n                        var mobileScreen = window.matchMedia('(max-width: 767px)');\n                        if (mobileScreen.matches) { \/\/ mobile\n                            const observer = new IntersectionObserver(function(entries) {\n                                entries.forEach(entry => {\n                                    if (entry.isIntersecting) {\n                                        player.play(); \/\/ Play the video when it enters the viewport\n                                    } else {\n                                        player.pause(); \/\/ Pause the video when it goes out of the viewport\n                                    }\n                                });\n                            });\n                            observer.observe(videoElement);\n                        } else { \/\/ desktop\n                            clipContainer.on('mouseenter', function() {\n                                player.play();\n                            });\n\n                            clipContainer.on('mouseleave', function() {\n                                player.pause();\n                            });\n                        }\n\n                    }\n                    if(\"6402828\" !== '') { \/\/ if this is a request for a specific clip by id - then break out of loop after first time bc it's not an array\n                        return false;\n                    }\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n\n    <div class=\"clipsContainer\" id=\"69d00a559166f\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"footage\" == 'footage') {\n                if(\"6402839\" == '') { \/\/ if this is a request for multiple clips by attributes\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query ClipList($page: Int, $sortType: Int, $categoryIds: String, $searchTerm: String) {\n\t\t\t\t\t\t\t\tclipList(page: $page, sortType: $sortType, categoryIds: $categoryIds, searchTerm: $searchTerm) {\n\t\t\t\t\t\t\t\t  exactResults  {\n\t\t\t\t\t\t\t\t\tclipPath\n\t\t\t\t\t\t\t\t\tclipNameForUrl\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tisNew\n\t\t\t\t\t\t\t\t\tfilmMakerDisplayName\n\t\t\t\t\t\t\t\t\timageUrl\n\t\t\t\t\t\t\t\t\tthumbnailUrl\n\t\t\t\t\t\t\t\t\twidth\n\t\t\t\t\t\t\t\t\tvideoUrl\n\t\t\t\t\t\t\t\t\trawFileExt\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n\t\t\t\t\t\t\t\t\"page\": 1,\n\t\t\t\t\t\t\t\t\"sortType\": 1,\n\t\t\t\t\t\t\t\t\"categoryIds\": null,\n\t\t\t\t\t\t\t\t\"searchTerm\": \"\"\n\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('footage list: ', res);\n                            var data = res.data.clipList.exactResults;\n                            if ($(\"#69d00a559166f\").length && data.length > 0) {\n                                createClipsGrid(data, \"69d00a559166f\");\n                            } else if ($(\"#69d00a559166f\").length && data.length == 0) {\n                                $(\"#69d00a559166f\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                } else if(\"6402839\" !== '') { \/\/ if this is a request for a specific clip by id\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query Clip($clipId: Int!) {\n\t\t\t\t\t\t\t\tclip(id: $clipId) {\n\t\t\t\t\t\t\t\t\tclipPath\n\t\t\t\t\t\t\t\t\tclipNameForUrl\n\t\t\t\t\t\t\t\t\tid\n\t\t\t\t\t\t\t\t\tisNew\n\t\t\t\t\t\t\t\t\tfilmMakerDisplayName\n\t\t\t\t\t\t\t\t\timageUrl\n\t\t\t\t\t\t\t\t\tthumbnailUrl\n\t\t\t\t\t\t\t\t\twidth\n\t\t\t\t\t\t\t\t\tvideoUrl\n\t\t\t\t\t\t\t\t\trawFileExt\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n\t\t\t\t\t\t\t\t\"clipId\": 6402839\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('specific footage: ', res);\n                            var data = res.data.clip;\n                            if ($(\"#69d00a559166f\").length && data !== '') {\n                                createClipsGrid(data, \"69d00a559166f\");\n                            } else if ($(\"#69d00a559166f\").length && data.length == '') {\n                                $(\"#69d00a559166f\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                }\n            } else if(\"footage\" == 'templates') {\n                if(\"6402839\" === '') {\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query TemplatesList($payload: TemplatesByTermSearchPayload!) {\n                                templatesList(payload: $payload) {\n                                    nameForUrl\n                                    id\n                                    name\n                                    isNew\n                                    artistName\n                                    thumbnailUrl\n                                    previewVideoFileUrl\n                                }\n                            }`,\n                            variables: `{\n                                \"payload\": {\n                                    \"page\": 1,\n                                    \"take\": 1,\n                                    \"sortBy\": \"1\",\n                                    \"categories\": null,\n                                    \"searchTerms\": \"\"\n                                }\n                            }`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('templates list: ', res);\n                            var data = res.data.templatesList;\n                            if ($(\"#69d00a559166f\").length && data.length > 0) {\n                                createClipsGrid(data, \"69d00a559166f\");\n                            } else if ($(\"#69d00a559166f\").length && data.length == 0) {\n                                $(\"#69d00a559166f\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                    } else if(\"6402839\" !== '') {\n                    $.ajax({\n                        method: \"POST\",\n                        url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                        contentType: \"application\/json\",\n                        data: JSON.stringify({\n                            query: `query Template($ids: [String!]!, $page: Int!, $take: Int!) {\n\t\t\t\t\t\t\t\ttemplatesByIds(ids: $ids, page: $page, take: $take) {\n\t\t\t\t\t\t\t\t\tnameForUrl\n                                    id\n                                    name\n                                    isNew\n                                    artistName\n                                    thumbnailUrl\n                                    previewVideoFileUrl\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                            variables: `{\n                                \"ids\": [\"6402839\"],\n                                \"page\": 1,\n                                \"take\": 1\n\t\t\t\t\t\t\t}`,\n                        })\n                    }).done(function (res) {\n                        if(res == '') {\n                            console.log('none');\n                        } else {\n                            console.log('specific template: ', res);\n                            var data = res.data.templatesByIds[0];\n                            if ($(\"#69d00a559166f\").length && data !== '') {\n                                createClipsGrid(data, \"69d00a559166f\");\n                            } else if ($(\"#69d00a559166f\").length && data.length == '') {\n                                $(\"#69d00a559166f\").empty().append('<div class=\"noClipsError\">No clips were found.<\/div>');\n                            }\n                        }\n                    });\n                }\n            }\n\n            function createClipsGrid(data, clipsContainerId){\n                const container = $(\"#\" + clipsContainerId);\n                let playerSrc = '';\n\n                $.each(data, function(index, clip) {\n                    if(\"6402839\" !== '') { \/\/ if this is a request for a specific clip by id - then the data is not an array of clips but only one clip and that's why the \"clip\" variable is actually the \"data\"\n                        index = 0\n                        clip = data;\n                    }\n                    if ((index) < 1) {\n                        \/\/ clip container\n                        const clipContainer = $(\"<div>\").addClass(\"clipContainer single_clip\");\n                        \/\/ new badge\n                        if (clip.isNew) {\n                            clipContainer.append('<span class=\"isNewBadge\">NEW<\/span>');\n                        }\n                        \/\/ video\n                        let videoElement = document.createElement('video');\n                        videoElement.setAttribute('playsinline', '');\n                        videoElement.setAttribute('webkit-playsinline', '');\n                        videoElement.setAttribute('x5-playsinline', '');\n                        videoElement.setAttribute('preload', 'auto');\n                        \n                        clipContainer.append(videoElement);\n                        \/\/ clip name and artist name\n                        let clipName = '';\n                        let artistName = '';\n                        if(\"footage\" == 'footage') {\n                            clipName = clip.clipNameForUrl;\n                            clipName = clipName.replace(\/-\/g, \", \");\n                            clipName = $(\"<a>\").addClass(\"clipName\").attr(\"href\", \"https:\/\/artlist.io\/stock-footage\/clip\/\" + clip.clipNameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").text(clipName);\n                            artistName = $(\"<div>\").addClass(\"artistName\").text('By ' + clip.filmMakerDisplayName + '');\n                        } else if(\"footage\" == 'templates') {\n                            clipName = $(\"<a>\").addClass(\"clipName\").attr(\"href\", \"https:\/\/artlist.io\/video-templates\/\" + clip.nameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").text(clip.name);\n                            artistName = $(\"<div>\").addClass(\"artistName\").text('By ' + clip.artistName + '');\n                        }\n                        const clipNames = $(\"<span>\").addClass(\"clipNames\").append(clipName, artistName);\n                        \/\/ download button\n                        let clipDownload = '';\n                        if(\"footage\" == 'footage') {\n                            clipDownload = $(\"<a>\").addClass(\"clipDownload\").attr(\"href\", \"https:\/\/artlist.io\/stock-footage\/clip\/\" + clip.clipNameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").html('<i class=\"icon download white\"><\/i>');\n                        } else if(\"footage\" == 'templates') {\n                            clipDownload = $(\"<a>\").addClass(\"clipDownload\").attr(\"href\", \"https:\/\/artlist.io\/video-templates\/\" + clip.nameForUrl + \"\/\" + clip.id + \"?download=1&utm_source=blog\").attr(\"target\", \"_blank\").html('<i class=\"icon download white\"><\/i>');\n                        }\n                        \/\/ overlay\n                        const overlay = $(\"<div>\").addClass(\"overlay\");\n                        overlay.append(clipNames, clipDownload);\n\n                        \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                        clipContainer.append(videoElement, overlay);\n\n                        \/\/ if this is a preview of only one specific clip (by id)\n                        if(\"6402839\" !== '') {\n                            $(container).addClass(\"clipContainerSingular\")\n                        }\n\n                        \/\/ append audio player container into main playlist container\n                        container.append(clipContainer[0]);\n\n                        if(\"footage\" == 'footage') {\n                            playerSrc =  clip.clipPath;\n                        } else if(\"footage\" == 'templates') {\n                            playerSrc =  clip.previewVideoFileUrl;\n                        }\n                        const player = videojs(videoElement, {\n                            muted: true,\n                            autoplay: true,\n                        });\n\n                        player.src({\n                            src: playerSrc,\n                            type: 'application\/x-mpegURL'\n                        });\n\n                        \/* SEGMENT EVENTS *\/\n                        const special_data = getProps();\n\n                        \/* media played *\/\n                        var $videoElement = $(videoElement);\n                        $videoElement.on('play', function() {\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/* media paused *\/\n                        var $videoElement = $(videoElement);\n                        $videoElement.on('pause', function() {\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/* media viewed *\/\n                        const observer = new IntersectionObserver(entries => {\n                            entries.forEach(entry => {\n                                if (entry.isIntersecting) {\n                                    var assetId = clip.id;\n                                    var artist = clip.filmMakerDisplayName || clip.artistName;\n                                    var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                                    var asset_type = null;\n                                    if(\"footage\" == 'footage') {\n                                        asset_type = 'footage';\n                                    } else if(\"footage\" == 'templates') {\n                                        asset_type = 'template';\n                                    }\n                                    analytics.track(\"media viewed\", {\n                                        asset_id: assetId || null,\n                                        asset_type: asset_type || null,\n                                        click_source: 'player',\n                                        artist: artist || null,\n                                        title: title || null,\n                                        genre: null,\n                                        ...special_data,\n                                    });\n                                    observer.unobserve(entry.target);\n                                }\n                            });\n                        }, {\n                            threshold: 0.5\n                        });\n                        observer.observe($videoElement[0]);\n\n                        \/* media downloaded *\/\n                        $videoElement.closest('.clipContainer').find('.clipName').on('click', function() {\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media downloaded\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n                        $videoElement.closest('.clipContainer').find('.clipDownload').on('click', function() {\n                            var assetId = clip.id;\n                            var artist = clip.filmMakerDisplayName || clip.artistName;\n                            var title = clip.clipNameForUrl ? clip.clipNameForUrl.replace(\/-\/g, \", \") : clip.name;\n                            var asset_type = null;\n                            if(\"footage\" == 'footage') {\n                                asset_type = 'footage';\n                            } else if(\"footage\" == 'templates') {\n                                asset_type = 'template';\n                            }\n                            analytics.track(\"media downloaded\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        });\n\n                        \/\/ check screen size\n                        var mobileScreen = window.matchMedia('(max-width: 767px)');\n                        if (mobileScreen.matches) { \/\/ mobile\n                            const observer = new IntersectionObserver(function(entries) {\n                                entries.forEach(entry => {\n                                    if (entry.isIntersecting) {\n                                        player.play(); \/\/ Play the video when it enters the viewport\n                                    } else {\n                                        player.pause(); \/\/ Pause the video when it goes out of the viewport\n                                    }\n                                });\n                            });\n                            observer.observe(videoElement);\n                        } else { \/\/ desktop\n                            clipContainer.on('mouseenter', function() {\n                                player.play();\n                            });\n\n                            clipContainer.on('mouseleave', function() {\n                                player.pause();\n                            });\n                        }\n\n                    }\n                    if(\"6402839\" !== '') { \/\/ if this is a request for a specific clip by id - then break out of loop after first time bc it's not an array\n                        return false;\n                    }\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h2 class=\"wp-block-heading\">Ready to see what you can create with AI?<\/h2>\n\n\n\n<p>AI tools can take your creative projects to the next level, but only if you know how to use them to their full potential. With these six tips, you can create AI-generated images and videos that not only look great but also bring your vision to life with precision and style. Ready to get started? <a href=\"https:\/\/toolkit.artlist.io\/image-video-generator?mode=video&amp;modelGroupID=302\">Dive into Artlist\u2019s AI Toolkit<\/a>, and let your imagination run wild.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>Master the art of generating AI content Generative AI is a game-changer for creators. But to get the most out of it, you need to know how to use it right. Whether you\u2019re making a short film teaser or thumbnails for your YouTube video, the quality of your output depends on the details.&nbsp; In this [&hellip;]<\/p>\n","protected":false},"author":59,"featured_media":42355,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"categories":[1605,1566,1574,1565],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>6 tips to improve AI-generated images and videos - Artlist Blog<\/title>\n<meta name=\"description\" content=\"Learn how to correctly generate images and videos using AI with 6 expert tips to get quality results, using Artlist.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"6 tips to improve AI-generated images and videos - Artlist Blog\" \/>\n<meta property=\"og:description\" content=\"Learn how to correctly generate images and videos using AI with 6 expert tips to get quality results, using Artlist.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/\" \/>\n<meta property=\"og:site_name\" content=\"Artlist Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-02T11:51:07+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-15T12:49:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/tips-to-generate-image_video_XXL.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1721\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Deborah Blank\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Deborah Blank\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/\"},\"author\":{\"name\":\"Deborah Blank\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/person\/ec276c759677792b47047535308cd440\"},\"headline\":\"6 essential tips to perfect your AI-generated images and videos\",\"datePublished\":\"2025-04-02T11:51:07+00:00\",\"dateModified\":\"2026-02-15T12:49:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/\"},\"wordCount\":1521,\"publisher\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#organization\"},\"articleSection\":[\"AI Toolkit\",\"Image Generator\",\"Tips and Education\",\"Video Generator\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/\",\"url\":\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/\",\"name\":\"6 tips to improve AI-generated images and videos - Artlist Blog\",\"isPartOf\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#website\"},\"datePublished\":\"2025-04-02T11:51:07+00:00\",\"dateModified\":\"2026-02-15T12:49:26+00:00\",\"description\":\"Learn how to correctly generate images and videos using AI with 6 expert tips to get quality results, using Artlist.\",\"breadcrumb\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/new-blog.artlist.io\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Tips and Education\",\"item\":\"https:\/\/new-blog.artlist.io\/blog\/tips-and-education\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"6 essential tips to perfect your AI-generated images and videos\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#website\",\"url\":\"https:\/\/new-blog.artlist.io\/blog\/\",\"name\":\"Artlist Blog\",\"description\":\"Just artlist blog website\",\"publisher\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/new-blog.artlist.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#organization\",\"name\":\"Artlist Blog\",\"url\":\"https:\/\/new-blog.artlist.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2024\/10\/artlist-blog-logo.svg\",\"contentUrl\":\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2024\/10\/artlist-blog-logo.svg\",\"width\":143,\"height\":28,\"caption\":\"Artlist Blog\"},\"image\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/person\/ec276c759677792b47047535308cd440\",\"name\":\"Deborah Blank\",\"description\":\"Deborah Blank is the Artlist Blog Editor, with over 15 years of experience shaping content for global brands. An expert in AI models, video, and image generation, she\u2019s passionate about empowering creators to tell better stories. Contact her on LinkedIn \u2014 she wants to hear from you!\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/deborah-blank-0a726658\/\"],\"url\":\"https:\/\/new-blog.artlist.io\/blog\/author\/deborah-bartlist-io\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"6 tips to improve AI-generated images and videos - Artlist Blog","description":"Learn how to correctly generate images and videos using AI with 6 expert tips to get quality results, using Artlist.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/","og_locale":"en_US","og_type":"article","og_title":"6 tips to improve AI-generated images and videos - Artlist Blog","og_description":"Learn how to correctly generate images and videos using AI with 6 expert tips to get quality results, using Artlist.","og_url":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/","og_site_name":"Artlist Blog","article_published_time":"2025-04-02T11:51:07+00:00","article_modified_time":"2026-02-15T12:49:26+00:00","og_image":[{"width":1721,"height":600,"url":"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/tips-to-generate-image_video_XXL.jpg","type":"image\/jpeg"}],"author":"Deborah Blank","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Deborah Blank","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/#article","isPartOf":{"@id":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/"},"author":{"name":"Deborah Blank","@id":"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/person\/ec276c759677792b47047535308cd440"},"headline":"6 essential tips to perfect your AI-generated images and videos","datePublished":"2025-04-02T11:51:07+00:00","dateModified":"2026-02-15T12:49:26+00:00","mainEntityOfPage":{"@id":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/"},"wordCount":1521,"publisher":{"@id":"https:\/\/new-blog.artlist.io\/blog\/#organization"},"articleSection":["AI Toolkit","Image Generator","Tips and Education","Video Generator"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/","url":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/","name":"6 tips to improve AI-generated images and videos - Artlist Blog","isPartOf":{"@id":"https:\/\/new-blog.artlist.io\/blog\/#website"},"datePublished":"2025-04-02T11:51:07+00:00","dateModified":"2026-02-15T12:49:26+00:00","description":"Learn how to correctly generate images and videos using AI with 6 expert tips to get quality results, using Artlist.","breadcrumb":{"@id":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/new-blog.artlist.io\/blog\/how-to-create-ai-videos-with-images\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/new-blog.artlist.io\/blog\/"},{"@type":"ListItem","position":2,"name":"Tips and Education","item":"https:\/\/new-blog.artlist.io\/blog\/tips-and-education\/"},{"@type":"ListItem","position":3,"name":"6 essential tips to perfect your AI-generated images and videos"}]},{"@type":"WebSite","@id":"https:\/\/new-blog.artlist.io\/blog\/#website","url":"https:\/\/new-blog.artlist.io\/blog\/","name":"Artlist Blog","description":"Just artlist blog website","publisher":{"@id":"https:\/\/new-blog.artlist.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/new-blog.artlist.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/new-blog.artlist.io\/blog\/#organization","name":"Artlist Blog","url":"https:\/\/new-blog.artlist.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2024\/10\/artlist-blog-logo.svg","contentUrl":"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2024\/10\/artlist-blog-logo.svg","width":143,"height":28,"caption":"Artlist Blog"},"image":{"@id":"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/person\/ec276c759677792b47047535308cd440","name":"Deborah Blank","description":"Deborah Blank is the Artlist Blog Editor, with over 15 years of experience shaping content for global brands. An expert in AI models, video, and image generation, she\u2019s passionate about empowering creators to tell better stories. Contact her on LinkedIn \u2014 she wants to hear from you!","sameAs":["https:\/\/www.linkedin.com\/in\/deborah-blank-0a726658\/"],"url":"https:\/\/new-blog.artlist.io\/blog\/author\/deborah-bartlist-io\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/tips-to-generate-image_video_XXL.jpg",1721,600,false],"thumbnail":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/tips-to-generate-image_video_XXL-150x150.jpg",150,150,true],"medium":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/tips-to-generate-image_video_XXL-300x105.jpg",300,105,true],"medium_large":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/tips-to-generate-image_video_XXL-768x268.jpg",768,268,true],"large":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/tips-to-generate-image_video_XXL-1024x357.jpg",1024,357,true],"1536x1536":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/tips-to-generate-image_video_XXL-1536x536.jpg",1536,536,true],"2048x2048":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/tips-to-generate-image_video_XXL.jpg",1721,600,false]},"uagb_author_info":{"display_name":"Deborah Blank","author_link":"https:\/\/new-blog.artlist.io\/blog\/author\/deborah-bartlist-io\/"},"uagb_comment_info":0,"uagb_excerpt":"Master the art of generating AI content Generative AI is a game-changer for creators. But to get the most out of it, you need to know how to use it right. Whether you\u2019re making a short film teaser or thumbnails for your YouTube video, the quality of your output depends on the details.&nbsp; In this&hellip;","_links":{"self":[{"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/posts\/42288"}],"collection":[{"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/users\/59"}],"replies":[{"embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/comments?post=42288"}],"version-history":[{"count":54,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/posts\/42288\/revisions"}],"predecessor-version":[{"id":60550,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/posts\/42288\/revisions\/60550"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/media\/42355"}],"wp:attachment":[{"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/media?parent=42288"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/categories?post=42288"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/tags?post=42288"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}