<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    
    <title>Daniel Lange's blog (Entries tagged as automate)</title>
    <link>http://daniel-lange.com/</link>
    <description>agrep -pB IT /dev/life</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 2.6-alpha1 - http://www.s9y.org/</generator>
    <pubDate>Thu, 02 Jun 2022 16:38:50 GMT</pubDate>

    <image>
    <url>//daniel-lange.com/uploads/Avatar_Blog_144_234.png</url>
    <title>RSS: Daniel Lange's blog - agrep -pB IT /dev/life</title>
    <link>http://daniel-lange.com/</link>
    <width>144</width>
    <height>234</height>
</image>

<item>
    <title>Get Youtube Channel ID from username</title>
    <link>http://daniel-lange.com/archives/175-Get-Youtube-Channel-ID-from-username.html</link>
            <category>Internet</category>
    
    <comments>http://daniel-lange.com/archives/175-Get-Youtube-Channel-ID-from-username.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=175</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=175</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Youtube has a really nice RSS feature that is extremely well hidden.&lt;/p&gt;

&lt;p&gt;If you postfix a Channel ID to&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;https://www.youtube.com/feeds/videos.xml?channel_id=&amp;lt;id goes here&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;you get a really nice Atom 1.0 (~RSS) feed for your feedreader.&lt;/p&gt;

&lt;p&gt;Unfortunately the Channel ID is hard to find while you are navigating Youtube with usernames in the URL.&lt;/p&gt;

&lt;p&gt;E.g. &lt;a href=&quot;https://www.youtube.com/c/TED&quot;&gt;https://www.youtube.com/c/TED&lt;/a&gt; is TED&#039;s channel, full of interesting and worth-to-watch content (and some assorted horse toppings, of course).&lt;/p&gt;

&lt;p&gt;But you have to read a lot of ugly HTML / JSON in that page to find and combine&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/feeds/videos.xml?channel_id=UCAuUUnT6oDeKwE6v1NGQxug&quot;&gt;https://www.youtube.com/feeds/videos.xml?channel_id=UCAuUUnT6oDeKwE6v1NGQxug&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;which is the related RSS feed.&lt;/p&gt;

&lt;p&gt;Jeff Keeling wrote a simple &lt;a href=&quot;https://jeffkeeling.github.io/youtube_rss_extractor/&quot;&gt;Youtube RSS Extractor&lt;/a&gt; that does well if you have a &lt;code&gt;../playlist?...&lt;/code&gt; or a &lt;code&gt;.../channel/...&lt;/code&gt; URL but it will (currently) fail on user name channels or Youtube landing pages.&lt;/p&gt;

&lt;p&gt;So how do we get the Channel ID for a Youtube user we are interested to follow?&lt;/p&gt;

&lt;p&gt;Youtube has a great API but that is gated by API keys even for the most simple calls (that came only with v3 of the API but the previous version is depreciated since 2015)&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;dl@laptop:~$ &lt;/span&gt;curl &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;https://www.googleapis.com/youtube/v3/channels?part=contentDetails&amp;amp;forUsername=DebConfVideos&#039;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;error&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;code&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #000000;&quot;&gt;403&lt;/span&gt;,&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;The request is missing a valid API key.&amp;quot;&lt;/span&gt;,&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;errors&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#91;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#123;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;The request is missing a valid API key.&amp;quot;&lt;/span&gt;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;domain&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;global&amp;quot;&lt;/span&gt;,&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;reason&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;forbidden&amp;quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#93;&lt;/span&gt;,&lt;br /&gt;&amp;#160; &amp;#160; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;status&amp;quot;&lt;/span&gt;: &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;PERMISSION_DENIED&amp;quot;&lt;/span&gt;&lt;br /&gt;&amp;#160; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;Luckily we can throw the same (example) user name &lt;code&gt;DebConfVideos&lt;/code&gt; at &lt;code&gt;curl&lt;/code&gt; and &lt;code&gt;grep&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;dl@laptop:~$ &lt;/span&gt;curl &lt;span style=&quot;color: #660033;&quot;&gt;-s&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;https://www.youtube.com/c/DebConfVideos/videos&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;grep&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-Po&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;&amp;quot;channelId&amp;quot;:&amp;quot;.+?&amp;quot;&#039;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;channelId&amp;quot;&lt;/span&gt;:&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;UC7SbfAPZf8SMvAxp8t51qtQ&amp;quot;&lt;/span&gt; &lt;/div&gt;

&lt;p&gt;So &lt;a href=&quot;https://www.youtube.com/feeds/videos.xml?channel_id=UC7SbfAPZf8SMvAxp8t51qtQ&quot;&gt;https://www.youtube.com/feeds/videos.xml?channel_id=UC7SbfAPZf8SMvAxp8t51qtQ&lt;/a&gt; is the RSS feed for DebConfVideos.&lt;/p&gt;

&lt;p&gt;We can use individual Youtube video URLs as well. With the hack above, it&#039;ll work to find us the Chanel ID from a Youtube video URL:&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:690 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;920&quot; height=&quot;78&quot;  src=&quot;http://daniel-lange.com/uploads/entries/220601_Google_Youtube_get_channelId_2.jpg&quot;  alt=&quot;Working around the Youtube API restrictions to still make use of their RSS feed&quot;&gt;&lt;/p&gt;

&lt;p&gt;Now, some user pages may have multiple valid RSS feeds because they contain multiple channels.&lt;/p&gt;

&lt;p&gt;Remember the TED page from above? Well run:&lt;/p&gt;

&lt;div class=&quot;bash geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;dl@laptop:~$ &lt;/span&gt;curl &lt;span style=&quot;color: #660033;&quot;&gt;-s&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;https://www.youtube.com/c/TED&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;grep&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-Po&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&#039;&amp;quot;channelId&amp;quot;:&amp;quot;.+?&amp;quot;&#039;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;cut&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-d&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;\&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-f&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;4&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;while&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;read&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-r&lt;/span&gt; YTID ; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;do&lt;/span&gt; &lt;span style=&quot;color: #7a0874; font-weight: bold;&quot;&gt;echo&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-n&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;Youtube-ID: &lt;span style=&quot;color: #007800;&quot;&gt;$YTID&lt;/span&gt; &amp;quot;&lt;/span&gt; ; curl &lt;span style=&quot;color: #660033;&quot;&gt;-s&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;https://www.youtube.com/feeds/videos.xml?channel_id=&lt;span style=&quot;color: #007800;&quot;&gt;$YTID&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;|&lt;/span&gt; &lt;span style=&quot;color: #c20cb9; font-weight: bold;&quot;&gt;grep&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-m&lt;/span&gt; &lt;span style=&quot;color: #000000;&quot;&gt;1&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-P&lt;/span&gt; &lt;span style=&quot;color: #660033;&quot;&gt;-o&lt;/span&gt; &lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;(?&amp;lt;=&amp;lt;title&amp;gt;).+(?=&amp;lt;/title&amp;gt;)&amp;quot;&lt;/span&gt; ; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;done&lt;/span&gt;&lt;/div&gt;

&lt;p&gt;This will iterate through the Channel IDs found and show you the titles. That way you can assess which one you want to add to your feedreader.&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:691 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;670&quot; height=&quot;246&quot;  src=&quot;http://daniel-lange.com/uploads/entries/220601_Google_Youtube_get_channelId_and_title.jpg&quot; title=&quot;Bash automation FTW!&quot; alt=&quot;screenshot of the above&quot;&gt;&lt;/p&gt;

&lt;p&gt;You probably want the last Channel ID listed above, the non-selective &quot;TED&quot; one. And that&#039;s the one from the example above.&lt;/p&gt;

&lt;h2&gt;Update&lt;/h2&gt;

&lt;p&gt;02.06.2022:
smpl wrote in and has the much better solution for the most frequent use cases:&lt;/p&gt;

&lt;pre&gt;
You can also use get a feed directly with a username:
https://www.youtube.com/feeds/videos.xml?user=&amp;lt;username&amp;gt;

The one I use most is the one for playlists (if creators remember to
use them).

https://www.youtube.com/feeds/videos.xml?playlist_id=&amp;lt;playlist id&amp;gt;
&lt;/pre&gt;

&lt;p&gt;For the common case you don&#039;t even need the channel ID that way.
But it is also conveniently given in a &lt;code&gt;&amp;lt;yt:channelId&amp;gt;&lt;/code&gt; tag (or the topmost &lt;code&gt;&amp;lt;id&amp;gt;&lt;/code&gt; tag) within the Atom XML document.&lt;/p&gt;

&lt;p&gt;Thanks, smpl!&lt;/p&gt;

&lt;div class=&quot;footnotes&quot;&gt;
&lt;hr /&gt;
&lt;ol&gt;

&lt;li id=&quot;fn:1&quot;&gt;
&lt;p&gt;Actually it is even more complicated as some channels, like our DebConfVideos example, will only get you an incomplete result, cf. &lt;a href=&quot;https://stackoverflow.com/questions/37267324/how-to-get-youtube-channel-details-using-youtube-data-api-if-channel-has-custom&quot;&gt;this StackOverflow entry&lt;/a&gt;. I.e. the &lt;code&gt;forUsername&lt;/code&gt; iterator may not even work and the &quot;best practice&quot; seems to be mucking around with the &lt;code&gt;search&lt;/code&gt; call.&amp;#160;&lt;a href=&quot;#fnref:1&quot; rev=&quot;footnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;
&lt;/div&gt;
 
    </content:encoded>

    <pubDate>Wed, 01 Jun 2022 16:45:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/175-guid.html</guid>
    <category>api</category>
<category>atom</category>
<category>automate</category>
<category>bash</category>
<category>channel</category>
<category>google</category>
<category>rss</category>
<category>updated</category>
<category>url</category>
<category>user</category>
<category>video</category>
<category>web</category>
<category>youtube</category>

</item>
<item>
    <title>Frustrating spammers</title>
    <link>http://daniel-lange.com/archives/149-Frustrating-spammers.html</link>
            <category>Internet</category>
    
    <comments>http://daniel-lange.com/archives/149-Frustrating-spammers.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=149</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=149</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;Sometimes tiny things make my day at 9am already.&lt;/p&gt;

&lt;p&gt;That spammer got frustrated because none of his bots would get comments pasted to my blog:&lt;/p&gt;

&lt;p&gt;&lt;!-- s9ymdb:654 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;311&quot; height=&quot;187&quot;  src=&quot;http://daniel-lange.com/uploads/entries/181116_Frustrated_spammer_testing_blog_comments_function.png&quot; title=&quot;Reconsider. Do something worthwhile with your life instead.&quot; alt=&quot;Screenshot of the spammer&#039;s test comment&quot;&gt;&lt;/p&gt;

&lt;p&gt;Greetings to Cambodia.&lt;/p&gt;

&lt;p&gt;BTW: Mikrotik RouterOS 6.41, &lt;a href=&quot;https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-7445&quot; title=&quot;Remote code execution on this device.&quot;&gt;CVE-2018-7445&lt;/a&gt;. &lt;abbr title=&quot;Remote Code Execution&quot;&gt;RCE&lt;/abbr&gt; unpatched for 9+ months.&lt;/p&gt;
 
    </content:encoded>

    <pubDate>Fri, 16 Nov 2018 08:00:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/149-guid.html</guid>
    <category>antispam</category>
<category>automate</category>
<category>humans</category>

</item>
<item>
    <title>Cygwin automatic updates</title>
    <link>http://daniel-lange.com/archives/114-Cygwin-automatic-updates.html</link>
            <category>IT</category>
    
    <comments>http://daniel-lange.com/archives/114-Cygwin-automatic-updates.html#comments</comments>
    <wfw:comment>http://daniel-lange.com/wfwcomment.php?cid=114</wfw:comment>

    <slash:comments>3</slash:comments>
    <wfw:commentRss>http://daniel-lange.com/rss.php?version=2.0&amp;type=comments&amp;cid=114</wfw:commentRss>
    

    <author>nospam@example.com (Daniel Lange)</author>
    <content:encoded>
    &lt;p&gt;&lt;a href=&quot;https://www.cygwin.com/&quot; title=&quot;Cygwin homepage&quot;&gt;Cygwin&lt;/a&gt; is a fantastic product for people that need to use Microsoft Windows and require some compatibility to Linux (or BSD or UNIX in general).&lt;/p&gt;

&lt;p&gt;Unfortunately it is not trivial to keep it updated (and thus safe) as the update process requires downloading the latest installer and then clicking through the package list again and again on every update.&lt;br /&gt;
No &lt;code&gt;apt-get update&lt;/code&gt;, no &lt;code&gt;emerge --update @world&lt;/code&gt;, no &lt;code&gt;dnf update&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;But ... the people at Red Hat (who now own Cygwin) are not mean, they are just not good at documenting things &lt;img src=&quot;http://daniel-lange.com/plugins/serendipity_event_emoticate/img/emoticons/smile.png&quot; alt=&quot;:-)&quot; class=&quot;emoticon&quot; /&gt;...&lt;/p&gt;

&lt;p&gt;Be sure to have wget installed via cygwin, you&#039;ll need it to fetch the installer automatically.&lt;br /&gt;
Then drop the following batch file as &lt;code&gt;cyg_update.bat&lt;/code&gt; into &lt;code&gt;C:\cygwin64&lt;/code&gt; (or where you have installed cygwin&lt;sup id=&quot;fnref:1&quot;&gt;&lt;a href=&quot;#fn:1&quot; rel=&quot;footnote&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;):&lt;/p&gt;

&lt;div class=&quot;dos geshi&quot; style=&quot;text-align: left&quot;&gt;&lt;ol&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;﻿&lt;span style=&quot;color: #33cc33;&quot;&gt;@&lt;/span&gt;&lt;a href=&quot;http://www.ss64.com/nt/echo.html&quot;&gt;&lt;span style=&quot;color: #b1b100; font-weight: bold;&quot;&gt;echo&lt;/span&gt;&lt;/a&gt; off&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;a href=&quot;http://www.ss64.com/nt/cd.html&quot;&gt;&lt;span style=&quot;color: #b1b100; font-weight: bold;&quot;&gt;cd&lt;/span&gt;&lt;/a&gt; /d C:\cygwin64&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;a href=&quot;http://www.ss64.com/nt/del.html&quot;&gt;&lt;span style=&quot;color: #b1b100; font-weight: bold;&quot;&gt;del&lt;/span&gt;&lt;/a&gt; /Q cygwinSetup-x86_64.exe&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;bin\wget.exe --progress=dot -S -N http://cygwin.com/setup-x86_64.exe&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;a href=&quot;http://www.ss64.com/nt/move.html&quot;&gt;&lt;span style=&quot;color: #b1b100; font-weight: bold;&quot;&gt;move&lt;/span&gt;&lt;/a&gt; /y setup-x86_64.exe cygwinSetup-x86_64.exe &lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;&lt;span style=&quot;color: #808080; font-style: italic;&quot;&gt;REM S-1-1-0 is the SID for &amp;quot;Everyone&amp;quot;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;icacls cygwinSetup-x86_64.exe /grant *S-1-1-0:RX&lt;/div&gt;&lt;/li&gt;&lt;li style=&quot;font-weight: normal; vertical-align:top;&quot;&gt;&lt;div style=&quot;font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;&quot;&gt;cygwinSetup-x86_64.exe --no-desktop --no-shortcuts --no-startmenu --quiet-mode&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;

&lt;p&gt;Once you start the batch (e.g. by double-clicking from Windows Explorer) it will download the latest installer from Cygwin.com and perform a silent update.
You need to approve the Windows installer warning as you do with every manual install / update as well. So it&#039;s not a no-click update but a one-or-two-clicks update.&lt;br /&gt;
Still much better than the click fest without the batch file.&lt;/p&gt;

&lt;p&gt;&lt;a class=&quot;serendipity_image_link&quot; title=&quot;Cygwin update screenshot&quot; href=&#039;http://daniel-lange.com/uploads/entries/Screenshot_cygwin.png&#039; onclick=&quot;F1 = window.open(&#039;/uploads/entries/Screenshot_cygwin.png&#039;,&#039;Zoom&#039;,&#039;height=1095,width=1409,top=60,left=263,toolbar=no,menubar=no,location=no,resize=1,resizable=1,scrollbars=yes&#039;); return false;&quot;&gt;&lt;!-- s9ymdb:618 --&gt;&lt;img class=&quot;serendipity_image_center&quot; width=&quot;697&quot; height=&quot;540&quot;  src=&quot;http://daniel-lange.com/uploads/entries/Screenshot_cygwin.png&quot; title=&quot;Cygwin update screenshot&quot; alt=&quot;Cygwin update screenshot&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Update&lt;/h3&gt;

&lt;p&gt;01.06.2017: I&#039;ve changed &lt;tt&gt;icacls cygwinSetup-x86_64.exe /grant &lt;b&gt;Everyone&lt;/b&gt;:RX&lt;/tt&gt; to &lt;tt&gt;icacls cygwinSetup-x86_64.exe /grant &lt;b&gt;*S-1-1-0&lt;/b&gt;:RX&lt;/tt&gt; which is the SID and not language dependent. &#039;cause otherwise German Windows would like to see &quot;Jeder&quot; and French &quot;Tous publics&quot;, Chinese &quot;任何人&quot;, etc. Looking them up on &lt;a href=&quot;https://www.microsoft.com/language/en-us/Search.aspx&quot;&gt;Microsoft&#039;s terminology search&lt;/a&gt; is quite nice but not really scalable.&lt;/p&gt;

&lt;div class=&quot;footnotes&quot;&gt;
&lt;hr /&gt;
&lt;ol&gt;

&lt;li id=&quot;fn:1&quot;&gt;
&lt;p&gt;If you have installed the 32bit version and/or used a different install path, adjust line 2 of the batch file accordingly. Did I need to say that? Hm, well, I did ... have a cookie.&amp;#160;&lt;a href=&quot;#fnref:1&quot; rev=&quot;footnote&quot;&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;

&lt;/ol&gt;
&lt;/div&gt;
 
    </content:encoded>

    <pubDate>Wed, 17 Feb 2016 12:37:00 +0000</pubDate>
    <guid isPermaLink="false">http://daniel-lange.com/archives/114-guid.html</guid>
    <category>automate</category>
<category>batch</category>
<category>cygwin</category>
<category>install</category>
<category>script</category>
<category>update</category>
<category>windows</category>

</item>

</channel>
</rss>
