Posted: 9 May 2022. At: 10:05 AM. This was 2 years ago. Post ID: 16291
Page permalink. WordPress uses cookies, or tiny pieces of information stored on your computer, to verify who you are. There are cookies for logged in users and for commenters.
These cookies expire two weeks after they are set.

How to print out a list of a YouTube channel`s latest video uploads with the command-line.

There is an easy way to print out a list of a YouTube channel`s latest video uploads with the command line. This involves curl and grep. This is a very neat trick.

Below is an example of this in action. Get the Youtube channel-id by viewing the HTML source of the channel page and looking for the feed URL. Just press Control-F and then search for this URL.

https://www.youtube.com/feeds/videos.xml.

┌──(john㉿DESKTOP-PF01IEE)-[~]
└─$ curl -s https://www.youtube.com/feeds/videos.xml?channel_id=UChkws8rD7PNNITF17q1wOCw | grep "<title>" | sed -e 's/<[^>]*>//g'
 Linux TV
  Ubuntu 20.04 LTS Review | Is This The Best Ubuntu Yet?! Should You Use it? Find Out!
  3 Best Linux Distros To Try if You Don't Like The GNOME Desktop
  Ubuntu Complete Beginner's Guide: Customizing The Desktop
  Ubuntu Complete Beginner's Guide: How To Install, Remove, and Update New Apps
  Ubuntu Complete Beginner's Guide: The System Settings
  Ubuntu Complete Beginner's Guide: Files &amp; Folders
  Ubuntu Complete Beginner's Guide: Getting To Know The Desktop
  Ubuntu Complete Beginner's Guide: Download &amp; Installing Ubuntu
  How To Try New Linux Distros Without Installing Them On Your PC
  2020 Exciting News Update For This Channel!
  How To Play Windows Games On Linux (AAA Gaming On Any Linux Distro, Finally!)
  Ubuntu 19.10 Review | The Best GNOME Desktop, Yet?
  Fedora 31 Review | Should You Use It? Find Out!
  Complete Linux Mint Tutorial: Getting To Know The Default Applications
  Complete Linux Mint Tutorial: Customizing The Desktop

But this is a very nice and effective way to list the newest uploads in the terminal.

This is how to list the URL as well as the upload titles.

┌──(john㉿DESKTOP-PF01IEE)-[~]
└─$ curl -s https://www.youtube.com/feeds/videos.xml?channel_id=UChkws8rD7PNNITF17q1wOCw | grep -E "<title>|<uri>" | sed -e 's/<[^>]*>/\t/g'
        Linux TV
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Ubuntu 20.04 LTS Review | Is This The Best Ubuntu Yet?! Should You Use it? Find Out!
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        3 Best Linux Distros To Try if You Don't Like The GNOME Desktop
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Ubuntu Complete Beginner's Guide: Customizing The Desktop
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Ubuntu Complete Beginner's Guide: How To Install, Remove, and Update New Apps
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Ubuntu Complete Beginner's Guide: The System Settings
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Ubuntu Complete Beginner's Guide: Files &amp; Folders
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Ubuntu Complete Beginner's Guide: Getting To Know The Desktop
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Ubuntu Complete Beginner's Guide: Download &amp; Installing Ubuntu
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        How To Try New Linux Distros Without Installing Them On Your PC
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        2020 Exciting News Update For This Channel!
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        How To Play Windows Games On Linux (AAA Gaming On Any Linux Distro, Finally!)
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Ubuntu 19.10 Review | The Best GNOME Desktop, Yet?
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Fedora 31 Review | Should You Use It? Find Out!
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Complete Linux Mint Tutorial: Getting To Know The Default Applications
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw
        Complete Linux Mint Tutorial: Customizing The Desktop
        https://www.youtube.com/channel/UChkws8rD7PNNITF17q1wOCw

Using grep this way: grep -E "|<URI>"</code> allows the user to search for 2 strings at once.</p> </div><!-- .entry-content --> <footer class="entry-footer"> <div class="entry-meta"> <span class="byline"> by <span class="author vcard"><a class="url fn n" href="https://www.securitronlinux.com/author/john/">John Cartwright</a></span></span><span class="posted-on"><a href="https://www.securitronlinux.com/bejiitaswrath/how-to-print-out-a-list-of-a-youtube-channels-latest-video-uploads-with-the-command-line/" rel="bookmark"><time class="entry-date published updated" datetime="2022-05-09T10:05:03+10:00">May 9, 2022</time></a></span> </div><!-- .entry-meta --> <span class="cat-links"><a href="https://www.securitronlinux.com/category/bejiitaswrath/" rel="category tag">bejiitaswrath</a></span><span class="tags-links">Tags: <a href="https://www.securitronlinux.com/tag/channel/" rel="tag">channel</a>, <a href="https://www.securitronlinux.com/tag/curl/" rel="tag">curl</a>, <a href="https://www.securitronlinux.com/tag/uploads/" rel="tag">uploads</a>, <a href="https://www.securitronlinux.com/tag/youtube/" rel="tag">youtube</a></span> </footer><!-- .entry-footer --> </article><!-- #post-16291 --> <nav class="navigation post-navigation" aria-label="Posts"> <h2 class="screen-reader-text">Post navigation</h2> <div class="nav-links"><div class="nav-previous"><a href="https://www.securitronlinux.com/bejiitaswrath/install-a-very-useful-youtube-app-on-linux-and-watch-youtube-without-a-browser/" rel="prev"><span class="nav-subtitle">Previous:</span> <span class="nav-title">Install a very useful Youtube app on Linux and watch Youtube without a browser.</span></a></div><div class="nav-next"><a href="https://www.securitronlinux.com/bejiitaswrath/are-programming-jobs-worth-it-in-2022/" rel="next"><span class="nav-subtitle">Next:</span> <span class="nav-title">Are programming jobs worth it in 2022?</span></a></div></div> </nav> <div id="comments" class="comments-area"> <div id="respond" class="comment-respond"> <h3 id="reply-title" class="comment-reply-title">Leave a Reply <small><a rel="nofollow" id="cancel-comment-reply-link" href="/bejiitaswrath/how-to-print-out-a-list-of-a-youtube-channels-latest-video-uploads-with-the-command-line/#respond" style="display:none;">Cancel reply</a></small></h3><form action="https://www.securitronlinux.com/wp-comments-post.php" method="post" id="commentform" class="comment-form" novalidate><p class="comment-notes"><span id="email-notes">Your email address will not be published.</span> <span class="required-field-message">Required fields are marked <span class="required">*</span></span></p><p class="comment-form-comment"><label for="comment">Comment <span class="required">*</span></label> <textarea id="comment" name="comment" cols="45" rows="8" maxlength="65525" required></textarea></p><p class="comment-form-author"><label for="author">Name <span class="required">*</span></label> <input id="author" name="author" type="text" value="" size="30" maxlength="245" autocomplete="name" required /></p> <p class="comment-form-email"><label for="email">Email <span class="required">*</span></label> <input id="email" name="email" type="email" value="" size="30" maxlength="100" aria-describedby="email-notes" autocomplete="email" required /></p> <p class="comment-form-url"><label for="url">Website</label> <input id="url" name="url" type="url" value="" size="30" maxlength="200" autocomplete="url" /></p> <p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Save my name, email, and website in this browser for the next time I comment.</label></p> <p class="form-submit"><input name="submit" type="submit" id="submit" class="submit" value="Post Comment" /> <input type='hidden' name='comment_post_ID' value='16291' id='comment_post_ID' /> <input type='hidden' name='comment_parent' id='comment_parent' value='0' /> </p><p style="display: none;"><input type="hidden" id="akismet_comment_nonce" name="akismet_comment_nonce" value="6f56b65345" /></p><p style="display: none !important;" class="akismet-fields-container" data-prefix="ak_"><label>Δ<textarea name="ak_hp_textarea" cols="45" rows="8" maxlength="100"></textarea></label><input type="hidden" id="ak_js_1" name="ak_js" value="20"/><script>document.getElementById( "ak_js_1" ).setAttribute( "value", ( new Date() ).getTime() );</script></p></form> </div><!-- #respond --> <p class="akismet_comment_form_privacy_notice">This site uses Akismet to reduce spam. <a href="https://akismet.com/privacy/" target="_blank" rel="nofollow noopener">Learn how your comment data is processed</a>.</p> </div><!-- #comments --> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8628847859028113" crossorigin="anonymous"></script> <ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-8628847859028113" data-ad-slot="6529129497"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </main><!-- #main --> <aside id="secondary" class="widget-area"> <section id="block-68" class="widget widget_block widget_search"><form role="search" method="get" action="https://www.securitronlinux.com/" class="wp-block-search__button-outside wp-block-search__text-button wp-block-search" ><label class="wp-block-search__label" for="wp-block-search__input-1" >Search</label><div class="wp-block-search__inside-wrapper " ><input class="wp-block-search__input" id="wp-block-search__input-1" placeholder="" value="" type="search" name="s" required /><button aria-label="Search" class="wp-block-search__button wp-element-button" type="submit" >Search</button></div></form></section><section id="block-56" class="widget widget_block widget_text"> <p>My GitHub. -|- <a href="https://securitronlinux.com/contact-me/">Contact me</a>. -|- <a href="https://doomwiki.org/wiki/Entryway">Official</a> Doom WIKI.</p> </section><section id="block-61" class="widget widget_block widget_text"> <p>NeXTSTEP Source code tree. <a href="https://securitronlinux.com/news/html/index.html">https://securitronlinux.com/news/html/index.html</a>.</p> </section><section id="block-14" class="widget widget_block widget_calendar"><div class="wp-block-calendar"><table id="wp-calendar" class="wp-calendar-table"> <caption>July 2024</caption> <thead> <tr> <th scope="col" title="Monday">M</th> <th scope="col" title="Tuesday">T</th> <th scope="col" title="Wednesday">W</th> <th scope="col" title="Thursday">T</th> <th scope="col" title="Friday">F</th> <th scope="col" title="Saturday">S</th> <th scope="col" title="Sunday">S</th> </tr> </thead> <tbody> <tr><td>1</td><td>2</td><td id="today">3</td><td>4</td><td>5</td><td>6</td><td>7</td> </tr> <tr> <td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td><td>14</td> </tr> <tr> <td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td><td>21</td> </tr> <tr> <td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td><td>28</td> </tr> <tr> <td>29</td><td>30</td><td>31</td> <td class="pad" colspan="4"> </td> </tr> </tbody> </table><nav aria-label="Previous and next months" class="wp-calendar-nav"> <span class="wp-calendar-nav-prev"><a href="https://www.securitronlinux.com/2024/06/">« Jun</a></span> <span class="pad"> </span> <span class="wp-calendar-nav-next"> </span> </nav></div></section><section id="block-66" class="widget widget_block widget_text"> <p>Radio and television streams: <a href="https://securitronlinux.com/radio-television-streams/">https://securitronlinux.com/radio-television-streams/</a><br>Daily Mail videos gallery: <a href="https://www.securitronlinux.com/dailymail-videos-page/">https://www.securitronlinux.com/dailymail-videos-page/</a><br>Another look at the <a href="https://www.securitronlinux.com/bejiitaswrath/another-look-at-the-nextstep-source-code/">NEXTSTEP code</a>.</p> </section><section id="block-11" class="widget widget_block widget_recent_entries"><ul class="wp-block-latest-posts__list has-dates has-author wp-block-latest-posts"><li><a class="wp-block-latest-posts__post-title" href="https://www.securitronlinux.com/uefi/cloning-a-linux-installation-onto-another-drive-is-possible-with-clonezilla/">Cloning a Linux installation onto another drive is possible with Clonezilla.</a><div class="wp-block-latest-posts__post-author">by John Cartwright</div><time datetime="2024-06-29T11:25:23+10:00" class="wp-block-latest-posts__post-date">June 29, 2024</time><div class="wp-block-latest-posts__post-excerpt">I just cloned my Alma Linux install on a new SSD. Clonezilla is very easy to use.</div></li> <li><a class="wp-block-latest-posts__post-title" href="https://www.securitronlinux.com/debian-testing/very-useful-ways-to-create-wildcards-with-the-linux-shell/">Very useful ways to create wildcards with the Linux shell.</a><div class="wp-block-latest-posts__post-author">by John Cartwright</div><time datetime="2024-06-28T12:20:03+10:00" class="wp-block-latest-posts__post-date">June 28, 2024</time><div class="wp-block-latest-posts__post-excerpt">Some very useful tips for wildcards on Linux.</div></li> <li><a class="wp-block-latest-posts__post-title" href="https://www.securitronlinux.com/bejiitaswrath/a-very-good-tool-for-parsing-apache-logs-and-gaining-insight-into-the-performance-of-your-website/">A very good tool for parsing Apache logs and gaining insight into the performance of your website.</a><div class="wp-block-latest-posts__post-author">by John Cartwright</div><time datetime="2024-06-28T11:44:19+10:00" class="wp-block-latest-posts__post-date">June 28, 2024</time><div class="wp-block-latest-posts__post-excerpt">A very nice tool for Linux to parse Apache logs and create a HTML report.</div></li> <li><a class="wp-block-latest-posts__post-title" href="https://www.securitronlinux.com/bejiitaswrath/strange-happening-when-creating-an-image-with-ai/">Strange happening when creating an image with AI.</a><div class="wp-block-latest-posts__post-author">by John Cartwright</div><time datetime="2024-06-28T10:15:31+10:00" class="wp-block-latest-posts__post-date">June 28, 2024</time><div class="wp-block-latest-posts__post-excerpt">AI image generators can create strange results with random prompts.</div></li> <li><a class="wp-block-latest-posts__post-title" href="https://www.securitronlinux.com/stalker/stalker-legends-of-the-zone-trilogy-for-xbox-and-playstation-now-allows-modding/">Stalker Legends of the Zone trilogy for Xbox and PlayStation now allows modding.</a><div class="wp-block-latest-posts__post-author">by John Cartwright</div><time datetime="2024-06-26T08:51:38+10:00" class="wp-block-latest-posts__post-date">June 26, 2024</time><div class="wp-block-latest-posts__post-excerpt">Stalker games on consoles now have modding support. This is great for gamers.</div></li> </ul></section><section id="block-13" class="widget widget_block widget_recent_comments"><ol class="has-avatars has-dates has-excerpts wp-block-latest-comments"><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/ebdd4a32574159fdd19c051c994be67b?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/ebdd4a32574159fdd19c051c994be67b?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><a class="wp-block-latest-comments__comment-author" href="https://securitronlinux.com">John Cartwright</a> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/battlefield/the-stalker-2-dev-build-has-leaked-on-the-internet/#comment-16206">The Stalker 2 dev build has leaked on the Internet.</a><time datetime="2024-06-14T09:59:12+10:00" class="wp-block-latest-comments__comment-date">June 14, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>Here is a Stalker 2 Repack. magnet:?xt=urn:btih:cwjz3l4nzfhiwe7jdhcemu7j7qnypmay&dn=STALKER2%20Repack%20By%20VTSS&xl=171719420896&fc=111</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/fbc708242ffa4c8f874620012997405a?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/fbc708242ffa4c8f874620012997405a?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><span class="wp-block-latest-comments__comment-author">David</span> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/battlefield/the-stalker-2-dev-build-has-leaked-on-the-internet/#comment-15965">The Stalker 2 dev build has leaked on the Internet.</a><time datetime="2024-05-26T03:23:04+10:00" class="wp-block-latest-comments__comment-date">May 26, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>Hello, do you have buld 5b915c12? link: https://btdig.com/63567989c3d13b1faf5c249e5b38af17101a1b82 I'm trying to download it but it seems to be offline. If…</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/a360a8b65bb41c42497ae62d569f18e2?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/a360a8b65bb41c42497ae62d569f18e2?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><a class="wp-block-latest-comments__comment-author" href="https://gptdeutsch.com/">ChatGPT Online</a> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/product/how-to-enable-developer-mode-in-chatgpt-and-get-better-prompt-results/#comment-15768">How to enable Developer mode in ChatGPT and get better prompt results.</a><time datetime="2024-05-10T11:33:10+10:00" class="wp-block-latest-comments__comment-date">May 10, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>Great tutorial on enabling developer mode in ChatGPT! I appreciate the detailed instructions provided. This has really helped me improve…</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/00c06c9109b1720e19ce9d82fe8a6227?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/00c06c9109b1720e19ce9d82fe8a6227?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><span class="wp-block-latest-comments__comment-author">John Cartwright</span> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/bejiitaswrath/finding-password-files-and-other-information-online-using-google-dorks/#comment-15674">Finding password files and other information online using Google Dorks.</a><time datetime="2024-04-30T20:33:52+10:00" class="wp-block-latest-comments__comment-date">April 30, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>S3 bucket find Using Google Dorks 🌍 Here are a couple of examples: site:http://amazonaws.com inurl:". s3.amazonaws.com/" site:http://s3.amazonaws.com intitle:index.</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/af5cddbc597a70319c3663f50ce7415d?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/af5cddbc597a70319c3663f50ce7415d?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><span class="wp-block-latest-comments__comment-author">Glavinas Vaszilis</span> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/bejiitaswrath/install-the-youtube-red-app-on-ubuntu-and-watch-youtube-videos/#comment-15652">Install the Youtube Red app on Ubuntu and watch Youtube videos.</a><time datetime="2024-04-28T16:20:16+10:00" class="wp-block-latest-comments__comment-date">April 28, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>how to run the command?</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/ea54872d3cd4959e7fc3707d2dbef755?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/ea54872d3cd4959e7fc3707d2dbef755?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><span class="wp-block-latest-comments__comment-author">Random Guy</span> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/youtube/how-to-get-a-list-of-all-youtube-videos-on-a-channel-with-yt-dlp/#comment-14689">How to get a list of all YouTube videos on a channel with yt-dlp.</a><time datetime="2024-01-13T09:57:12+11:00" class="wp-block-latest-comments__comment-date">January 13, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>Oh WordPress ruined the command formatting. I think you can figure this out.</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/ea54872d3cd4959e7fc3707d2dbef755?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/ea54872d3cd4959e7fc3707d2dbef755?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><span class="wp-block-latest-comments__comment-author">Random Guy</span> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/youtube/how-to-get-a-list-of-all-youtube-videos-on-a-channel-with-yt-dlp/#comment-14688">How to get a list of all YouTube videos on a channel with yt-dlp.</a><time datetime="2024-01-13T09:55:49+11:00" class="wp-block-latest-comments__comment-date">January 13, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>Both things can also be achieved with just yt-dlp. Print chapter titles: yt-dlp --print "%(chapters.:.title)#l" https://www.youtube.com/watch?v=o1jv509M8Zg Print 15 latest videos:…</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/78e74b343080fdefd8c6c8009c8dd323?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/78e74b343080fdefd8c6c8009c8dd323?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><span class="wp-block-latest-comments__comment-author">slermcat</span> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/bejiitaswrath/another-look-at-the-nextstep-source-code/#comment-14640">Another look at the NeXTSTEP source code.</a><time datetime="2024-01-04T17:18:15+11:00" class="wp-block-latest-comments__comment-date">January 4, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>I used to administer a nextstep machine (color pizza slab, 24MB ram). Wrote display postscript demos and screensavers for it.…</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/78e74b343080fdefd8c6c8009c8dd323?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/78e74b343080fdefd8c6c8009c8dd323?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><span class="wp-block-latest-comments__comment-author">slermcat</span> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/battlefield/amazing-new-shooter-game-that-runs-in-awk/#comment-14639">Amazing new shooter game that runs in awk.</a><time datetime="2024-01-04T16:31:21+11:00" class="wp-block-latest-comments__comment-date">January 4, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>yeah good example of how simple raycasting a-la wolfenstein is i write fun stuf in bash but i'm less cool…</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/78e74b343080fdefd8c6c8009c8dd323?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/78e74b343080fdefd8c6c8009c8dd323?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><span class="wp-block-latest-comments__comment-author">slermcat</span> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/debian-testing/how-to-get-a-nice-waveform-display-with-the-mpv-media-player-on-linux/#comment-14638">How to get a nice waveform display with the MPV media player on Linux.</a><time datetime="2024-01-04T16:23:22+11:00" class="wp-block-latest-comments__comment-date">January 4, 2024</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>mpv --config=no --audio-device=pulse/alsa_output.usb-0c76_USB_PnP_Audio_Device-00.analog-stereo --quiet --vo=tct --lavfi-complex='[aid1]asplit[ao][a1];[a1]showcqt[vo]' /media/sdc2/Projects/Music/NSF/amazingmusic/NSF_Archive/Chiptune_Artists/Originals/* showcqt ftw! thanks!</p> </div></article></li><li class="wp-block-latest-comments__comment"><img alt='' src='https://secure.gravatar.com/avatar/84d0ba8fc9e25f53d29345fe24421844?s=48&d=retro&r=g' srcset='https://secure.gravatar.com/avatar/84d0ba8fc9e25f53d29345fe24421844?s=96&d=retro&r=g 2x' class='avatar avatar-48 photo wp-block-latest-comments__comment-avatar' height='48' width='48' /><article><footer class="wp-block-latest-comments__comment-meta"><span class="wp-block-latest-comments__comment-author">Sherfvip</span> on <a class="wp-block-latest-comments__comment-link" href="https://www.securitronlinux.com/battlefield/the-stalker-2-dev-build-has-leaked-on-the-internet/#comment-14494">The Stalker 2 dev build has leaked on the Internet.</a><time datetime="2023-12-07T06:35:16+11:00" class="wp-block-latest-comments__comment-date">December 7, 2023</time></footer><div class="wp-block-latest-comments__comment-excerpt"><p>Hi.. does the launcher comes in english..also in game options not working Thank you</p> </div></article></li></ol></section><section id="block-40" class="widget widget_block widget_archive"><div class="wp-block-archives-dropdown wp-block-archives"><label for="wp-block-archives-2" class="wp-block-archives__label">Archives</label> <select id="wp-block-archives-2" name="archive-dropdown" onchange="document.location.href=this.options[this.selectedIndex].value;"> <option value="">Select Month</option> <option value='https://www.securitronlinux.com/2024/06/'> June 2024  (19)</option> <option value='https://www.securitronlinux.com/2024/05/'> May 2024  (21)</option> <option value='https://www.securitronlinux.com/2024/04/'> April 2024  (24)</option> <option value='https://www.securitronlinux.com/2024/03/'> March 2024  (28)</option> <option value='https://www.securitronlinux.com/2024/02/'> February 2024  (22)</option> <option value='https://www.securitronlinux.com/2024/01/'> January 2024  (22)</option> <option value='https://www.securitronlinux.com/2023/12/'> December 2023  (24)</option> <option value='https://www.securitronlinux.com/2023/11/'> November 2023  (23)</option> <option value='https://www.securitronlinux.com/2023/10/'> October 2023  (29)</option> <option value='https://www.securitronlinux.com/2023/09/'> September 2023  (18)</option> <option value='https://www.securitronlinux.com/2023/08/'> August 2023  (20)</option> <option value='https://www.securitronlinux.com/2023/07/'> July 2023  (20)</option> <option value='https://www.securitronlinux.com/2023/06/'> June 2023  (20)</option> <option value='https://www.securitronlinux.com/2023/05/'> May 2023  (27)</option> <option value='https://www.securitronlinux.com/2023/04/'> April 2023  (29)</option> <option value='https://www.securitronlinux.com/2023/03/'> March 2023  (27)</option> <option value='https://www.securitronlinux.com/2023/02/'> February 2023  (24)</option> <option value='https://www.securitronlinux.com/2023/01/'> January 2023  (32)</option> <option value='https://www.securitronlinux.com/2022/12/'> December 2022  (33)</option> <option value='https://www.securitronlinux.com/2022/11/'> November 2022  (23)</option> <option value='https://www.securitronlinux.com/2022/10/'> October 2022  (15)</option> <option value='https://www.securitronlinux.com/2022/09/'> September 2022  (25)</option> <option value='https://www.securitronlinux.com/2022/08/'> August 2022  (24)</option> <option value='https://www.securitronlinux.com/2022/07/'> July 2022  (13)</option> <option value='https://www.securitronlinux.com/2022/06/'> June 2022  (18)</option> <option value='https://www.securitronlinux.com/2022/05/'> May 2022  (22)</option> <option value='https://www.securitronlinux.com/2022/04/'> April 2022  (29)</option> <option value='https://www.securitronlinux.com/2022/03/'> March 2022  (23)</option> <option value='https://www.securitronlinux.com/2022/02/'> February 2022  (19)</option> <option value='https://www.securitronlinux.com/2022/01/'> January 2022  (17)</option> <option value='https://www.securitronlinux.com/2021/12/'> December 2021  (24)</option> <option value='https://www.securitronlinux.com/2021/11/'> November 2021  (24)</option> <option value='https://www.securitronlinux.com/2021/10/'> October 2021  (26)</option> <option value='https://www.securitronlinux.com/2021/09/'> September 2021  (19)</option> <option value='https://www.securitronlinux.com/2021/08/'> August 2021  (14)</option> <option value='https://www.securitronlinux.com/2021/07/'> July 2021  (18)</option> <option value='https://www.securitronlinux.com/2021/06/'> June 2021  (13)</option> <option value='https://www.securitronlinux.com/2021/05/'> May 2021  (17)</option> <option value='https://www.securitronlinux.com/2021/04/'> April 2021  (15)</option> <option value='https://www.securitronlinux.com/2021/03/'> March 2021  (14)</option> <option value='https://www.securitronlinux.com/2021/02/'> February 2021  (14)</option> <option value='https://www.securitronlinux.com/2021/01/'> January 2021  (13)</option> <option value='https://www.securitronlinux.com/2020/12/'> December 2020  (11)</option> <option value='https://www.securitronlinux.com/2020/11/'> November 2020  (12)</option> <option value='https://www.securitronlinux.com/2020/10/'> October 2020  (16)</option> <option value='https://www.securitronlinux.com/2020/09/'> September 2020  (19)</option> <option value='https://www.securitronlinux.com/2020/08/'> August 2020  (16)</option> <option value='https://www.securitronlinux.com/2020/07/'> July 2020  (17)</option> <option value='https://www.securitronlinux.com/2020/06/'> June 2020  (22)</option> <option value='https://www.securitronlinux.com/2020/05/'> May 2020  (20)</option> <option value='https://www.securitronlinux.com/2020/04/'> April 2020  (14)</option> <option value='https://www.securitronlinux.com/2020/03/'> March 2020  (19)</option> <option value='https://www.securitronlinux.com/2020/02/'> February 2020  (15)</option> <option value='https://www.securitronlinux.com/2020/01/'> January 2020  (20)</option> <option value='https://www.securitronlinux.com/2019/12/'> December 2019  (24)</option> <option value='https://www.securitronlinux.com/2019/11/'> November 2019  (14)</option> <option value='https://www.securitronlinux.com/2019/10/'> October 2019  (19)</option> <option value='https://www.securitronlinux.com/2019/09/'> September 2019  (19)</option> <option value='https://www.securitronlinux.com/2019/08/'> August 2019  (20)</option> <option value='https://www.securitronlinux.com/2019/07/'> July 2019  (14)</option> <option value='https://www.securitronlinux.com/2019/06/'> June 2019  (19)</option> <option value='https://www.securitronlinux.com/2019/05/'> May 2019  (18)</option> <option value='https://www.securitronlinux.com/2019/04/'> April 2019  (19)</option> <option value='https://www.securitronlinux.com/2019/03/'> March 2019  (19)</option> <option value='https://www.securitronlinux.com/2019/02/'> February 2019  (11)</option> <option value='https://www.securitronlinux.com/2019/01/'> January 2019  (13)</option> <option value='https://www.securitronlinux.com/2018/12/'> December 2018  (12)</option> <option value='https://www.securitronlinux.com/2018/11/'> November 2018  (14)</option> <option value='https://www.securitronlinux.com/2018/10/'> October 2018  (20)</option> <option value='https://www.securitronlinux.com/2018/09/'> September 2018  (19)</option> <option value='https://www.securitronlinux.com/2018/08/'> August 2018  (18)</option> <option value='https://www.securitronlinux.com/2018/07/'> July 2018  (11)</option> <option value='https://www.securitronlinux.com/2018/06/'> June 2018  (16)</option> <option value='https://www.securitronlinux.com/2018/05/'> May 2018  (16)</option> <option value='https://www.securitronlinux.com/2018/04/'> April 2018  (10)</option> <option value='https://www.securitronlinux.com/2018/03/'> March 2018  (22)</option> <option value='https://www.securitronlinux.com/2018/02/'> February 2018  (13)</option> <option value='https://www.securitronlinux.com/2018/01/'> January 2018  (15)</option> <option value='https://www.securitronlinux.com/2017/12/'> December 2017  (9)</option> <option value='https://www.securitronlinux.com/2017/11/'> November 2017  (16)</option> <option value='https://www.securitronlinux.com/2017/10/'> October 2017  (15)</option> <option value='https://www.securitronlinux.com/2017/09/'> September 2017  (15)</option> <option value='https://www.securitronlinux.com/2017/08/'> August 2017  (22)</option> <option value='https://www.securitronlinux.com/2017/07/'> July 2017  (11)</option> <option value='https://www.securitronlinux.com/2017/06/'> June 2017  (11)</option> <option value='https://www.securitronlinux.com/2017/05/'> May 2017  (18)</option> <option value='https://www.securitronlinux.com/2017/04/'> April 2017  (30)</option> <option value='https://www.securitronlinux.com/2017/03/'> March 2017  (15)</option> <option value='https://www.securitronlinux.com/2017/02/'> February 2017  (12)</option> <option value='https://www.securitronlinux.com/2017/01/'> January 2017  (14)</option> <option value='https://www.securitronlinux.com/2016/12/'> December 2016  (12)</option> <option value='https://www.securitronlinux.com/2016/11/'> November 2016  (20)</option> <option value='https://www.securitronlinux.com/2016/10/'> October 2016  (26)</option> <option value='https://www.securitronlinux.com/2016/09/'> September 2016  (31)</option> <option value='https://www.securitronlinux.com/2016/08/'> August 2016  (38)</option> <option value='https://www.securitronlinux.com/2016/07/'> July 2016  (23)</option> <option value='https://www.securitronlinux.com/2016/06/'> June 2016  (40)</option> <option value='https://www.securitronlinux.com/2016/05/'> May 2016  (28)</option> <option value='https://www.securitronlinux.com/2016/04/'> April 2016  (9)</option> <option value='https://www.securitronlinux.com/2016/03/'> March 2016  (12)</option> <option value='https://www.securitronlinux.com/2016/02/'> February 2016  (13)</option> <option value='https://www.securitronlinux.com/2016/01/'> January 2016  (12)</option> <option value='https://www.securitronlinux.com/2015/12/'> December 2015  (17)</option> <option value='https://www.securitronlinux.com/2015/11/'> November 2015  (10)</option> <option value='https://www.securitronlinux.com/2015/10/'> October 2015  (8)</option> <option value='https://www.securitronlinux.com/2015/09/'> September 2015  (11)</option> <option value='https://www.securitronlinux.com/2015/08/'> August 2015  (8)</option> <option value='https://www.securitronlinux.com/2015/07/'> July 2015  (10)</option> <option value='https://www.securitronlinux.com/2015/06/'> June 2015  (8)</option> <option value='https://www.securitronlinux.com/2015/05/'> May 2015  (14)</option> <option value='https://www.securitronlinux.com/2015/04/'> April 2015  (9)</option> <option value='https://www.securitronlinux.com/2015/03/'> March 2015  (12)</option> <option value='https://www.securitronlinux.com/2015/02/'> February 2015  (3)</option> <option value='https://www.securitronlinux.com/2015/01/'> January 2015  (10)</option> <option value='https://www.securitronlinux.com/2014/12/'> December 2014  (12)</option> <option value='https://www.securitronlinux.com/2014/11/'> November 2014  (14)</option> <option value='https://www.securitronlinux.com/2014/10/'> October 2014  (15)</option> <option value='https://www.securitronlinux.com/2014/09/'> September 2014  (15)</option> <option value='https://www.securitronlinux.com/2014/08/'> August 2014  (23)</option> <option value='https://www.securitronlinux.com/2014/07/'> July 2014  (33)</option> <option value='https://www.securitronlinux.com/2014/06/'> June 2014  (25)</option> <option value='https://www.securitronlinux.com/2014/05/'> May 2014  (26)</option> <option value='https://www.securitronlinux.com/2014/04/'> April 2014  (22)</option> <option value='https://www.securitronlinux.com/2014/03/'> March 2014  (22)</option> <option value='https://www.securitronlinux.com/2014/02/'> February 2014  (14)</option> <option value='https://www.securitronlinux.com/2014/01/'> January 2014  (25)</option> <option value='https://www.securitronlinux.com/2013/12/'> December 2013  (31)</option> <option value='https://www.securitronlinux.com/2013/11/'> November 2013  (22)</option> <option value='https://www.securitronlinux.com/2013/10/'> October 2013  (25)</option> <option value='https://www.securitronlinux.com/2013/09/'> September 2013  (35)</option> <option value='https://www.securitronlinux.com/2013/08/'> August 2013  (37)</option> <option value='https://www.securitronlinux.com/2013/07/'> July 2013  (43)</option> <option value='https://www.securitronlinux.com/2013/06/'> June 2013  (27)</option> <option value='https://www.securitronlinux.com/2013/05/'> May 2013  (19)</option> <option value='https://www.securitronlinux.com/2013/04/'> April 2013  (24)</option> <option value='https://www.securitronlinux.com/2013/03/'> March 2013  (23)</option> <option value='https://www.securitronlinux.com/2013/02/'> February 2013  (23)</option> <option value='https://www.securitronlinux.com/2013/01/'> January 2013  (36)</option> <option value='https://www.securitronlinux.com/2012/12/'> December 2012  (28)</option> <option value='https://www.securitronlinux.com/2012/11/'> November 2012  (30)</option> <option value='https://www.securitronlinux.com/2012/10/'> October 2012  (29)</option> <option value='https://www.securitronlinux.com/2012/09/'> September 2012  (23)</option> <option value='https://www.securitronlinux.com/2012/08/'> August 2012  (39)</option> <option value='https://www.securitronlinux.com/2012/07/'> July 2012  (36)</option> <option value='https://www.securitronlinux.com/2012/06/'> June 2012  (29)</option> <option value='https://www.securitronlinux.com/2012/05/'> May 2012  (47)</option> <option value='https://www.securitronlinux.com/2012/04/'> April 2012  (25)</option> <option value='https://www.securitronlinux.com/2012/03/'> March 2012  (32)</option> <option value='https://www.securitronlinux.com/2012/02/'> February 2012  (43)</option> <option value='https://www.securitronlinux.com/2012/01/'> January 2012  (47)</option> <option value='https://www.securitronlinux.com/2011/12/'> December 2011  (27)</option> <option value='https://www.securitronlinux.com/2011/11/'> November 2011  (22)</option> <option value='https://www.securitronlinux.com/2011/10/'> October 2011  (20)</option> <option value='https://www.securitronlinux.com/2011/09/'> September 2011  (19)</option> <option value='https://www.securitronlinux.com/2011/08/'> August 2011  (23)</option> <option value='https://www.securitronlinux.com/2011/07/'> July 2011  (16)</option> <option value='https://www.securitronlinux.com/2011/06/'> June 2011  (8)</option> <option value='https://www.securitronlinux.com/2011/05/'> May 2011  (3)</option> </select></div></section> </aside><!-- #secondary --> </div> <footer id="colophon" class="site-footer"> <div class="footer-wrapper"> <div class="footer-widgets"> </div> <div class="site-info"> © 2024 Securitron Linux blog. | Built with <a href="https://codebard.com/nimblepress" target="blank"> NimblePress</a> </div><!-- .site-info --> </div> </footer><!-- #colophon --> </div><!-- #page --> <script> /** * File navigation.js. * * Handles toggling the navigation menu for small screens and enables TAB key * navigation support for dropdown menus. */ ( function() { const siteNavigation = document.getElementById( 'site-navigation' ); // Return early if the navigation doesn't exist. if ( ! siteNavigation ) { return; } const button = siteNavigation.getElementsByTagName( 'button' )[ 0 ]; // Return early if the button doesn't exist. if ( 'undefined' === typeof button ) { return; } const menu = siteNavigation.getElementsByTagName( 'ul' )[ 0 ]; // Hide menu toggle button if menu is empty and return early. if ( 'undefined' === typeof menu ) { button.style.display = 'none'; return; } if ( ! menu.classList.contains( 'nav-menu' ) ) { menu.classList.add( 'nav-menu' ); } // Toggle the .toggled class and the aria-expanded value each time the button is clicked. button.addEventListener( 'click', function() { menu.classList.toggle( 'nimblepress-mobile-menu-toggled' ); siteNavigation.classList.toggle( 'nimblepress-site-navigation-toggled-on-mobile' ); if ( button.getAttribute( 'aria-expanded' ) === 'true' ) { button.setAttribute( 'aria-expanded', 'false' ); } else { button.setAttribute( 'aria-expanded', 'true' ); } } ); const nimblepress_arrow_icons = document.querySelectorAll('.nimblepress-arrow-icon'); const nimblepress_parent_sub_menus = document.querySelectorAll('.nimblepress-menu-top-level'); const nimblepress_sub_menus = document.querySelectorAll('.sub-menu'); const menu_container = document.querySelectorAll( '.nimblepress-nav-menu' ); document.addEventListener("DOMContentLoaded", function(event) { menu.style.display = ""; menu.setAttribute("style",""); menu.setAttribute("style","display: flex !important;"); menu_container[0].style.display = ""; menu_container[0].style.display = "flex !important"; nimblepress_sub_menus.forEach(node => { node.setAttribute("style",""); node.setAttribute("style","display: block !important;"); }); }); nimblepress_arrow_icons.forEach(el => el.addEventListener('click', event => { event.preventDefault(); const nimblepress_this_submenu = event.target.closest('.nimblepress-menu-top-level'); let selected_li = event.target.closest('li'); let this_menu = event.target.closest('ul'); let sub_menu = selected_li.querySelectorAll('.sub-menu')[0]; nimblepress_parent_sub_menus.forEach(node => { if ( node != nimblepress_this_submenu ) { const nimblepress_child_sub_menus = node.querySelectorAll('.sub-menu'); nimblepress_child_sub_menus.forEach(node => { node.classList.remove('nimblepress-submenu-toggled'); let this_menu_sub_menu_icons = node.querySelectorAll('.nimblepress-arrow-icon'); if ( node.classList.contains('menu-item-has-children') ) { this_menu_sub_menu_icons.forEach(node => { node.innerHTML='<svg width="1em" height="1em" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="m5 6l5 5l5-5l2 1l-7 7l-7-7z"/></svg>'; }); } }); node.classList.remove('nimblepress-submenu-toggled'); } }); if ( sub_menu ) { let already_toggled = sub_menu.classList.contains( 'nimblepress-submenu-toggled' ); if ( already_toggled ) { sub_menu.classList.remove( 'nimblepress-submenu-toggled' ); } else { sub_menu.classList.add( 'nimblepress-submenu-toggled' ); } } })); // Remove the .toggled class and set aria-expanded to false when the user clicks outside the navigation. document.addEventListener( 'click', function( event ) { const isClickInside = siteNavigation.contains( event.target ); if ( !isClickInside ) { if ( button.getAttribute( 'aria-expanded' ) === 'true' ) { button.setAttribute( 'aria-expanded', 'false' ); } else { button.setAttribute( 'aria-expanded', 'true' ); } nimblepress_sub_menus.forEach(node => { node.classList.remove('nimblepress-submenu-toggled'); }); menu.classList.remove( 'nimblepress-mobile-menu-toggled' ); siteNavigation.classList.remove( 'nimblepress-submenu-toggled' ); siteNavigation.classList.remove( 'toggled' ); button.setAttribute( 'aria-expanded', 'false' ); } } ); // Get all the link elements within the menu. const links = menu.getElementsByTagName( 'a' ); // Get all the link elements with children within the menu. const linksWithChildren = menu.querySelectorAll( '.menu-item-has-children > a, .page_item_has_children > a' ); // Toggle focus each time a menu link is focused or blurred. for ( const link of links ) { link.addEventListener( 'focus', toggleFocus, true ); link.addEventListener( 'blur', toggleFocus, true ); } // Toggle focus each time a menu link with children receive a touch event. for ( const link of linksWithChildren ) { link.addEventListener( 'touchstart', toggleFocus, false ); } /** * Sets or removes .focus class on an element. */ function toggleFocus() { if ( event.type === 'focus' || event.type === 'blur' ) { let self = this; // Move up through the ancestors of the current link until we hit .nav-menu. while ( ! self.classList.contains( 'nav-menu' ) ) { // On li elements toggle the class .focus. if ( 'li' === self.tagName.toLowerCase() ) { self.classList.toggle( 'focus' ); } self = self.parentNode; } } if ( event.type === 'touchstart' ) { const menuItem = this.parentNode; event.preventDefault(); for ( const link of menuItem.parentNode.children ) { if ( menuItem !== link ) { link.classList.remove( 'focus' ); } } menuItem.classList.toggle( 'focus' ); } } }() ); </script> <script src="https://www.securitronlinux.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=5.9.6" id="swv-js"></script> <script id="contact-form-7-js-extra"> var wpcf7 = {"api":{"root":"https:\/\/www.securitronlinux.com\/wp-json\/","namespace":"contact-form-7\/v1"}}; </script> <script src="https://www.securitronlinux.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=5.9.6" id="contact-form-7-js"></script> <script src="https://www.securitronlinux.com/wp-content/plugins/wp-syntax/js/wp-syntax.js?ver=1.2" id="wp-syntax-js-js"></script> <script src="https://www.securitronlinux.com/wp-includes/js/comment-reply.min.js?ver=6.5.5" id="comment-reply-js" async data-wp-strategy="async"></script> <script defer src="https://www.securitronlinux.com/wp-content/plugins/akismet/_inc/akismet-frontend.js?ver=1711002018" id="akismet-frontend-js"></script> </body> </html>