<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Offline on Janik von Rotz</title>
    <link>https://janikvonrotz.ch/tags/offline/</link>
    <description>Recent content in Offline on Janik von Rotz</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 28 Mar 2022 13:58:54 +0200</lastBuildDate>
    <atom:link href="https://janikvonrotz.ch/tags/offline/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Download podcast episodes from Stitcher for offline usage</title>
      <link>https://janikvonrotz.ch/2022/03/28/download-podcast-episodes-from-stitcher-for-offline-usage/</link>
      <pubDate>Mon, 28 Mar 2022 13:58:54 +0200</pubDate>
      <guid>https://janikvonrotz.ch/2022/03/28/download-podcast-episodes-from-stitcher-for-offline-usage/</guid>
      <description>&lt;p&gt;I love the podcast &lt;a href=&#34;https://www.philosophizethis.org/&#34;&gt;Philosophize This!&lt;/a&gt;. It is freely available, but there is no meaningful way to download all episodes without using a third party app. As a data hoarder I want to have every episode on my hard disk. Therefore I created a simple script to download the &lt;a href=&#34;https://www.stitcher.com/show/philosophize-this&#34;&gt;episodes from Stitcher&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Here is the script:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Get list of all episodes&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;https://api.prod.stitcher.com/show/philosophize-this/latestEpisodes?count=200&amp;#39;&lt;/span&gt; | jq &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.&amp;#39;&lt;/span&gt; &amp;gt; podcast.json&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Process data and download episode if not downloaded yet&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;jq -c &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;.data.episodes[] | {title: .title, slug: .slug, url: .audio_url}&amp;#39;&lt;/span&gt; podcast.json | &lt;span style=&#34;color:#66d9ef&#34;&gt;while&lt;/span&gt; read e; &lt;span style=&#34;color:#66d9ef&#34;&gt;do&lt;/span&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    TITLE&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$e&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; | jq -r .title&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    SLUG&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$e&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; | jq -r .slug&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    URL&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;$(&lt;/span&gt;echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$e&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; | jq -r .url&lt;span style=&#34;color:#66d9ef&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; -f &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$SLUG&lt;span style=&#34;color:#e6db74&#34;&gt;.mp3&amp;#34;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;File &lt;/span&gt;$SLUG&lt;span style=&#34;color:#e6db74&#34;&gt;.mp3 already exists.&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Download &lt;/span&gt;$TITLE&lt;span style=&#34;color:#e6db74&#34;&gt; ...&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        curl -L &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$URL&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt; -o &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&lt;/span&gt;$SLUG&lt;span style=&#34;color:#e6db74&#34;&gt;.mp3&amp;#34;&lt;/span&gt; --progress-bar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;done&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And here it is in action:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;janikvonrotz@pop-os:~/Downloads$ ./podcast.sh                               &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File episode-163-the-creation-of-meaning-escape-from-evil-90885817.mp3 already exists.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File episode-162-the-creation-of-meaning-the-denial-of-death-89963729.mp3 already exists.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File episode-161-karl-popper-the-open-society-and-its-enemies-89711371.mp3 already exists.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File episode-160-the-creation-of-meaning-kierkegaard-silence-obedience-and-joy-89488860.mp3 already exists.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File episode-159-the-creation-of-meaning-nietzsche-amor-fati-88209087.mp3 already exists.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;File episode-158-the-creation-of-meaning-nietzsche-the-ascetic-ideal-87305371.mp3 already exists.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Download Episode &lt;span style=&#34;color:#75715e&#34;&gt;#157 ... The Creation of Meaning - Beauvoir ...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;######################################################################## 100.0%&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Download Episode &lt;span style=&#34;color:#75715e&#34;&gt;#156 ... Emil Cioran part 2 - Failure and Suicide ...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;######################################################################## 100.0%&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Download Episode &lt;span style=&#34;color:#75715e&#34;&gt;#155 ... Emil Cioran - Absurdity and Nothingness ...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;######################################################################## 100.0%&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Download Episode &lt;span style=&#34;color:#75715e&#34;&gt;#154 ... Pragmatism and Truth ...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;########################################        &lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;If the download fails at some point you can restart the script and it should pickup were it failed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Exchange Update Offline Address Book</title>
      <link>https://janikvonrotz.ch/2013/08/27/exchange-update-offline-adress-book/</link>
      <pubDate>Tue, 27 Aug 2013 10:54:43 +0000</pubDate>
      <guid>https://janikvonrotz.ch/2013/08/27/exchange-update-offline-adress-book/</guid>
      <description>&lt;p&gt;Since Exchange 2010 the graphical console doesn&amp;rsquo;t support the same functionality as the PowerShell Exchange console, it&amp;rsquo;s possible that there occur some exotic errors or a lack of functionality while working with the graphical console. I recommend to use only the Exchange PowerShell console for administrative work.&lt;/p&gt;&#xA;&lt;p&gt;For example: I had to update the offline address book, I&amp;rsquo;ve deleted some distribution groups, updated the address list and the offline book, all with the graphical console. Result the address book still wasn&amp;rsquo;t up to date in the Outlook client after downloading the offline address book.&lt;/p&gt;&#xA;&lt;p&gt;So I did the same thing with PowerShell:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-powershell&#34; data-lang=&#34;powershell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-OfflineAddressbook | Update-OfflineAddressbook&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Get-ClientAccessServer | Update-FileDistributionService&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;And hurray everything worked.&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
