<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[This Week In FITLETE: Frugality]]></title><description><![CDATA[George's frugal systems, tools, and practices as a career personal trainer, coach, & Solopreneur. Frugality is the intentional, resourceful, and prudent management of resources. It involves avoiding waste, prioritizing resources, and managing them intentionally to align with long-term goals, rather than depriving oneself of basic needs.]]></description><link>https://thisweek.fitletes.com/s/frugality</link><image><url>https://substackcdn.com/image/fetch/$s_!ts88!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fab8c3efd-6ab4-4aad-95d9-9b4439a29270_450x450.png</url><title>This Week In FITLETE: Frugality</title><link>https://thisweek.fitletes.com/s/frugality</link></image><generator>Substack</generator><lastBuildDate>Thu, 16 Jul 2026 23:13:42 GMT</lastBuildDate><atom:link href="https://thisweek.fitletes.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[FITLETE]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[fitlete@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[fitlete@substack.com]]></itunes:email><itunes:name><![CDATA[George Pagan III]]></itunes:name></itunes:owner><itunes:author><![CDATA[George Pagan III]]></itunes:author><googleplay:owner><![CDATA[fitlete@substack.com]]></googleplay:owner><googleplay:email><![CDATA[fitlete@substack.com]]></googleplay:email><googleplay:author><![CDATA[George Pagan III]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[How I automate & schedule my social media posts for as little time and money as humanly possible and get the apps off my phone.]]></title><description><![CDATA[I'm not a social media guru, but I hate spending money & time doing social media content so, I automated as much as I could for almost free to multiple platforms from one Substack publication, no AI.]]></description><link>https://thisweek.fitletes.com/p/how-i-automate-and-schedule-my-social</link><guid isPermaLink="false">https://thisweek.fitletes.com/p/how-i-automate-and-schedule-my-social</guid><dc:creator><![CDATA[George Pagan III]]></dc:creator><pubDate>Thu, 16 Jul 2026 19:20:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!dem7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2>Step 0: <strong>Probably the most overlooked step in the game</strong>.</h2><p>I needed to &#8220;define&#8221; what I actually wanted to accomplish. Not my goals for the content I make or even the type of content I wanted to make, but what I wanted to get out of this new way to share things online. <em>For me, that was a few things.</em> </p><p><strong>Most importantly,</strong> I want to maintain freedom in choosing my format without the automated process restricting the length, quality, or the number of media I can post within a certain time frame. <strong>Secondly,</strong> I want to spend as little money as possible on a recurring basis. <strong>Thirdly,</strong> I want to be able to perform all the necessary tasks without relying on apps installed on my phone at each step. Ultimately, I aim to eliminate these apps from my mobile devices completely, except for my work laptop. <strong>Fourthly(?)</strong>, Reduce reliance on internet-connected tools for backend processes before posting, and limit the use of offline tools for scheduling and starting posts. <strong>Fifthly(?)</strong>, Ensure the automations are flexible in case I decide to modify my posting schedule. <strong>Sixthly(?)</strong>, Ensure the steps are simple to explain if I ever need to delegate some or part of the tasks to others. <strong>Seventhly(?)</strong>, requires minimal customization through coding and scripting. <strong>Eighthly(?)</strong>, Use AI solely for troubleshooting or constructing small code blocks to enhance efficiency.</p><p style="text-align: center;"><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If those 8 things sound aligned with how you want to approach automating some social media tasks for your business without losing your personal touch to it, continue reading. </mark><em><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">If not, check out the FITLETE Resource Nexus for personal trainers</mark></em><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);"> </mark><strong><a href="https://fitletes.com/discover"><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">HERE</mark></a></strong><mark data-color="#fff2cc" style="background-color: rgb(255, 242, 204); color: rgb(0, 0, 0);">.</mark></p><h2>Step 1:Selecting a &#8220;distribution&#8221; hub</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!E7kT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!E7kT!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png 424w, https://substackcdn.com/image/fetch/$s_!E7kT!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png 848w, https://substackcdn.com/image/fetch/$s_!E7kT!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png 1272w, https://substackcdn.com/image/fetch/$s_!E7kT!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!E7kT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png" width="658" height="362.4416607015032" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1539,&quot;width&quot;:2794,&quot;resizeWidth&quot;:658,&quot;bytes&quot;:404671,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://thisweek.fitletes.com/i/188184462?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff66edaa1-2583-4a86-8dcd-eec67baea66e_2794x1539.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!E7kT!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png 424w, https://substackcdn.com/image/fetch/$s_!E7kT!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png 848w, https://substackcdn.com/image/fetch/$s_!E7kT!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png 1272w, https://substackcdn.com/image/fetch/$s_!E7kT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbb1b755b-dc89-4cba-ad4b-a92baaab83d7_2794x1539.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>SUBSTACK: One entry point for all the content. <mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">There's a small one-time fee to connect to your domain; I think it&#8217;s still $50.</mark></strong> <span class="mention-wrap" data-attrs="{&quot;name&quot;:&quot;Chris Liddle&quot;,&quot;id&quot;:81303979,&quot;type&quot;:&quot;user&quot;,&quot;url&quot;:null,&quot;photo_url&quot;:&quot;https://substackcdn.com/image/fetch/$s_!7unL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F45192a53-4233-45bb-b4b1-2c35f8069290_6016x4016.jpeg&quot;,&quot;uuid&quot;:&quot;d133d522-c052-4b24-9a34-e158be73da70&quot;}" data-component-name="MentionToDOM"></span> showed me Substack a few years back; I haven't looked back. They handle many of the big tasks that could make a mission like this one more costly &amp; complex if I tried to set it up on my own. So, all that to say, 1 Substack Publication for all of FITLETE&#8217;s public updates, and everything will run from it. Here&#8217;s the why.</p><ul><li><p>Substack has 1 RSS feed for your publication, so everything you do there will update from this one feed.</p></li><li><p>Substack supports articles, photos, videos, live streams, and multiple podcasts.</p></li><li><p>Substack allows you to connect 1 YouTube account and will automatically post to your channel if you want to.</p><ul><li><p>The YouTube connection is important because it lets Substack handle video uploads for you: short-form videos are shared as YouTube Shorts, and longer videos as traditional videos.</p></li><li><p>Any Postcast you have will auto-publish to YouTube here as well, even &#8220;audio only&#8221; shows like the <a href="https://www.youtube.com/@Fitletes/videos">Coaches Spotlight Series</a>.</p></li></ul></li><li><p> Using new sections in a single publication self-organizes the content. I created a new section in my publication specifically for the <a href="https://thisweek.fitletes.com/s/social-media">social media posts</a>.</p><ul><li><p>This section is set up to be separate from my main subscribers and to not update on the homepage. Unless someone explicitly signs up for this section, it also will not send emails to anyone when new items are published. New subscribers are not &#8220;auto-subscribed&#8221; to this section either when they subscribe to This Week In FITLETE&#8217;s Monday Report.</p></li></ul></li></ul><h2>Step 2:Selecting a content planning space.</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4Hte!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4Hte!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png 424w, https://substackcdn.com/image/fetch/$s_!4Hte!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png 848w, https://substackcdn.com/image/fetch/$s_!4Hte!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png 1272w, https://substackcdn.com/image/fetch/$s_!4Hte!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4Hte!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png" width="576" height="363.2604902368093" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1518,&quot;width&quot;:2407,&quot;resizeWidth&quot;:576,&quot;bytes&quot;:340590,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://thisweek.fitletes.com/i/188184462?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1fd6d3-8fb9-4bcc-b8dd-36177ee7e304_2407x1518.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4Hte!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png 424w, https://substackcdn.com/image/fetch/$s_!4Hte!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png 848w, https://substackcdn.com/image/fetch/$s_!4Hte!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png 1272w, https://substackcdn.com/image/fetch/$s_!4Hte!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2437d490-fe4c-4ed5-87f3-702648e175a7_2407x1518.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Google Drive/Sheets: this is where you make and store, sort, plan, &amp; prepare everything before you&#8217;re ready to share it. <mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">15 GB-2 TB storage is $0-$119 per year.</mark> </strong>Google Drive is my work storage space, even for non-Google-related file types and software.  <em>This step will be where you spend most of your time and effort.</em></p><ul><li><p>Once I created &amp; edited all the photos or videos I wanted to share, I placed them into different folders based on the day of the week I wanted to share them. For example, I post a photo every Monday  for <a href="https://thisweek.fitletes.com/t/monday-report">THE Monday Report</a>, so I have a 2026 folder with 52 photos. To keep things better organized, I also picked a consistent file-naming format that includes the date. I did this because I can use it to sort and organize by date in Google Sheets later. It looks something like this <em><mark data-color="#fce5cd" style="background-color: rgb(252, 229, 205); color: rgb(0, 0, 0);">&#8220;2026.01.05 -MONDAY-REPORT&#8221;</mark></em></p><ul><li><p>To make this file titling easy, I used Windows PowerShell and a simple script in a .txt editor to rename all the .jpg files all at once so I didn't have to do it manually <em>(if you send me a message, I'll share that with you because it&#8217;s actually really easy and doesn&#8217;t use AI or an internet connection)</em>.</p><p></p></li></ul><p>Once I had all this done, I added the folder to my synced Google Drive and uploaded it there. Then I created a static content posting schedule to test daily posting at 7:15 PM EST.</p></li><li><p>Since all the photos are now on Google Drive, they have their own unique URL/links that I can copy and add to the spreadsheet and grab the photos when the automation runs. Use column headers that make it easy for you to understand what info you are grabbing; it simplifies setting up the make.com step later. I set up my spreadsheet like this:</p><ul><li><p><strong>Col A= google-drive-image-url: </strong>This is where you place ALL of the links to your media files from Google Drive. Make sure they are visually the URL, and not a hyperlink of the file name.</p></li><li><p><strong>Col B=pixeldrainURL: </strong>You will need this column to hold the links to the direct media file that the platforms will upload.</p></li><li><p><strong>Col C=drive-file-title: </strong>You can either paste the links again and use the hyperlinked filename, or you extract it using a small Google App Script. Both take the same amount of time and cost the same amount.</p></li><li><p><strong>Col D=SUBSTACK-title: </strong>Here, you will create a unique title for your Substack post. It will be the &#8220;identifier&#8221; for your automation, so it has to be unique and match exactly what you will use on Substack.</p></li><li><p><strong>Col E=SUBSTACK-subtitle: </strong>This has a ~200 character limit and can be whatever you want. It&#8217;s displayed in Substack and some sites when you share a link to your articles, but you can also use it in your automation. I chose to make subtitles that I can repeat and help categorize my posts.</p></li><li><p><strong>Col F=social-caption: </strong>Pretty much unlimited characters, and you can use this in your automation as well.&#9;</p></li><li><p><strong>Col G=schedule-time: </strong>It's more of a visual aid for you on the backend to understand what time of day you'll schedule your automation to run, but it doesn&#8217;t need to be used in your automations. I use it to add different times if I want to post multiple times per day in the future.</p></li></ul></li></ul><p>With this set up, you can write all your titles, subtitles, and captions for each piece of media directly into the spreadsheet. <em>Now you&#8217;re ready for step 3. </em></p><h2><strong>Step 3: Temporary media hosting.</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ufdV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ufdV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png 424w, https://substackcdn.com/image/fetch/$s_!ufdV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png 848w, https://substackcdn.com/image/fetch/$s_!ufdV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png 1272w, https://substackcdn.com/image/fetch/$s_!ufdV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ufdV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png" width="666" height="376.84697508896795" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1272,&quot;width&quot;:2248,&quot;resizeWidth&quot;:666,&quot;bytes&quot;:289516,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://thisweek.fitletes.com/i/188184462?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff97515f-f353-4d02-b1cf-e4b2ce77a51d_2248x1272.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ufdV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png 424w, https://substackcdn.com/image/fetch/$s_!ufdV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png 848w, https://substackcdn.com/image/fetch/$s_!ufdV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png 1272w, https://substackcdn.com/image/fetch/$s_!ufdV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fad8625ce-d3b1-468f-b4d9-711ad6473120_2248x1272.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>PixelDrain.com Storage and data transfer services. <mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">$40 per year. Because you need the &#8220;Hotlinking&#8221; service supported</mark></strong>. Unfortunately, many social platforms do not accept public or shareable media links from Google Drive (and other large cloud storage services) as a valid method for transferring media files to their platforms. <em>They used to, but stopped sometime last year, so this step is extra but crucial. </em></p><p>Pixeldrain&#8217;s paid accounts allow for &#8220;hot linking&#8221; so you can't do this with a free account. All files expire (are deleted) after 120 days on the pro account, which I recommend so you're not saving duplicate media files long-term in Google Drive and Pixeldrain. It also gives you a 120-day content planning cycle that you can stick to. Sometimes limitations breed better creativity. </p><p>Pixeldrain has an API that you can use to upload your media files from the Google Drive spreadsheet through an app script. It happens automatically and in the background, so you can step away from your laptop for the day or work on other stuff while it runs.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dem7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dem7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png 424w, https://substackcdn.com/image/fetch/$s_!dem7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png 848w, https://substackcdn.com/image/fetch/$s_!dem7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png 1272w, https://substackcdn.com/image/fetch/$s_!dem7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dem7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png" width="678" height="395.23438549361987" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:868,&quot;width&quot;:1489,&quot;resizeWidth&quot;:678,&quot;bytes&quot;:343415,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://thisweek.fitletes.com/i/188184462?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b7d787b-0bf9-4747-a0d5-65d831fc1701_1489x868.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!dem7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png 424w, https://substackcdn.com/image/fetch/$s_!dem7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png 848w, https://substackcdn.com/image/fetch/$s_!dem7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png 1272w, https://substackcdn.com/image/fetch/$s_!dem7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F46441e0f-cb85-46fd-87b4-2e6f49a1207f_1489x868.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>I made an app script that creates a menu item <strong><span data-color="#ff9900" style="color: rgb(255, 153, 0);">(pictured above)</span></strong> for the spreadsheet to check a row for a Pixeldrain link in <strong>Col B</strong>. <span>If there is, then that row is skipped; if there isn&#8217;t, it takes the Google Drive file link in&nbsp;</span><strong><span>Col A and</span></strong><span>&nbsp;uploads the media to my Pixeldrain cloud.</span> <span>Once the media is uploaded successfully, it retrieves the Pixeldrain cloud link and writes it back to the spreadsheet in&nbsp;</span><strong><span>Col B.&nbsp;</span></strong><span>Finally, it extracts the filename from the Google Drive link and writes it to&nbsp;</span><strong><span>Col C</span></strong><span>. Here is the script so you can add it to your sheet.</span> </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;52a82805-ec77-433b-afc8-916cf437f57f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">// ==============================
// CONFIG
// ==============================
const SHEET_NAME         = 'ADD YOUR SHEET NAME'; // &lt;-- change this
const START_ROW          = 2;        // row 1 = headers

const COL_DRIVE_URL      = 1;        // A = google-drive-image-url
const COL_PIXELDRAIN_URL = 2;        // B = pixeldrainURL
const COL_DRIVE_TITLE    = 3;        // C = drive-file-title

const PIXELDRAIN_API_KEY = 'ADD YOUR PIXELDRAIN API KEY';       // &lt;-- add your API key here
// ==============================
// MENU
// ==============================
function onOpen() {
  SpreadsheetApp.getUi()
    .createMenu('Pixeldrain Tools')
    .addItem('Upload missing files (all rows)', 'uploadMissingFilesToPixeldrain')
    .addItem('Upload selected rows only', 'uploadSelectedRowsToPixeldrain')
    .addSeparator()
    .addItem('Rebuild titles only', 'fillMissingDriveTitles')
    .addToUi();
}
// ==============================
// MENU ACTIONS
// ==============================
function uploadMissingFilesToPixeldrain() {
  const sheet = getConfiguredSheet_();
  if (!sheet) return;

  const lastRow = sheet.getLastRow();
  if (lastRow &lt; START_ROW) {
    SpreadsheetApp.getUi().alert('No data rows found.');
    return;
  }

  const rowNumbers = [];
  for (let row = START_ROW; row &lt;= lastRow; row++) {
    rowNumbers.push(row);
  }

  processRows_(sheet, rowNumbers, {
    uploadMissing: true,
    fillTitles: true,
    skipIfPixeldrainUrlExists: true,
    titleOnly: false
  });
}

function uploadSelectedRowsToPixeldrain() {
  const sheet = getConfiguredSheet_();
  if (!sheet) return;

  const selectedRows = getSelectedRowNumbers_(sheet);

  if (!selectedRows.length) {
    SpreadsheetApp.getUi().alert(
      'No rows selected.\n\nSelect one or more rows in "' + SHEET_NAME + '" and try again.'
    );
    return;
  }

  processRows_(sheet, selectedRows, {
    uploadMissing: true,
    fillTitles: true,
    skipIfPixeldrainUrlExists: true,
    titleOnly: false
  });
}

function fillMissingDriveTitles() {
  const sheet = getConfiguredSheet_();
  if (!sheet) return;

  const lastRow = sheet.getLastRow();
  if (lastRow &lt; START_ROW) {
    SpreadsheetApp.getUi().alert('No data rows found.');
    return;
  }

  const rowNumbers = [];
  for (let row = START_ROW; row &lt;= lastRow; row++) {
    rowNumbers.push(row);
  }

  processRows_(sheet, rowNumbers, {
    uploadMissing: false,
    fillTitles: true,
    skipIfPixeldrainUrlExists: false,
    titleOnly: true
  });
}
// ==============================
// CORE PROCESSOR
// ==============================
function processRows_(sheet, rowNumbers, options) {
  const ui = SpreadsheetApp.getUi();

  let uploadedCount = 0;
  let titleUpdatedCount = 0;
  let skippedCount = 0;
  let errorCount = 0;

  const uniqueSortedRows = [...new Set(rowNumbers)]
    .filter(r =&gt; r &gt;= START_ROW)
    .sort((a, b) =&gt; a - b);

  for (let i = 0; i &lt; uniqueSortedRows.length; i++) {
    const rowNumber = uniqueSortedRows[i];

    try {
      const rowValues = sheet.getRange(rowNumber, 1, 1, 3).getValues()[0];
      const driveUrl = rowValues[COL_DRIVE_URL - 1];
      const pixeldrainUrl = String(rowValues[COL_PIXELDRAIN_URL - 1] || '').trim();
      const driveTitle = String(rowValues[COL_DRIVE_TITLE - 1] || '').trim();

      if (!driveUrl) {
        skippedCount++;
        continue;
      }

      const driveFileId = extractDriveFileId(driveUrl);
      if (!driveFileId) {
        throw new Error('Could not extract Google Drive file ID from URL');
      }

      // Title-only mode
      if (options.titleOnly) {
        if (!driveTitle) {
          const title = DriveApp.getFileById(driveFileId).getName();
          sheet.getRange(rowNumber, COL_DRIVE_TITLE).setValue(title);
          titleUpdatedCount++;
        } else {
          skippedCount++;
        }
        continue;
      }

      // If already uploaded, skip upload but optionally fill missing title
      if (options.skipIfPixeldrainUrlExists &amp;&amp; pixeldrainUrl) {
        if (!driveTitle &amp;&amp; options.fillTitles) {
          const title = DriveApp.getFileById(driveFileId).getName();
          sheet.getRange(rowNumber, COL_DRIVE_TITLE).setValue(title);
          titleUpdatedCount++;
        } else {
          skippedCount++;
        }
        continue;
      }

      // Upload missing file
      if (options.uploadMissing) {
        const driveFile = DriveApp.getFileById(driveFileId);
        const fileName = driveFile.getName();
        const blob = driveFile.getBlob();

        const uploadResult = uploadBlobToPixeldrain_(blob, fileName);

        if (!uploadResult || !uploadResult.id) {
          throw new Error('Pixeldrain did not return a file ID');
        }

        const fullPixeldrainUrl = 'https://pixeldrain.com/api/file/' + uploadResult.id;

        sheet.getRange(rowNumber, COL_PIXELDRAIN_URL).setValue(fullPixeldrainUrl);
        uploadedCount++;

        if (options.fillTitles) {
          sheet.getRange(rowNumber, COL_DRIVE_TITLE).setValue(fileName);
          titleUpdatedCount++;
        }
      }

    } catch (e) {
      errorCount++;
      Logger.log('Row ' + rowNumber + ' failed: ' + e);
    }
  }

  ui.alert(
    'Finished.\n' +
    'Uploaded: ' + uploadedCount + '\n' +
    'Titles updated: ' + titleUpdatedCount + '\n' +
    'Skipped: ' + skippedCount + '\n' +
    'Errors: ' + errorCount
  );
}
// ==============================
// HELPERS
// ==============================
function getConfiguredSheet_() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME);
  if (!sheet) {
    SpreadsheetApp.getUi().alert('Sheet not found: ' + SHEET_NAME);
    return null;
  }
  return sheet;
}

function getSelectedRowNumbers_(sheet) {
  const selection = SpreadsheetApp.getActiveSpreadsheet().getSelection();
  if (!selection) return [];

  const rangeList = selection.getActiveRangeList();
  if (!rangeList) {
    const singleRange = selection.getActiveRange();
    if (!singleRange) return [];
    return expandRangeToRowNumbers_(singleRange);
  }

  const ranges = rangeList.getRanges();
  const rows = [];

  for (let i = 0; i &lt; ranges.length; i++) {
    const range = ranges[i];

    if (range.getSheet().getName() !== sheet.getName()) {
      continue;
    }

    rows.push(...expandRangeToRowNumbers_(range));
  }

  return [...new Set(rows)].sort((a, b) =&gt; a - b);
}

function expandRangeToRowNumbers_(range) {
  const startRow = range.getRow();
  const numRows = range.getNumRows();
  const rows = [];

  for (let i = 0; i &lt; numRows; i++) {
    rows.push(startRow + i);
  }

  return rows;
}
// ==============================
// PIXELDRAIN UPLOAD
// ==============================
function uploadBlobToPixeldrain_(blob, fileName) {
  const url = 'https://pixeldrain.com/api/file/' + encodeURIComponent(fileName);

  const headers = {};
  if (PIXELDRAIN_API_KEY) {
    const token = Utilities.base64Encode(':' + PIXELDRAIN_API_KEY);
    headers['Authorization'] = 'Basic ' + token;
  }

  const options = {
    method: 'put',
    contentType: blob.getContentType() || 'application/octet-stream',
    payload: blob.getBytes(),
    headers: headers,
    muteHttpExceptions: true
  };

  const response = UrlFetchApp.fetch(url, options);
  const code = response.getResponseCode();
  const text = response.getContentText();

  if (code &lt; 200 || code &gt;= 300) {
    throw new Error('Pixeldrain upload failed. HTTP ' + code + ': ' + text);
  }

  return JSON.parse(text);
}
// ==============================
// DRIVE FILE ID PARSER
// ==============================
function extractDriveFileId(url) {
  let match = url.match(/\/file\/d\/([a-zA-Z0-9_-]+)/);
  if (match &amp;&amp; match[1]) return match[1];

  match = url.match(/[?&amp;]id=([a-zA-Z0-9_-]+)/);
  if (match &amp;&amp; match[1]) return match[1];

  return null;
}</code></pre></div></li></ul><h2><strong>Step 4: Setting up the Automated posting flow.</strong></h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!80Uy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!80Uy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png 424w, https://substackcdn.com/image/fetch/$s_!80Uy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png 848w, https://substackcdn.com/image/fetch/$s_!80Uy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png 1272w, https://substackcdn.com/image/fetch/$s_!80Uy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!80Uy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png" width="680" height="365.815041381792" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1495,&quot;width&quot;:2779,&quot;resizeWidth&quot;:680,&quot;bytes&quot;:1293929,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://thisweek.fitletes.com/i/188184462?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F420be997-e7a0-48a8-b860-3efd6e7ee4b5_2779x1495.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!80Uy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png 424w, https://substackcdn.com/image/fetch/$s_!80Uy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png 848w, https://substackcdn.com/image/fetch/$s_!80Uy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png 1272w, https://substackcdn.com/image/fetch/$s_!80Uy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa182b33b-28b4-41c6-b573-9640c347bd96_2779x1495.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Make.com: The visual automation platform.<mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);"> $0 because their free account provides 1,000 credits every month, and this flow only uses 3-5 per run.</mark> </strong></p><p><mark data-color="#d9ead3" style="background-color: rgb(217, 234, 211); color: rgb(0, 0, 0);">This 1,000-credit limit means you can run this flow at least 200 times per month before approaching the limit</mark>. The previous steps allow you to bypass the data transfer limitations (512MB-5GB) that Make.com and other services have, which you can hit pretty quickly if you have 1-minute-plus-long videos. They also allow you to have these automated posting flows while bypassing the data transfer step within Make, which causes the most processing and posting errors between these connected services, even on the paid plans. NOW LET'S GO OVER THIS IMAGE BELOW. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GFPK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GFPK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png 424w, https://substackcdn.com/image/fetch/$s_!GFPK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png 848w, https://substackcdn.com/image/fetch/$s_!GFPK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png 1272w, https://substackcdn.com/image/fetch/$s_!GFPK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GFPK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png" width="1456" height="845" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:845,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:330393,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://thisweek.fitletes.com/i/188184462?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GFPK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png 424w, https://substackcdn.com/image/fetch/$s_!GFPK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png 848w, https://substackcdn.com/image/fetch/$s_!GFPK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png 1272w, https://substackcdn.com/image/fetch/$s_!GFPK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde60952e-4e3b-4da0-a5bb-d82147a454e6_2677x1554.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>RETRIEVE RSS FEED MODULE: connect Substack RSS feed</p><ul><li><p>do not select the WATCH RSS FEED MODULE. Too many potential errors can come up with this one and frustrate you.</p><ul><li><p>add a filter to check the RSS feed for a new post on your Substack within the last hour.</p></li></ul></li></ul></li><li><p>ADD A ROUTER MODULE to split this flow into one for photos and one for videos.</p><ul><li><p>this filter can be whatever you want. but I set it up to essentially look for a specific word in my Substack post title.</p></li></ul></li><li><p>ADD A GOOGLE SHEET MODULE: connect this scenario to the Google Sheet you use for your social calendar.</p><ul><li><p><span>in this module, you will tell it to look for the row where your Substack title matches the row value in&nbsp;</span><strong><span>Col D=SUBSTACK-title&nbsp;</span></strong><span>and sort the sheet by the&nbsp;</span><strong><span>Col C=drive-file-title</span></strong><span>&nbsp;that has your dated file names in it.</span></p></li><li><p>After this module, you will set up a filter to ensure that a Pixeldrain link is available. so if there isn't one, it won't try to post anything to any of the social media accounts, cause an error, or waste credits by retrying.</p></li></ul></li><li><p>ADD A SOCIAL MEDIA MODULE LIKE INSTAGRAM OR LINKEDIN.</p><ul><li><p>The social media service must be able to accept a media URL as a posting method. I haven&#8217;t tried all of them, but most allow it.  I don&#8217;t think TikTok allows it.</p></li><li><p>You don't have to worry about YouTube, because Substack already handles all that for you. You can always go back in and edit your video titles and details later if you desire.</p></li></ul></li><li><p>Once you have these set up, now you can schedule how many times per day you want this scenario to automatically check your RSS feed. </p></li></ul><p><strong>HERE IS THE LINK TO THE SCENARIO: <a href="https://us1.make.com/public/shared-scenario/4Z3sTKZQ5bM/substack-demo-from-new-rss-feed-item-sea">https://us1.make.com/public/shared-scenario/4Z3sTKZQ5bM/substack-demo-from-new-rss-feed-item-sea</a></strong></p><div><hr></div><p><strong>I already paid for Google Drive storage, so this costs me only an additional ~$60 per year.  </strong>Now I can delete them from my phone and interact with the services only via the browser or an Android emulator on my laptop. Glorious.</p>]]></content:encoded></item></channel></rss>