<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Synology &#8211; BeatificaBytes</title>
	<atom:link href="https://www.BeatificaBytes.be/tag/synology/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.BeatificaBytes.be</link>
	<description>The Joys of Computing</description>
	<lastBuildDate>Mon, 12 Aug 2024 17:23:45 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8</generator>
	<item>
		<title>Green screen within Synology Surveillance&#8217;s records</title>
		<link>https://www.BeatificaBytes.be/green-screen-within-synology-surveillances-records/</link>
					<comments>https://www.BeatificaBytes.be/green-screen-within-synology-surveillances-records/#respond</comments>
		
		<dc:creator><![CDATA[vletroye]]></dc:creator>
		<pubDate>Mon, 12 Aug 2024 16:46:45 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Surveillance Station]]></category>
		<category><![CDATA[Synology]]></category>
		<guid isPermaLink="false">https://www.BeatificaBytes.be/?p=6635</guid>

					<description><![CDATA[If you have a green screen when watching records of Synology Surveillance Station on your mobile phone, or tablet, and are using H.264 compression, then [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>If you have a green screen when  watching records of Synology Surveillance Station on your mobile phone, or tablet, and are using H.264 compression, then simply disable the &#8220;H.264 hardware decoding&#8221;.</p>



<div><div class="wp-block-aab-accordion-block aab__accordion_container  no-pro-plan is-style-default" style="border-style:none;border-width:0px;border-radius:0px"><div class="aab__accordion_head aab_left_icon  " data-active="false" style="color:#333333;background-color:transparent"><div class="aab__accordion_heading aab_left_icon aab_right_link"><p class="aab__accordion_title" style="margin:0;color:#333333" itemprop="name">Expand to Read More&#8230;</p></div><div class="aab__accordion_icon" style="color:#333333;background-color:transparent"><span class="aab__icon dashicons dashicons-arrow-down-alt2" style="font-size:20px"></span></div></div><div class="aab__accordion_body " role="region" style="background-color:transparent"><div itemprop="text">
<p>Do you see something like this on your mobile ?</p>



<figure class="wp-block-image size-large is-resized"><img fetchpriority="high" decoding="async" src="https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-2-1024x682.png" alt="" class="wp-image-6638" width="410" height="274" srcset="https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-2-1024x682.png 1024w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-2-300x200.png 300w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-2-768x511.png 768w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-2.png 1080w" sizes="(max-width: 410px) 100vw, 410px" /></figure>



<p>Open the &#8220;DS Cam&#8221; App, click on the &#8220;three horizontal lines&#8221; top-left icon, and then on the gear icon:</p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-1024x530.png" alt="" class="wp-image-6636" width="413" height="214" srcset="https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-1024x530.png 1024w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-300x155.png 300w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-768x398.png 768w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image.png 1080w" sizes="(max-width: 413px) 100vw, 413px" /></figure>



<p>There, disable the &#8220;Hardware decoding&#8221;:</p>



<p></p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-1-736x1024.png" alt="" class="wp-image-6637" width="418" height="582" srcset="https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-1-736x1024.png 736w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-1-216x300.png 216w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-1-768x1069.png 768w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-1.png 1080w" sizes="(max-width: 418px) 100vw, 418px" /></figure>



<p>Now, the image should be fine:</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-3-1024x662.png" alt="" class="wp-image-6639" width="417" height="270" srcset="https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-3-1024x662.png 1024w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-3-300x194.png 300w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-3-768x496.png 768w, https://www.BeatificaBytes.be/wp-content/uploads/2024/08/image-3.png 1080w" sizes="auto, (max-width: 417px) 100vw, 417px" /></figure>



<p>Et voilà.</p>
</div></div></div></div>
<div class="pvc_clear"></div><p id="pvc_stats_6635" class="pvc_stats total_only  " data-element-id="6635" style=""><i class="pvc-stats-icon medium" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 502 315" preserveAspectRatio="xMidYMid meet"><g transform="translate(0,332) scale(0.1,-0.1)" fill="" stroke="none"><path d="M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z"/><path d="M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z"/><path d="M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z"/><path d="M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z"/><path d="M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z"/><path d="M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z"/><path d="M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z"/><path d="M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z"/><path d="M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z"/></g></svg></i> <img loading="lazy" decoding="async" width="16" height="16" alt="Loading" src="https://www.BeatificaBytes.be/wp-content/plugins/page-views-count/ajax-loader-2x.gif" border=0 /></p><div class="pvc_clear"></div>]]></content:encoded>
					
					<wfw:commentRss>https://www.BeatificaBytes.be/green-screen-within-synology-surveillances-records/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>How to download playlists from YouTube using Synology</title>
		<link>https://www.BeatificaBytes.be/how-to-download-playlists-from-youtube-using-synology/</link>
					<comments>https://www.BeatificaBytes.be/how-to-download-playlists-from-youtube-using-synology/#respond</comments>
		
		<dc:creator><![CDATA[vletroye]]></dc:creator>
		<pubDate>Thu, 19 Aug 2021 23:20:13 +0000</pubDate>
				<category><![CDATA[Synology]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://www.beatificabytes.be/?p=5125</guid>

					<description><![CDATA[It&#8217;s really easy to download playlists from YouTube with the Download Station of Synology. I do this to get locally new &#8220;No Copyright Music&#8217;s&#8221;, to [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p style="text-align: justify;">It&#8217;s really easy to download playlists from YouTube with the Download Station of Synology. I do this to get locally new &#8220;No Copyright Music&#8217;s&#8221;, to be used later within my video&#8217;s.</p>
<p style="text-align: justify;"><span class="collapseomatic " id="id69b276e473e1f"  tabindex="0" title="Click to Read More"    >Click to Read More</span><span id='swap-id69b276e473e1f'  class='colomat-swap' style='display:none;'>Click to Close</span><div id="target-id69b276e473e1f" class="collapseomatic_content ">
<p style="text-align: justify;">I am using the &#8220;Download Station&#8221; as it simply works, opposite to many free or paid software&#8217;s which pretend to work but usually fail (and are full of advertisements&#8230;)</p>
<p style="text-align: justify;">Bref&#8230; Assume that you want to get all the free music&#8217;s from the excellent YouTube Channel &#8220;<a href="https://www.youtube.com/c/VlogNoCopyrightMusic" target="_blank" rel="noopener noreferrer">VLOG No Copyright</a>&#8220;:</p>
<ul style="text-align: justify;">
<li>Visit their &#8220;<a href="https://www.youtube.com/c/VlogNoCopyrightMusic/playlists" target="_blank" rel="noopener noreferrer">PLAYLISTS</a>&#8221; in your Browser (All such channels have a tab &#8220;PLAYLISTS&#8221; as you can see in the screenshot bellow).</li>
<li>Right-click on the link &#8220;<strong>VIEW FULL PLAYLIST</strong>&#8221; of the desired playlist.
<ul>
<li>This is important: don&#8217;t use any URL from the &#8220;HOME&#8221; tab or from any tail representing a playlist (with the &#8220;PLAY ALL&#8221;). It would only download one video and not all the playlist. </li>
</ul>
</li>
<li>Select the menu &#8220;Copy link address&#8221;
<ul style="text-align: justify;">
<li>The copied url should be like this : &#8220;https://www.youtube.com/playlist?list=xxxxxxxxxx&#8221;</li>
</ul>
</li>
</ul>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="wp-image-5128  aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-2.png" width="446" height="445" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Now, go to your &#8220;Synology Download Station&#8221; and:</p>
<ul style="text-align: justify;">
<li>Click on the large blue sign &#8220;<strong>+</strong>&#8220;. It opens a window to create new download tasks.</li>
<li>Go to the tab &#8220;<strong>Enter URL</strong>&#8220;.</li>
<li>Paste there the URL of the playlist copied previously.
<ul>
<li>A subfolder with the name of the playlist will automatically  be created under the destination folder and the video will be saved in that subfolder</li>
</ul>
</li>
<li>Select the option &#8220;Show Dialog to select&#8230;&#8221; if you when to download only some of the video&#8217;s. Otherwise you can unselect that option.</li>
<li>Click &#8220;Ok&#8221;.</li>
</ul>
<p style="text-align: justify;"><img loading="lazy" decoding="async" class="wp-image-5129  aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-3.png" width="453" height="288" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">You should now see a line as illustrated here below, &#8220;waiting&#8221; to start:</p>
<p><img decoding="async" class="alignnone wp-image-5143 size-full aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-15.png" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">You have to wait until the Download Station has crawled across the whole playlist and found all the files to be downloaded&#8230; Then, you will see the list of music&#8217;s:</p>
<p style="text-align: justify;"><img decoding="async" class="wp-image-5131 size-full aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-5.png" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">During the download, you could see some failed tasks, with a status &#8220;Error&#8221;. It happens from time to time, but this is usually a temporary issue. Sort the list within the Download Station on the &#8220;Status&#8221; column and select all the &#8220;Error&#8221; . Then, right-click the list and select the menu &#8220;Resume&#8221;.</p>
<p style="text-align: justify;"><img decoding="async" class="alignnone wp-image-5135 size-full aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-9.png" /></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Personally, as soon as the &#8220;music video&#8217;s&#8221; are downloaded, I extract the sound tracks and keep only those. There are many software to do this. But one of my favorite option is to use ffmpeg directly on the Synology (you have to install that package). Simply type this command in a console, in the download path were are saved the video&#8217;s: </p>
<p style="text-align: justify;"><code>for i in *.mp4; do ffmpeg -i "$i" -codec:a libmp3lame -q:a 0 -map a "${i%.*}.mp3"; done</code></p>
<p>To process mp4 in all subfolders in the download path, I use the command:</p>
<p><code>for d in *; do cd "$PWD/$d/"; for i in *.mp4; do ffmpeg -i "$i" -codec:a libmp3lame -q:a 0 -map a "${i%.*}.mp3"; done; cd ..; done</code></p>
<p> </p>
<p>If you are using Chrome, I can suggest some extensions to help in downloading Playlists..</p>
<p>1. The extension &#8220;<a href="https://chrome.google.com/webstore/detail/copy-selected-links/kddpiojgkjnpmgiegglncafdpnigcbij" target="_blank" rel="noopener noreferrer">Copy Selected Links</a>&#8220;. Using that one, you can copy the URL&#8217;s of all the playlists of a Channel, at once. Select the whole text under the tab PLAYLISTS (it will then appear highlighted in blue as illustrated on the screenshot here under). Next, right-click in an empty area and select the menu &#8220;Copy selected Links&#8221;.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-5138  aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-11.png" width="381" height="394" /></p>
<p>Now go into Notepad++, as we have to keep only the playlists. Paste the Clipboard into a new tab of Notepad++. Press CTRL-Home to come back to the top. Press CTRL-H to open the &#8220;Replace&#8221; window. Select &#8220;Regular Expression&#8221; at the bottom of that window and click the &#8220;Replace All&#8221; button once you have entered this into the field &#8220;Find What&#8221;:  .*watch.*\n (or .*watch.*\r\n if it does not work properly)</p>
<p><img loading="lazy" decoding="async" class="wp-image-5140  aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-13.png" width="498" height="316" /></p>
<p>Now, you have two options. If you have no more than 50 playlists, you can paste them directly into the Download Station via the button &#8220;<strong>+</strong>&#8221; and the tab &#8220;<strong>Enter URL</strong>&#8221; as explained previously. Otherwise, you have to save with all your URL&#8217;s into a .txt file (with Notepad++) and upload that file via the tab &#8220;<strong>Open a file</strong>&#8221; instead of the tab &#8220;<strong>Enter URL</strong>&#8220;. </p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-5144  aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-16.png" width="448" height="186" /></p>
<p> </p>
<p>2. The extension &#8220;<a style="font-size: inherit; text-align: justify;" href="http://www.download-station-extension.com/" target="_blank" rel="noopener noreferrer">Download Station</a><span style="font-size: inherit; text-align: justify;">&#8221; (or <a href="https://chrome.google.com/webstore/detail/nas-download-manager-for/iaijiochiiocodhamehbpmdlobhgghgi" target="_blank" rel="noopener noreferrer">this version</a> in Chrome Web Store) to more easily download the playlists. Same principle as above, but instead of right-clicking &#8220;</span><strong style="font-size: inherit; text-align: justify;">View Full PlayList</strong><span style="font-size: inherit; text-align: justify;">&#8221; to copy the playlist URL, you now have a extra menu &#8220;Synology download Station&#8221; (or Download with &#8220;Download Station&#8221;).</span></p>
<p style="text-align: justify;"><img decoding="async" class="alignnone wp-image-5134 size-full aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-8.png" /></p>
<p> </p>
<p style="text-align: justify;">Another trick, when available in the PLAYLISTS tab of a Channel: select and download the Playlists &#8220;Sorted by Mood&#8221; or &#8220;Sorted by Genre&#8221;. This will help you when you search for a particular type of music for your video. Ex.: with the Channel &#8220;Audio Library&#8221;:</p>
<p style="text-align: justify;"><img decoding="async" class="alignnone wp-image-5136 size-full aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-10.png" /></p>
<p style="text-align: justify;"> </p>
<p>Adive: each time you add a playlist in the Download Station, check that the amount of new download tasks match with the amount of tracks in the playlist. Indeed, it happens that not all the video&#8217;s are added into the Download Station as it has limits(a total of max 2048 download tasks &lt;= reason why you have to clean-up all downloaded tasks before downloading new long playlists. There is also a limit of 256 links per &#8220;<strong>file</strong>&#8221; uploaded and a limit for a playlist of &#8220;2048 &#8211; amount of current download tasks&#8221;).</p>
<p>Don&#8217;t forget that for most &#8220;No Copyright Music&#8217;s&#8221;, you have to mention the author in your video&#8217;s or posts. Often, in YouTube, you have to click on &#8220;<strong>Show More</strong>&#8221; under the video to see the details of the license:</p>
<p style="text-align: justify;"><img decoding="async" class="wp-image-5133 size-full aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-7.png" /></p>
<p style="text-align: justify;">The License is usually clear. Ex.:</p>
<p style="text-align: justify;"><img decoding="async" class="wp-image-5132 size-full aligncenter" src="http://www.beatificabytes.be/wp-content/uploads/2021/08/Pasted-6.png" /></p>
<p style="text-align: justify;">To find again later the video&#8217;s on YouTube and check the type of license, it&#8217;s important to keep:</p>
<ul>
<li style="text-align: justify;">The original name of the video when converting into mp3</li>
<li>The name of the playlist</li>
<li>The name of the channel</li>
</ul>
<p>To do so, the easiest is to add some metadata into the mp3 extracted with ffmpeg. Once downloaded by the &#8220;Download Station&#8221;, your video&#8217;s should be in subfolders which have the name of their playlists. And the filenames usually contain the Author, the name of the song and the name of the YouTube Channel. So, it&#8217;s easy to create the metadata. Ex.: the playlist &#8220;Dance &amp; Electronic Music | Vlog No Copyright Music&#8221; of Vlog has been downloaded into a subfolder named &#8220;Dance &amp; Electronic Music _ Vlog No Copyright Music&#8221; and the video&#8217;s are all named like &#8220;Artist- Title (Vlog No Copyright Music).mp4&#8221;</p>
<p>So, to process that subfolder, I will use the command:</p>
<p><code>for i in *.mp4; do playlist=${PWD##*/}; artist=${i% - *}; other=${i##* - }; title=${other% (Vlog*}; ffmpeg -i "$i" -codec:a libmp3lame -q:a 0 -map a -metadata artist="${artist}" -metadata title="${title}" -metadata album="Playlist: ${playlist}"  -metadata Publisher="From YouTube Channel: Vlog No Copyright" "${artist} - ${title}.mp3"; done</code></p>
<p>As you can see, I am using the &#8220;Publisher&#8221; to store the Channels and the &#8220;album&#8221; for the playlist&#8230; This is a personal choice! (More details on ID3 tags and ffmpeg <a href="https://gist.github.com/eyecatchup/0757b3d8b989fe433979db2ea7d95a01" target="_blank" rel="noopener noreferrer">here</a>)</p>
<p>Regarding the pattern matching used in shell, it&#8217;s not always that simple and you will have to be creative&#8230; Just about the pattern matching:</p>
<ul>
<li>variable2=${variable1%xyz*} =&gt; variable2 is the shortest left part of variable1 before a substring xyz.</li>
<li>variable2=${variable1%%xyz*} =&gt; variable2 is the longest left part of variable1 before a substring xyz.</li>
<li>variable2=${variable1#*xyz} =&gt; variable2 is the shortest right part of variable1 after a substring xyz.</li>
<li>variable2=${variable1##*xyz} =&gt; variable2 is the longest right part of variable1 after a substring xyz.</li>
<li>in xyz, x and z may be blanks (in my case, &#8220;xyz&#8221; was &#8221; &#8211; &#8220;)</li>
</ul>
<p><code></code></p>
<p>As there are many duplicates in those playlists, I have written my own script to replace such duplicates by hardlinks (on my Synology). I can&#8217;t use jdupes or rmlint as those are doing &#8220;binary comparisons&#8221; and due to the conversion via ffmpeg, it doesn&#8217;t work. Instead, I search for duplicates based on the filename and size only (per channel, they are usually unique anyway). Here is my script for illustration purpose. It must be stored in an ANSI file (ex.: dedup.sh) and run with: sh dedup.sh go</p>
<pre style="padding-left: 40px;"><code>echo "Start looking for duplicates"</code><br /><br /><code>find . -iname "*.mp3" -printf "%p ~ %f\n" | sort -f -k2 | uniq -Di -f1 &gt; list.dup</code><br /><br /><code>echo "Duplicates found"</code><br /><br /><code>test="$1"</code><br /><code>previous=""</code><br /><code>previouspath=""</code><br /><code>skip=true</code><br /><code>while read p; do</code><br /><code>mp3name="${p#* ~ }"</code><br /><code>mp3path="${p%% ~ *}"</code><br /><code>if [[ "$mp3name" == "$previous" ]]; then</code><br /><code>mp3new="${mp3path%%.mp3}"</code><br /><code>node=$(ls -l "$mp3path" | grep -Po '^.{11}\s1\s.*$')</code><br /><code>if [[ "$node" == "" ]]; then</code><br /><code>echo " $mp3path is already a hardlink"</code><br /><code>else</code><br /><code>skip=false</code><br /><code>if [[ "$test" == "go" || "$test" == "test" ]]; then</code><br /><code>SIZE1=$(stat -c%s "$mp3path")</code><br /><code>SIZE2=$(stat -c%s "$previouspath")</code><br /><code>#Delta=$(awk "BEGIN{ printf \"%d\n\", sqrt((100 * ($SIZE2 - $SIZE1) / $SIZE1)^2)}")</code><br /><code>#if [[ $Delta &gt; 1 ]]; then</code><br /><code>Delta=$(awk "BEGIN{ printf \"%d\n\", ($SIZE2 - $SIZE1)}")</code><br /><code>if [[ "$Delta" == "0" ]]; then</code><br /><code>mv "$mp3path" "$mp3new.old"</code><br /><code>ln "$previouspath" "$mp3path"</code><br /><code>echo " $mp3path now linked to original"</code><br /><code>else</code><br /><code>echo " $mp3path seems different from $previouspath"</code><br /><code>fi</code><br /><code>else</code><br /><code>echo " mv $mp3path $mp3new.old"</code><br /><code>echo " ln $previouspath $mp3path"</code><br /><code>fi</code><br /><code>fi</code><br /><code>else</code><br /><code>if [[ "$test" != "test" ]] || [[ "$skip" = true ]]; then</code><br /><code>previous=$mp3name</code><br /><code>previouspath=$mp3path</code><br /><code>echo "$mp3name has duplicate(s) (original in $mp3path)"</code><br /><code>else</code><br /><code>break</code><br /><code>fi</code><br /><code>fi</code><br /><code>done &lt;list.dup</code></pre>
<p> </p>
<p style="text-align: justify;">Note: Facebook will possibly remove the audio from your video even if they is a &#8220;No Copyright Music&#8221;. When you get such a notification from FB, you can simply click to restore the audio if you did mention the Author in your post or video.</p>
<p style="text-align: justify;">Some YouTube Channels with &#8220;No Copyright Music&#8217;s&#8221;:</p>
<ul style="text-align: justify;">
<li><a href="https://www.youtube.com/c/VlogNoCopyrightMusic/playlists" target="_blank" rel="noopener noreferrer">VLOG No Copyright Music</a></li>
<li><a href="https://www.youtube.com/c/Infraction/playlists" target="_blank" rel="noopener noreferrer">Infraction</a></li>
<li><a href="https://www.youtube.com/c/NoCopyrightSounds/playlists" target="_blank" rel="noopener noreferrer">NCS &#8211; No Copyright Sounds</a></li>
<li><a href="http://youtube.com/c/FreeToUseMusic/playlists" target="_blank" rel="noopener noreferrer">No Copyright Background Music</a></li>
<li><a href="https://www.youtube.com/c/audiolibrary-channel/playlists" target="_blank" rel="noopener noreferrer">Audio Library</a></li>
<li><a href="https://www.youtube.com/c/MokkaMusic/playlists" target="_blank" rel="noopener noreferrer">MOKKA</a></li>
<li><a href="https://www.youtube.com/channel/UCLaUaVhZptelTv3hHKKPkiA/playlists" target="_blank" rel="noopener noreferrer">Wave Beats Music</a></li>
<li><a href="https://www.youtube.com/c/RoyaltyFreeMusicNoCopyrightMusic/playlists" target="_blank" rel="noopener noreferrer">Royalty Free Music</a></li>
<li><a href="https://www.youtube.com/channel/UC6YFGGuw8G_OVVf8KfIxIyg/playlists" target="_blank" rel="noopener noreferrer">Arcflux Music &amp; Motivate</a></li>
<li><a href="https://www.youtube.com/c/OakStudiosNoCopyrightMusic/playlists" target="_blank" rel="noopener noreferrer">Oak Studios</a></li>
</ul>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;"></div>
<div class="pvc_clear"></div><p id="pvc_stats_5125" class="pvc_stats total_only  " data-element-id="5125" style=""><i class="pvc-stats-icon medium" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 502 315" preserveAspectRatio="xMidYMid meet"><g transform="translate(0,332) scale(0.1,-0.1)" fill="" stroke="none"><path d="M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z"/><path d="M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z"/><path d="M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z"/><path d="M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z"/><path d="M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z"/><path d="M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z"/><path d="M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z"/><path d="M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z"/><path d="M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z"/></g></svg></i> <img loading="lazy" decoding="async" width="16" height="16" alt="Loading" src="https://www.BeatificaBytes.be/wp-content/plugins/page-views-count/ajax-loader-2x.gif" border=0 /></p><div class="pvc_clear"></div>]]></content:encoded>
					
					<wfw:commentRss>https://www.BeatificaBytes.be/how-to-download-playlists-from-youtube-using-synology/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Call a php webpage from a IFTTT applet using Google Assistant</title>
		<link>https://www.BeatificaBytes.be/call-a-php-webpage-from-a-ifttt-applet-using-google-assistant/</link>
					<comments>https://www.BeatificaBytes.be/call-a-php-webpage-from-a-ifttt-applet-using-google-assistant/#respond</comments>
		
		<dc:creator><![CDATA[vletroye]]></dc:creator>
		<pubDate>Tue, 25 Sep 2018 21:45:46 +0000</pubDate>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Google Assistant]]></category>
		<category><![CDATA[IFTTT]]></category>
		<category><![CDATA[Synology]]></category>
		<guid isPermaLink="false">http://www.BeatificaBytes.be/?p=3871</guid>

					<description><![CDATA[I wanted to be able to wake up PC on my Lan using voice commands. To achieve that, I did implement a solution using Google [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify">I wanted to be able to wake up PC on my Lan using voice commands. To achieve that, I did implement a solution using Google Assistant, IFTTT and a php web page hosted on my NAS.</p>
<p style="text-align: justify"><span class="collapseomatic " id="id69b276e477293"  tabindex="0" title="Click to Read More"    >Click to Read More</span><span id='swap-id69b276e477293'  class='colomat-swap' style='display:none;'>Click to Close</span><div id="target-id69b276e477293" class="collapseomatic_content "></p>
<p style="text-align: justify"><strong>Regarding IFTTT, you must have an account. Then,</strong></p>
<ul style="text-align: justify">
<li>Create a new applet,</li>
<li>Choose the service &#8220;Google Assistant&#8221;
<ul>
<li>Choose a trigger, ex.: &#8220;Say a phrase with a text ingredient&#8221;</li>
<li>Type a phrase in &#8220;What do you want to say?&#8221; such as &#8220;Wake up my PC $&#8221; ($ is the symbol to be used for the &#8220;ingredient&#8221;)</li>
<li>Type a phrase in &#8220;What do you want the Assistant to say in response?&#8221; such as &#8220;Ok, I will wake up $&#8221;</li>
</ul>
</li>
<li>Choose next an action service &#8220;Webhooks&#8221; (to &#8220;make a web request&#8221;)
<ul>
<li>Type the url of your web page: http://&lt;public Ip of your NAS&gt;/&lt;some path&gt;/action.php?do=wakeup&amp;param={{TextField}} ({{TextField}} will take the value of the ingredient)</li>
<li>Chose the &#8220;method&#8221;: GET</li>
<li>Chose the &#8220;content type&#8221;: text/plain</li>
</ul>
</li>
</ul>
<p style="text-align: justify"><strong>Regarding the php web page (action.php), I had to do some fine tuning&#8230; So, I started with a page logging all information received from IFTTT:</strong></p>
<p>[php]&lt;/pre&gt;<br />
&lt;?php<br />
// https://gist.github.com/magnetikonline/650e30e485c0f91f2f40<br />
class DumpHTTPRequestToFile<br />
{<br />
public function execute($targetFile)<br />
{<br />
$boby = json_decode(file_get_contents(&#8216;php://input&#8217;) , true);</p>
<p>$data = sprintf(&quot;&lt;h2&gt;&lt;u&gt;IFTTT call at %s on %s&lt;/u&gt;&lt;/h2&gt;&lt;h3&gt;Method:&lt;/h3&gt;&quot;, date(&#8216;h:i:s&#8217;) , date(&#8216;d/m/Y&#8217;));<br />
$data .= sprintf(&quot;&lt;blockquote&gt;%s (%s): %s &lt;/blockquote&gt;&lt;h3&gt;HTTP headers:&lt;/h3&gt;&lt;ul&gt;&quot;, $_SERVER[&#8216;REQUEST_METHOD&#8217;], $_SERVER[&#8216;SERVER_PROTOCOL&#8217;], htmlentities($_SERVER[&#8216;REQUEST_URI&#8217;]));<br />
foreach ($this-&gt;getHeaderList() as $name =&gt; $value)<br />
{<br />
$data .= &quot;&lt;li&gt;&lt;b&gt;&quot; . $name . &#8216;&lt;/b&gt;: &#8216; . $value . &quot;&lt;/li&gt;&quot;;<br />
}</p>
<p>$data .= &quot;&lt;/ul&gt;&lt;h3&gt;Post:&lt;/h3&gt;&lt;ul&gt;&quot;;<br />
foreach ($_POST as $key =&gt; $value) $data .= &quot;&lt;li&gt;&quot; . $key . &#8216;=&#8217; . $value . &#8216;&lt;/li&gt;&#8217;;</p>
<p>$bodyhtml = $this-&gt;jsonToTable($boby);<br />
$data .= &quot;&lt;/ul&gt;&lt;h3&gt;Request body:&lt;/h3&gt;&lt;blockquote&gt;$bodyhtml&lt;/blockquote&gt;&quot;;</p>
<p>$action = trim(strtolower($_GET[&#8216;action&#8217;]));<br />
$action = preg_replace(&#8216;/^ *de +/&#8217;, &#8221;, $action);<br />
$action = preg_replace(&#8216;/^ *d *\&#8217; +/&#8217;, &#8221;, $action);</p>
<p>$param = trim(strtolower($_GET[&#8216;param&#8217;]));<br />
$param = preg_replace(&#8216;/^ *de +/&#8217;, &#8221;, $param);<br />
$param = preg_replace(&#8216;/^ *d *\&#8217; +/&#8217;, &#8221;, $param);</p>
<p>$data .= &quot;&lt;h3&gt;Requested Action:&lt;/h3&gt;&lt;blockquote&gt;$action: $param&lt;/blockquote&gt;&quot;;</p>
<p>similar_text(strtolower($param) , &quot;zeus&quot;, $percent);<br />
$data .= &quot;Zeus: $percent %&lt;br&gt;&quot;;</p>
<p>similar_text(strtolower($param) , &quot;chaos&quot;, $percent);<br />
$data .= &quot;Chaos: $percent %&lt;br&gt;&quot;;</p>
<p>file_put_contents($targetFile, $data . file_get_contents($targetFile) . &quot;\n&quot;);</p>
<p>echo (nl2br($data));<br />
}</p>
<p>private function getHeaderList()<br />
{<br />
$headerList = [];<br />
foreach ($_SERVER as $name =&gt; $value)<br />
{<br />
if (preg_match(&#8216;/^HTTP_/&#8217;, $name))<br />
{<br />
// convert HTTP_HEADER_NAME to Header-Name<br />
$name = strtr(substr($name, 5) , &#8216;_&#8217;, &#8216; &#8216;);<br />
$name = ucwords(strtolower($name));<br />
$name = strtr($name, &#8216; &#8216;, &#8216;-&#8216;);<br />
// add to list<br />
$headerList[$name] = $value;<br />
}<br />
}<br />
return $headerList;<br />
}</p>
<p>private function jsonToTable($data)<br />
{<br />
$table = &quot;&lt;table class=&#8217;json-table&#8217; width=&#8217;100%&#8217;&gt;&quot;;<br />
foreach ($data as $key =&gt; $value)<br />
{<br />
$table .= &quot;&lt;tr valign=&#8217;top&#8217;&gt;&quot;;<br />
if (!is_numeric($key))<br />
{<br />
$table .= &quot;<br />
&lt;td&gt;<br />
&lt;strong&gt;&quot; . $key . &quot;:&lt;/strong&gt;<br />
&lt;/td&gt;<br />
&lt;td&gt;<br />
&quot;;<br />
}<br />
else<br />
{<br />
$table .= &quot;<br />
&lt;td colspan=&#8217;2&#8242;&gt;<br />
&quot;;<br />
}<br />
if (is_object($value) || is_array($value))<br />
{<br />
$table .= jsonToTable($value);<br />
}<br />
else<br />
{<br />
$table .= $value;<br />
}<br />
$table .= &quot;<br />
&lt;/td&gt;<br />
&lt;/tr&gt;<br />
&quot;;<br />
}<br />
$table .= &quot;&lt;/table&gt;&quot;;<br />
return $table;<br />
}<br />
}</p>
<p>(new DumpHTTPRequestToFile)-&gt;execute(&#8216;./action.html&#8217;);</p>
<p>?&gt;<br />
&lt;pre&gt;[/php]</p>
<p style="text-align: justify">The log is stored in a html page &#8220;log.html&#8221;.</p>
<p>Notes:</p>
<ul>
<li>I notice that Google was not good at recognizing the name of my PC (IMO because I use French sentences). So I am using a php command &#8220;similar_text&#8221; to evaluate the &#8220;ingredient&#8221;. But this is really far from effective.</li>
<li>I tried to use a &#8220;POST&#8221; method instead of &#8220;Get&#8221; and a Content Type &#8220;application/json&#8221;, it works. But when I add a Body like {“token”:”mseries”,”command”: “&lt;&lt;&lt;{{TextField}}&gt;&gt;&gt;”, ”test”: “data”}, <span style="color: #ff0000">I don&#8217;t see it received by my php page</span> <img src="https://s.w.org/images/core/emoji/15.1.0/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
<li>If Google Assistant does not call correcly IFTTT, look at you voice command history to be sure it understood you order: https://myactivity.google.com/myactivity?restrict=vaa&amp;utm_source=help</li>
<li>If Google Assistant understood correctly your command, but IFTTT didn&#8217;t call your web page, look at your IFTTT activity: https://ifttt.com/activity</li>
</ul>
<p><strong>A log for a call using a GET method will look like:</strong></p>
<h2 style="padding-left: 30px"><span style="color: #999999"><u>IFTTT call at 11:32:29 on 25/09/2018</u></span></h2>
<h3 style="padding-left: 30px"><span style="color: #999999">Method: </span><span style="color: #999999">GET (HTTP/1.1): /ifttt/action.php?action=wakeup&amp;param=CARROS</span></h3>
<h3 style="padding-left: 30px"><span style="color: #999999">HTTP headers:</span></h3>
<p style="padding-left: 60px"><span style="color: #999999"><b>X-Newrelic-Transaction</b>: PxQGUlECCwFRBVEEVQAAAlQTGlUDChAHHEAJVA1cAgMKA1gEVFNVUVUHFU1EAQACBV1UBlUTag==</span><br />
<span style="color: #999999"><b>X-Newrelic-Id</b>: VwAOU1RRGwAFUFZUAwQE</span><br />
<span style="color: #999999"><b>Content-Type</b>: text/plain</span><br />
<span style="color: #999999"><b>Content-Length</b>: 74</span><br />
<span style="color: #999999"><b>Connection</b>: close</span><br />
<span style="color: #999999"><b>Host</b>: olympe.letroye.be</span><br />
<span style="color: #999999"><b>X-Real-Port</b>: 55748</span><br />
<span style="color: #999999"><b>X-Port</b>: 80</span><br />
<span style="color: #999999"><b>X-Real-Ip</b>: 54.164.110.125</span><br />
<span style="color: #999999"><b>X-Forwarded-By</b>: 192.168.0.200</span></p>
<h3 style="padding-left: 30px"><span style="color: #999999">Post:</span></h3>
<h3 style="padding-left: 30px"><span style="color: #999999">Request body:</span></h3>
<h3 style="padding-left: 30px"><span style="color: #999999">Requested Action: </span><span style="color: #999999">wakeup: CARROS</span></h3>
<p style="padding-left: 30px"><span style="color: #999999">Zeus: 20 %</span><br />
<span style="color: #999999">Chaos: 72.727272727273 %</span></p>
<p><strong>A log for a call using a POST method with application/json content-type will look like:</strong></p>
<h2 style="padding-left: 30px"><span style="color: #999999"><u>IFTTT call at 11:41:14 on 25/09/2018</u></span></h2>
<h3 style="padding-left: 30px"><span style="color: #999999">Method: </span><span style="color: #999999">POST (HTTP/1.1): /ifttt/action.php?action=wakeup&amp;param=Kaos</span></h3>
<h3 style="padding-left: 30px"><span style="color: #999999">HTTP headers:</span></h3>
<p style="padding-left: 60px"><span style="color: #999999"><b>X-Newrelic-Id</b>: VwAOU1RRGwAFUFZUAwQE</span><br />
<span style="color: #999999"><b>Content-Type</b>: application/json</span><br />
<span style="color: #999999"><b>Content-Length</b>: 77</span><br />
<span style="color: #999999"><b>Connection</b>: close</span><br />
<span style="color: #999999"><b>Host</b>: olympe.letroye.be</span><br />
<span style="color: #999999"><b>X-Real-Port</b>: 59892</span><br />
<span style="color: #999999"><b>X-Port</b>: 80</span><br />
<span style="color: #999999"><b>X-Real-Ip</b>: 54.211.16.53</span><br />
<span style="color: #999999"><b>X-Forwarded-By</b>: 192.168.0.200</span></p>
<h3 style="padding-left: 30px"><span style="color: #999999">Post:</span></h3>
<h3 style="padding-left: 30px"><span style="color: #999999">Request body:</span></h3>
<h3 style="padding-left: 30px"><span style="color: #999999">Requested Action: </span><span style="color: #999999">wakeup: kaos</span></h3>
<p style="padding-left: 30px"><span style="color: #999999">Zeus: 25 %</span><br />
<span style="color: #999999">Chaos: 66.666666666667 %</span></p>
<p style="text-align: justify"></div></p>
<div class="pvc_clear"></div>
<p id="pvc_stats_3871" class="pvc_stats total_only  " data-element-id="3871" style=""><i class="pvc-stats-icon medium" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 502 315" preserveAspectRatio="xMidYMid meet"><g transform="translate(0,332) scale(0.1,-0.1)" fill="" stroke="none"><path d="M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z"/><path d="M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z"/><path d="M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z"/><path d="M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z"/><path d="M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z"/><path d="M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z"/><path d="M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z"/><path d="M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z"/><path d="M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z"/></g></svg></i> <img loading="lazy" decoding="async" width="16" height="16" alt="Loading" src="https://www.BeatificaBytes.be/wp-content/plugins/page-views-count/ajax-loader-2x.gif" border=0 /></p>
<div class="pvc_clear"></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.BeatificaBytes.be/call-a-php-webpage-from-a-ifttt-applet-using-google-assistant/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cannot access port 80 on my NAS from Internet</title>
		<link>https://www.BeatificaBytes.be/cannot-access-port-80-on-my-nas-from-internet/</link>
					<comments>https://www.BeatificaBytes.be/cannot-access-port-80-on-my-nas-from-internet/#respond</comments>
		
		<dc:creator><![CDATA[vletroye]]></dc:creator>
		<pubDate>Wed, 25 May 2016 16:40:22 +0000</pubDate>
				<category><![CDATA[Tips]]></category>
		<category><![CDATA[Synology]]></category>
		<guid isPermaLink="false">/wordpress/?p=2646</guid>

					<description><![CDATA[From time to time, I can&#8217;t access any web page anymore on my NAS&#8217; port 80 from the web. The solution is to reboot the my modem [&#8230;]]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify">From time to time, I can&#8217;t access any web page anymore on my NAS&#8217; port 80 from the web. The solution is to reboot the my modem (BBOX2) or reset its internal firewall. It&#8217;s never an issue with my NAS (Synology DS1815+)</p>
<p style="text-align: justify"><span class="collapseomatic " id="id69b276e47d911"  tabindex="0" title="Click to Read More"    >Click to Read More</span><span id='swap-id69b276e47d911'  class='colomat-swap' style='display:none;'>Click to Close</span><div id="target-id69b276e47d911" class="collapseomatic_content "></p>
<p style="text-align: justify">When this issue occurs, I can still access web pages on specific port like Plex  (e.g.: on port 32000) or my NAS&#8217; admin console on his own port (e.g.: on port 8080). Also the &#8220;Cloud Sync&#8221; service of my NAS is still  able to sync files with Google, DropBox and Hubic. Finally, JDownloader which is installed also installed on my NAS, is still able to download.</p>
<p style="text-align: justify">To reboot my modem takes time but solve the problem. Another option is to reset the firewall:</p>
<ul style="text-align: justify">
<li>open a telnet sessin on the modem,</li>
<li>log as &#8216;admin&#8217; with your password (I did change mine. The default is possibly BGCVDSL2 or your MAC Address)</li>
<li>execute: fw_restart</li>
</ul>
<p><figure id="attachment_2647" aria-describedby="caption-attachment-2647" style="width: 300px" class="wp-caption aligncenter"><a href="https://www.beatificabytes.be/wp-content/uploads/2016/05/FW_Restart_BBOX2.png"><img loading="lazy" decoding="async" class="size-medium wp-image-2647" src="https://www.beatificabytes.be/wp-content/uploads/2016/05/FW_Restart_BBOX2-300x194.png" alt="fw_restart BBOX2" width="300" height="194" /></a><figcaption id="caption-attachment-2647" class="wp-caption-text">fw_restart BBOX2</figcaption></figure></p>
<p style="text-align: justify">The problem comes from a NAT table full, most probably due to JDownloader or Cloud Sync. But I don&#8217;t know how to check which one is the culprit.</p>
<p style="text-align: justify">Info about B-BOX-2 of Belgacom/Proximus: http://setuprouter.com/router/belgacom/b-box-2/</p>
<p style="text-align: justify"></div></p>
<div class="pvc_clear"></div>
<p id="pvc_stats_2646" class="pvc_stats total_only  " data-element-id="2646" style=""><i class="pvc-stats-icon medium" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 502 315" preserveAspectRatio="xMidYMid meet"><g transform="translate(0,332) scale(0.1,-0.1)" fill="" stroke="none"><path d="M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z"/><path d="M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z"/><path d="M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z"/><path d="M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z"/><path d="M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z"/><path d="M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z"/><path d="M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z"/><path d="M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z"/><path d="M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z"/></g></svg></i> <img loading="lazy" decoding="async" width="16" height="16" alt="Loading" src="https://www.BeatificaBytes.be/wp-content/plugins/page-views-count/ajax-loader-2x.gif" border=0 /></p>
<div class="pvc_clear"></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.BeatificaBytes.be/cannot-access-port-80-on-my-nas-from-internet/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>A HTPC for 35€: Raspberry Pi + XBMC</title>
		<link>https://www.BeatificaBytes.be/a-htpc-for-35e-raspberry-pi-xbmc/</link>
					<comments>https://www.BeatificaBytes.be/a-htpc-for-35e-raspberry-pi-xbmc/#comments</comments>
		
		<dc:creator><![CDATA[vletroye]]></dc:creator>
		<pubDate>Thu, 21 Mar 2013 14:59:03 +0000</pubDate>
				<category><![CDATA[Hardwares]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Raspberry PI]]></category>
		<category><![CDATA[Synology]]></category>
		<category><![CDATA[XBMC]]></category>
		<guid isPermaLink="false">/wordpress/?p=1024</guid>

					<description><![CDATA[I have just received the &#8220;Raspberry Pi Model B&#8221; I ordered two weeks ago on &#8220;RS Components&#8221; website. It rocks !!! Within 30 minutes, I [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><figure id="attachment_1025" aria-describedby="caption-attachment-1025" style="width: 300px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-medium wp-image-1025" src="https://www.beatificabytes.be/wp-content/uploads/2013/03/Raspberry-pi-300x250.jpg" alt="" width="300" height="250" /><figcaption id="caption-attachment-1025" class="wp-caption-text">Raspberry Pi Model B</figcaption></figure></p>
<p style="text-align: justify;">I have just received the &#8220;Raspberry Pi Model B&#8221; I ordered two weeks ago on &#8220;RS Components&#8221; website. It rocks !!!</p>
<p style="text-align: justify;">Within 30 minutes, I was watching on my HD TV a 1080p movies streamed from my NAS :p</p>
<p style="text-align: justify;"><span class="collapseomatic " id="id69b276e47fe9e"  tabindex="0" title="Click to Read More"    >Click to Read More</span><span id='swap-id69b276e47fe9e'  class='colomat-swap' style='display:none;'>Click to Close</span><div id="target-id69b276e47fe9e" class="collapseomatic_content "></p>
<p style="text-align: justify;">Mine is in a black case bought from RS components. I also bought there a power supply and a HDMI cable. The big advantage of using a Raspberry pi is that</p>
<ul style="text-align: justify;">
<li>It has a very low power consumption (<strong>about 1-2 watts at idle</strong>)</li>
<li>It is really small 85.60mm x 53.98mm x 17mm (<strong>invisible behind the TV</strong>)</li>
<li>It has a HDMI with Audio with CEC support (<strong>you can pilot XBMC on the Raspberry Pi with the TV remote control</strong>)</li>
<li>It comes with codec license for MPEG4 &amp; H.264 (<strong>hardware accelerated</strong>)</li>
<li>Licenses can also be bought <a href="http://www.raspberrypi.com/" target="_blank" rel="noopener noreferrer">here</a> to play back MPEG2 or VC1.</li>
<li>The Model B comes with 512MB Ram (Only 256 on the Model A)</li>
<li>It boots a Linux from a SD card (= silent) in about 50 seconds (depending on the distribution). <strong>There are 3 distributions of Linux with XBMC </strong>targeting the Raspberry Pi (see the wiki <a href="http://wiki.xbmc.org/index.php?title=Raspberry_Pi" target="_blank" rel="noopener noreferrer">here</a>). Some Install Guides:
<ul>
<li><a href="http://htpcbuild.com/htpc-software/raspberry-pi-raspbmc/">Raspbmc</a> (The one I am using)</li>
<li><a href="http://htpcbuild.com/htpc-software/raspberry-pi-openelec/">OpenElec</a></li>
<li><a href="http://htpcbuild.com/htpc-software/raspberry-pi-xbian/">XBian</a></li>
<li>Look at this <a href="/download/archives/RaspBMCvsOpenELECvsXBian.pdf" target="_blank" rel="noopener noreferrer">comparison</a> (and read also its <a href="/download/archives/RaspberryPiXBMCShootout.pdf" target="_blank" rel="noopener noreferrer">previous version</a>)</li>
</ul>
</li>
<li>A 2GB SD is enough, but I use a 16GB class 6, the only SD I had</li>
<li>There are 2 USB slots that I use for a keyboard and a mouse. That can be expanded with a USB hub (There is only one USB port on the Model A). A USB HDD can be plugged to add extra storage if required.</li>
<li>There is a 10/100Gbs Ethernet Port (No Ethernet port on the Model A) with supports of various power management wakeup features, including Magic Packet<img src="https://s.w.org/images/core/emoji/15.1.0/72x72/2122.png" alt="™" class="wp-smiley" style="height: 1em; max-height: 1em;" />, Wake-on LAN (WOL) and Link Status Change. UNFORTUNATELY, albeit Pi&#8217;s Lan chipset does support WOL, the Pi&#8217;s lack of power management (ACPI) means it doesn&#8217;t support this Lan chipset features <img src="https://s.w.org/images/core/emoji/15.1.0/72x72/1f641.png" alt="🙁" class="wp-smiley" style="height: 1em; max-height: 1em;" /></li>
<li>It does not need a fan cooler (= silent)</li>
<li>The Model B uses a standard power supply capable of supplying 5V 700ma (the Model A requires 5V 300ma)</li>
<li>The GPU is capable of 1Gpixel/s</li>
<li>It can be easily overclocked (and <a href="https://www.raspberrypi.org/archives/tag/overvolting" target="_blank" rel="noopener noreferrer">overvolted</a> to increase stability) up to 1000MHz (without making the warranty void !). By default the Raspberry Pi runs as 700Mhz and is overclocked at 800Mhz by RaspBmc&#8230;</li>
<li>Overall real world performance is something like a 300MHz Pentium 2 with great graphic performances.</li>
</ul>
<div style="text-align: justify;"></div>
<div style="text-align: justify;">As mentioned, I decided to install RaspBmc. It&#8217;s really straightforward [EDIT: RapsBmc is now deprecated and replaced by <a href="https://osmc.tv/" target="_blank" rel="noopener noreferrer">Osmc</a>).</div>
<div style="text-align: justify;">
<ol>
<li>Plug the SD card in a PC (I am using Windows 8 )</li>
<li>Format the SD card, e.g. using a tools dedicated to SD/SDHC/SDXC like &#8220;<a href="https://www.sdcard.org/downloads/formatter/index.html" target="_blank" rel="noopener noreferrer">SD Formatter</a>&#8220;.</li>
<li>Download the raspbmc installer (<em>Not available anymore on the official webstite</em>) and &#8220;run As Administrator&#8221; the setup.exe . It will automatically download an image and copy it to the SD card.</li>
<li>Plug next the SD card in the Raspberry Pi, plug the HDMI cable on the TV (I didn&#8217;t test the RCA/Audio output), plug an Ethernet cable and plug the power supply. Select the right HDMI input on your TV and you should see the Raspberry PI display. It will configure itself (get an IP address from DHCP server, download the latest release/updates, etc&#8230;) and after about 20 minutes, it should start XBMC.</li>
<li>In XBMC, go to the main menu &gt; System &gt; Lower submenu &gt; System info and take note for your URL. You can also get there the MAC Address if you prefer like me to configure your DHCP server to assign a fix IP to the Raspberry PI (recommended to remote control XBMC or configure NFS access to Synology &#8211; reboot required).</li>
<li>On your PC, run a Browser and type the IP address of the Raspberry PI to get access to the XBMC web control UI (on the port 80 configured by default in Raspbmc). It can be used to remote control XBMC.</li>
<li>On your Android Phone, install the XBMC official Remote Control (<em>Not available anymore</em>) and configure it with the IP address of the Raspberry Pi with port 80 (this is the default of RaspBmc). There is neither a username nor a password defined by default in RaspBmc for accessing the Web Control UI (Another good remote for Android is <a href="https://play.google.com/store/apps/details?id=org.leetzone.android.yatsewidgetfree" target="_blank" rel="noopener noreferrer">Yatse Widget</a>).</li>
<li>On Synology, enable the &#8220;guest&#8221; account and grant read access on the shared folders &#8220;music&#8221;, &#8220;video&#8221; and &#8220;photo&#8221; (I still have to find where I can configure a username in raspbmc to access smb/nfs &#8211; I know I could at least do it on the smb/nfs sources configured in XBMC: protocol://user:pass@synoIP/sharename)
<ul>
<li>The default username is &#8220;pi&#8221; and the default password is &#8220;raspberry&#8221;, but for some reasons, adding such a user on the Synology with adhoc rights on the shares does not grant raspbmc access on those ?!</li>
</ul>
</li>
<li>On XBMC, add video, music and photo sources. I am not using &#8220;uPnP&#8221; as it does not support use of metadata stored next to the media files. Instead I am currently using smb.</li>
<li>On XBMC, you can go to the menu &#8220;Programs&#8221; to get access to the RaspBmc settings.</li>
</ol>
<div>The Android Remote Control for XBMC works really fine, as well as controlling XBMC with the TV Remote, which makes this HTPC from far the greatest for that price: ~35€!</div>
<div></div>
</div>
<div style="text-align: justify;">A few notes:</div>
<div style="text-align: justify;">
<ul>
<li>WOL does not work because the lack for &#8220;power management&#8221; on Raspberry Pi. The only other way to &#8220;power on&#8221; the device remotely is to plug its power cable into a USB port on the TV (USB voltage is standardized at 5.0v, so you only have to check the max A supported by your TV). When you turn on the TV the pi powers on too. However, the Pi draws less power when turned on then many Tvs do when off, so there is really no reason to ever turn it off. Turning it off would not significantly reduce power consumption unless it is also unplugged.
<ul>
<li>So, don&#8217;t ever use the &#8220;Power Off&#8221; button of XBMC. The only way to restart the Raspberry Pi would be to unplug and plug back in the power supply.</li>
<li>Power over Ethernet (PoE) is not yet supported. Maybe in a future version of the Raspberry Pi.</li>
</ul>
</li>
<li>In XBMC, go to the main menu &gt; System &gt; Lower submenu &gt; Settings &gt; Apparence &gt; Region. Set e.g. the &#8220;Langue of the interface&#8221; or your language as &#8220;Preferred Language for audio&#8221; although you like to watch the movies in O.V.</li>
<li>In XBMC, go to the main menu &gt; System &gt; Lower submenu &gt; Settings &gt; Services &gt; SMB Client. Change the name of the Workgroup to match your.</li>
<li>Login on the Raspberry Pi via SSH (using <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank" rel="noopener noreferrer">Putty</a>, username &#8220;pi&#8221;, password &#8220;raspberry&#8221;. Note: &#8220;root&#8221; user is disabled by default on RaspBmc) and Raspbmc will prompt you to choose your keyboard layout &#8211; use the <span class="keyboard">space</span> bar to select a layout and <span class="keyboard">Tab</span> to move the cursor onto the Ok button. On the next screen, set your layout as the default one and wait until it&#8217;s &#8220;generated&#8221; (can be a long process). Continue the configuration with the selection of your region and country. Type &#8220;exit&#8221; to close the SSH session.</li>
<li>Raspbmc overclocks the Raspberry Pi to a safe clock frequency (from the default 700MHz to 800Mhz). Notice that a change of the clock frequency does not blow the OTP (Over Temperature Protection). It is overvolting that does this. Overclocking is therefore not making the warranty void while overvolting will permanently set a bit which invalidates the warranty. Overvolting will also reduce the lifespan.
<ul>
<li><a href="http://htpcbuild.com/htpc-software/raspberry-pi-raspbmc/raspbmc-overclocking/" target="_blank" rel="noopener noreferrer">Here</a> is a tutorial to overclock the Raspberry Pi with RaspBmc via SSH</li>
<li><a href="http://htpcbuild.com/htpc-software/raspberry-pi-raspbmc/raspbmc-overvolting-guide/" target="_blank" rel="noopener noreferrer">Here</a> is a tutorial to overvolt the Raspberry Pi with RaspBmc via SSH</li>
<li><a href="http://www.jeremymorgan.com/tutorials/raspberry-pi/how-to-overclock-raspberry-pi/" target="_blank" rel="noopener noreferrer">Here</a> is a tutorial to do the same with the Raspbery config tool (if not using RaspBmc</li>
<li>And <a href="https://web.archive.org/web/20140102085404/http://www.memetic.org/raspberry-pi-overclocking/" target="_blank" rel="noopener noreferrer">here</a> are more details on possible values for the overclocking/overvolting.</li>
</ul>
</li>
<li>With RaspBmc, there is no need to manually update the firmware (via SSH). This is done automatically by RaspBmc, insuring that the kernel is fully compatible.</li>
</ul>
</div>
<p style="text-align: justify;">site: http://www.raspberrypi.org (Look at the quick-start-guide and the FAQ)</p>
<p style="text-align: justify;">RaspBmc: http://www.raspbmc.com (Look at the FAQ)</p>
<p>XBMC for Raspberry: http://wiki.xbmc.org/index.php?title=Raspberry_Pi/FAQ</p>
<p>buy: http://raspberrypi.rsdelivers.com/default.aspx?cl=1</p>
<p></div></p>
<div class="pvc_clear"></div>
<p id="pvc_stats_1024" class="pvc_stats total_only  " data-element-id="1024" style=""><i class="pvc-stats-icon medium" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 502 315" preserveAspectRatio="xMidYMid meet"><g transform="translate(0,332) scale(0.1,-0.1)" fill="" stroke="none"><path d="M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z"/><path d="M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z"/><path d="M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z"/><path d="M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z"/><path d="M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z"/><path d="M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z"/><path d="M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z"/><path d="M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z"/><path d="M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z"/></g></svg></i> <img loading="lazy" decoding="async" width="16" height="16" alt="Loading" src="https://www.BeatificaBytes.be/wp-content/plugins/page-views-count/ajax-loader-2x.gif" border=0 /></p>
<div class="pvc_clear"></div>
]]></content:encoded>
					
					<wfw:commentRss>https://www.BeatificaBytes.be/a-htpc-for-35e-raspberry-pi-xbmc/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
