<?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>コマンド | ばすにっきTips</title>
	<atom:link href="https://takabus.com/tips/category/%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89/feed/" rel="self" type="application/rss+xml" />
	<link>https://takabus.com/tips</link>
	<description>プログラミングやサーバー、日々のTipsをメモしています。</description>
	<lastBuildDate>Mon, 25 Dec 2023 04:54:24 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>

<image>
	<url>https://takabus.com/tips/wp-content/uploads/2022/12/cropped-tips-1-32x32.png</url>
	<title>コマンド | ばすにっきTips</title>
	<link>https://takabus.com/tips</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【ffmpeg】解像度を選んで動画（HLS配信）を保存するには？（mapオプション）</title>
		<link>https://takabus.com/tips/1017/</link>
					<comments>https://takabus.com/tips/1017/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Wed, 16 Feb 2022 03:37:08 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[ffmpeg]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=1017</guid>

					<description><![CDATA[FFmpegでストリームを選択して動画を保存する方法をメモしておきます。]]></description>
										<content:encoded><![CDATA[
<p>最近のストリーミング（HLS配信）では、画質や解像度を選択できるようになっていることがほとんどですよね。</p>



<figure class="wp-block-image size-full is-resized"><img fetchpriority="high" decoding="async" src="https://takabus.com/tips/wp-content/uploads/2022/02/image-12.png" alt="YouTubeの画質オプション" class="wp-image-1018" width="434" height="434" srcset="https://takabus.com/tips/wp-content/uploads/2022/02/image-12.png 434w, https://takabus.com/tips/wp-content/uploads/2022/02/image-12-300x300.png 300w, https://takabus.com/tips/wp-content/uploads/2022/02/image-12-150x150.png 150w, https://takabus.com/tips/wp-content/uploads/2022/02/image-12-100x100.png 100w" sizes="(max-width: 434px) 100vw, 434px" /><figcaption>Youtubeも画質を選べるようになっています</figcaption></figure>



<p>ffmpegで<strong><span class="marker-under">ストリームを選択して動画</span><span class="marker-under">をダウンロードし保存する方法</span></strong>をまとめておきます。</p>



<h2 class="wp-block-heading" id="mapオプションを使うと-ストリームを選択できるプレイリスト-m3u8-の構造">そもそも解像度を選べるストリーミングの仕組みは？</h2>



<p>はじめに解像度を選択できる仕組みを軽く理解しておきましょう。</p>



<p>解像度を選択して再生できるようになっているストリーミング（HLS配信）では、各解像度の動画が<span class="bold-red">異なるストリーム</span>として用意されています。プレイリスト（m3u8）の内容を確認すると、解像度ごとに別個のストリームが用意されていることがわかります。</p>



<pre class="wp-block-code"><code>#EXTM3U
#EXT-X-VERSION:3
#EXT-X-STREAM-INF:BANDWIDTH=300000,NAME="1080p",RESOLUTION=1920x1080
xxxx=.m3u8
#EXT-X-STREAM-INF:BANDWIDTH=150000,NAME="720p",RESOLUTION=1280x720
xxyy==.m3u8</code></pre>



<p>ユーザーが解像度を選択すると、該当するチャンクリストがダウンロードされ、指定された解像度の動画が再生される仕組みになっています。</p>


<div class="ad-area no-icon ad-shortcode ad-rectangle ad-label-visible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>スポンサーリンク</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-8516711297133974"
  data-ad-slot="1299250945"
  data-ad-format="rectangle"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>




<h2 class="wp-block-heading" id="mapオプションを使うと-ストリームを選択できるプレイリスト-m3u8-の構造">mapオプションを使えば、ダウンロードする動画の解像度を選べる！</h2>



<p>このように解像度を選べる方式のHLS配信は、<span class="bold-red"><span class="marker-under">ffmpegのmapオプションを使うと任意の解像度の動画をダウンロードできます。</span></span></p>




<a rel="noopener" href="https://trac.ffmpeg.org/wiki/Map" title="
      Map     – FFmpeg

    " class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Ftrac.ffmpeg.org%2Fwiki%2FMap?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">
      Map     – FFmpeg

    </div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://trac.ffmpeg.org/wiki/Map" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">trac.ffmpeg.org</div></div></div></div></a>



<p>mapオプションはストリームを選択するためのオプションです。複数のストリームが用意されているソースから任意のストリームを抽出することができます。HLS配信についてもmapオプションを使うことにより、任意の解像度の動画を抽出することが可能です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/09/man-150x150.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>ちなみにDVDの多重音声もストリームにより実現されているので、多重音声のソースから任意の言語の音声を取り出すのに使ったりすることもできます。ほかにも動画と音声データをくっつけたり、いろいろと活用できるオプションです。</p>
</div></div>



<h2 class="wp-block-heading" id="サンプル">サンプル</h2>



<p>実際にやってみます。まずはmapオプションをつけずにffmpegを実行し、ストリーム情報を確認してみましょう。</p>



<p>m3u8を-iオプションに指定してffｍpegを実行すると、以下のようにストリーム情報が出力されます。</p>



<pre class="wp-block-code"><code>$ ffmpeg -i "xxx.m3u8" -c -copy out.ts
<strong>Program 0</strong>
    Metadata:
      variant_bitrate : 3000000
    Stream #0:0: Data: timed_id3 (ID3  / 0x20334449)
    Metadata:
      variant_bitrate : 3000000
    Stream #0:1: Video: h264 (Constrained Baseline) (&#091;27]&#091;0]&#091;0]&#091;0] / 0x001B), yuv420p, 1920x1080 &#091;SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 3000000
    Stream #0:2: Audio: aac (LC) (&#091;15]&#091;0]&#091;0]&#091;0] / 0x000F), 44100 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 3000000
<strong>Program 1</strong>
    Metadata:
      variant_bitrate : 1500000
    Stream #0:3: Data: timed_id3 (ID3  / 0x20334449)
    Metadata:
      variant_bitrate : 1500000
    Stream #0:4: Video: h264 (Constrained Baseline) (&#091;27]&#091;0]&#091;0]&#091;0] / 0x001B), yuv420p, 1280x720 &#091;SAR 1:1 DAR 16:9], 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc
    Metadata:
      variant_bitrate : 1500000
    Stream #0:5: Audio: aac (LC) (&#091;15]&#091;0]&#091;0]&#091;0] / 0x000F), 44100 Hz, stereo, fltp
    Metadata:
      variant_bitrate : 1500000</code></pre>



<p>もちろん情報の確認だけならffprobeでもOKです。ffprobeでストリーム情報を確認したいときは、次のコマンドとなります。</p>


<div class="ad-area no-icon ad-shortcode ad-rectangle ad-label-visible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>スポンサーリンク</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-8516711297133974"
  data-ad-slot="1299250945"
  data-ad-format="rectangle"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>




<pre class="wp-block-code"><code>$ ffprobe "xxx.m3u8" -hide_banner -show_streams</code></pre>



<p>出力されているProgramの番号をmapオプションに指定することで、任意のストリームを取り出すことができます。</p>



<p>例えば、上の例で1280&#215;720の動画を抽出し、ローカルに保存したい場合はProgram 1をmapすることになるので、以下のようなコマンドになります。</p>



<pre class="wp-block-code"><code>ffmpeg -i "https://....m3u8" -map 0:p:1 -c copy "output.ts"</code></pre>



<p>0:p:につづけて、Programの番号を指定します。すると、該当するProgramのストリームがファイルに保存されます。</p>



<h2 class="wp-block-heading" id="timed-id3-codec-not-currently-supported-と表示されるとき">”timed_id3 codec not currently supported”と表示されるとき</h2>



<p>timed_id3のストリームが含まれているとき-c copyと併用するとエラーとなることがあります。</p>



<p>この場合はmapオプションにストリーム番号を直接指定します。</p>



<pre class="wp-block-code"><code>ffmpeg -i "https://....m3u8" -map 0:4 -map 0:5 -c copy "output.t</code></pre>



<p>Program1のストリーム情報を見ると、映像が#0:4 音声が#0:5となっていることがわかるため、mapオプションに0:4と0:5を指定します。こうすることで正常に任意のストリームを保存することができます。</p>



<h2 class="wp-block-heading" id="まとめ">まとめ</h2>



<p>ストリームを選択して、HLS配信されている動画をダウンロードする方法をメモしておきました。</p>



<p>mapオプションについては、公式ドキュメントにさらに詳しい使い方が載っていますので、参考にしてみてください。</p>




<a rel="noopener" href="https://trac.ffmpeg.org/wiki/Map" title="
      Map     – FFmpeg

    " class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Ftrac.ffmpeg.org%2Fwiki%2FMap?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">
      Map     – FFmpeg

    </div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://trac.ffmpeg.org/wiki/Map" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">trac.ffmpeg.org</div></div></div></div></a>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/1017/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Slack】Curlコマンドでメッセージを送信するには？API有効化からPOSTでメッセージを送信するまでの手順</title>
		<link>https://takabus.com/tips/903/</link>
					<comments>https://takabus.com/tips/903/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Sun, 23 Jan 2022 04:37:54 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[Slack]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=903</guid>

					<description><![CDATA[curlコマンドを使用し、Slackへメッセージを送信する方法を紹介します。]]></description>
										<content:encoded><![CDATA[
<p>curlコマンドを使用し、Slackへメッセージを送信する方法を紹介します。</p>



<h2 class="wp-block-heading">Slack APIとは？</h2>



<p>Slack APIとは、Slackのサービスをプログラムから利用できるようにするサービスです。Slackへのメッセージ送信のほか、ほかのユーザーが送信したメッセージに自動的に応答したり、さまざまなことが可能になります。</p>



<p>PythonやNode.jsなど、プログラミング環境にあわせたライブラリも提供されており、対応している環境であれば容易にbotなどのプログラムを構築することが可能です。一方、POSTなどのHTTP通信により、ライブラリを使わずにAPIを利用することもできます。</p>



<p>この記事ではSlack APIを利用できるようにする手順から、ライブラリを使わずcurlコマンドだけでメッセージを送信するまでの手順を紹介します。</p>



<h2 class="wp-block-heading">Incoming Webhook APIを有効にする</h2>



<p>まずはSlackのAPIを有効にしましょう。</p>



<p>Slack APIを利用できるようにするには、チャンネルに対応したSlackアプリを作成する必要があります。Slack上にアプリを作成し、そのアプリにAPIを用意することで、プログラムから利用できるようにします。とはいえ、アプリの作成からAPIの有効化まで、すべてブラウザでの操作で完結できますので、それほど気構える必要はありません。</p>



<p><strong><a href="https://api.slack.com/">Slack API</a></strong>にアクセスし、Slackアプリを作成していきます。</p>




<a rel="noopener" href="https://api.slack.com" title="Slack platform overview | Slack Developer Docs" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fapi.slack.com?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Slack platform overview | Slack Developer Docs</div><div class="blogcard-snippet external-blogcard-snippet">To jump straight into developing your own Slack app, follow our Quickstart. You can get started right now.</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://docs.slack.dev/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">docs.slack.dev</div></div></div></div></a>



<p><strong>[Create an App]</strong>をクリックします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="630" src="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124640-1024x630.png" alt="" class="wp-image-904" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124640-1024x630.png 1024w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124640-300x184.png 300w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124640-768x472.png 768w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124640.png 1153w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><strong>[From scratch]</strong>をクリック。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="630" src="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124651-1024x630.png" alt="" class="wp-image-906" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124651-1024x630.png 1024w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124651-300x184.png 300w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124651-768x472.png 768w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124651.png 1153w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>App NameとAPIから利用したいチャンネルを選択し、<strong>[Create App]</strong>をクリックします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="630" src="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124706-1024x630.png" alt="" class="wp-image-907" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124706-1024x630.png 1024w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124706-300x184.png 300w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124706-768x472.png 768w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124706.png 1153w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p><span class="marker-under"><strong>つづけて、Webhook APIを作成します。</strong></span></p>



<p>Webhook APIとはPOSTやGETといったhttpsにより、メッセージを送受信することができるAPIです。特別なライブラリなどを使用することなく、httpsさえ利用できればSlackとの連携が可能になります。今回はこちらを使用してみます。</p>



<p>[Incoming Webhooks]をクリックします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="728" src="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124754-1024x728.png" alt="" class="wp-image-909" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124754-1024x728.png 1024w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124754-300x213.png 300w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124754-768x546.png 768w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124754.png 1216w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>トグルボタンをクリックし、ONにしましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="728" src="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124803-1024x728.png" alt="" class="wp-image-910" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124803-1024x728.png 1024w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124803-300x213.png 300w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124803-768x546.png 768w, https://takabus.com/tips/wp-content/uploads/2022/01/CAP_20220123_124803.png 1216w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>最後に<strong><span class="marker-under">Webhook APIのURLを作成します。</span></strong></p>



<p>ページ下の[Add New Webhook to workspace]をクリックします。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="728" height="491" src="https://takabus.com/tips/wp-content/uploads/2022/01/image-46.png" alt="" class="wp-image-911" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/image-46.png 728w, https://takabus.com/tips/wp-content/uploads/2022/01/image-46-300x202.png 300w" sizes="(max-width: 728px) 100vw, 728px" /></figure>



<p>Slackへのアクセスを求められますので、許可します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="728" src="https://takabus.com/tips/wp-content/uploads/2022/01/image-48-1024x728.png" alt="" class="wp-image-913" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/image-48-1024x728.png 1024w, https://takabus.com/tips/wp-content/uploads/2022/01/image-48-300x213.png 300w, https://takabus.com/tips/wp-content/uploads/2022/01/image-48-768x546.png 768w, https://takabus.com/tips/wp-content/uploads/2022/01/image-48.png 1216w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>すると、URLが作成されます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="715" height="477" src="https://takabus.com/tips/wp-content/uploads/2022/01/image-49.png" alt="" class="wp-image-914" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/image-49.png 715w, https://takabus.com/tips/wp-content/uploads/2022/01/image-49-300x200.png 300w" sizes="(max-width: 715px) 100vw, 715px" /></figure>



<p>このURLにPOSTすることにより、メッセージを送信することができます。</p>



<h2 class="wp-block-heading">curlコマンドでメッセージを送信してみよう！</h2>



<p>あとは送信するだけです。</p>



<p>curlコマンドを使用し、Slackへメッセージを送信してみましょう。</p>



<pre class="wp-block-code"><code>curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello, World!"}' &#91;WebhookのURL]</code></pre>



<p>Webhook URLにJSONをPOSTします。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="596" height="362" src="https://takabus.com/tips/wp-content/uploads/2022/01/image-50.png" alt="" class="wp-image-915" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/image-50.png 596w, https://takabus.com/tips/wp-content/uploads/2022/01/image-50-300x182.png 300w" sizes="(max-width: 596px) 100vw, 596px" /></figure>



<p>Slackのメッセージを確認してみましょう。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="764" height="783" src="https://takabus.com/tips/wp-content/uploads/2022/01/image-51.png" alt="" class="wp-image-916" srcset="https://takabus.com/tips/wp-content/uploads/2022/01/image-51.png 764w, https://takabus.com/tips/wp-content/uploads/2022/01/image-51-293x300.png 293w" sizes="(max-width: 764px) 100vw, 764px" /></figure>



<p><span class="bold-red">ちゃんとメッセージが来ました！</span></p>



<h2 class="wp-block-heading">まとめ</h2>



<p>いかがでしたか？思ったよりかんたんにメッセージを送ることができました。</p>



<p>特別なライブラリを使用しなくても、POSTするだけでメッセージを送ることができますので、手軽にSlackへ通知することができます。Linuxであればcurlコマンドは最初からインストールされていますので、サーバーからの異常通知などさまざまな応用が考えられます。</p>



<p>また、SlackはAPIドキュメントも充実しています。サンプルコードも多く掲載されていますので、ぜひ読んでみることをおすすめします。なにか発見があるかもしれませんよ～</p>




<a rel="noopener" href="https://api.slack.com/messaging/sending" title="Sending and scheduling messages | Slack Developer Docs" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fapi.slack.com%2Fmessaging%2Fsending?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Sending and scheduling messages | Slack Developer Docs</div><div class="blogcard-snippet external-blogcard-snippet">Apps that only listen can be useful, but there&#039;s so much more utility to explore by transforming a monologue into a conv...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://docs.slack.dev/messaging/sending-and-scheduling-messages" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">docs.slack.dev</div></div></div></div></a>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/903/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Selenium不要！Wgetでサイトをまるごと保存する方法</title>
		<link>https://takabus.com/tips/218/</link>
					<comments>https://takabus.com/tips/218/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Fri, 15 Oct 2021 04:45:24 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[wget]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=218</guid>

					<description><![CDATA[LinuxやMacで使えるwgetコマンドで手軽にWebサイトをスクレイピング（ローカルにまるごと保存）する方法をまとめておきます。Selenium不要でサイトを手軽に保存できますよ。]]></description>
										<content:encoded><![CDATA[
<p>LinuxやMacで使えるwgetコマンドで手軽にWebサイトをスクレイピング（ローカルにまるごと保存）する方法をまとめておきます。Selenium不要でラクラクにスクレイピングすることができます！</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/09/man-150x150.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>電子ジャーナルなどについてはスクレイピングが禁止されていることがあります。検出システムが導入されていることもあるので、このページの内容を参考にする時は、サイトのルールを確認しておいてください！</p>
</div></div>



<h2 class="wp-block-heading">サイト全体を保存したいとき</h2>



<p><span class="marker-under"><strong><span class="bold-red">サイト全体をローカルに保存しておきたい場合は、次のコマンドでOKです。</span></strong></span></p>



<pre class="wp-block-code"><code><strong>$ wget -r --continue --wait=10 --random-wait -kKp -np --tries=1 --no-verbose --no-iri &#91;URL]</strong></code></pre>



<p>このコマンドをコピペして、<strong>[URL]</strong>のところにダウンロードしたいサイトのURLを指定すれば、サイト全体をローカルにダウンロードすることができます。</p>



<p>たとえば、 <strong><em><span class="blue">https://google.com </span></em></strong>をまるごとアーカイブしたいなら、以下のようになります。</p>



<pre class="wp-block-code"><code>$ wget -r --continue --wait=10 --random-wait -kKp -np --tries=1 --no-verbose --no-iri https://google.com</code></pre>



<p>この方法をつかうと、<span class="bold-red">ディレクトリ構成を含め、サーバーのファイルをそのままローカルに保存することができます。</span>長年更新されておらず、今にも消えてしまいまそうなサイトでもローカルにまるごと保存しておくことができます。</p>



<p>ダウンロードしたファイルはブラウザで閲覧することができます。ダウンロード時にリンクを相対リンクに変換するようにしているため、ローカルで閲覧時もリンクが有効となります。もちろん、画像ファイルなどの付属ファイルも同時にダウンロードしてくれます。</p>



<h2 class="wp-block-heading">オプションの解説</h2>



<p>上で示したコマンドのオプションについて解説していきます。各オプションの意味は次の通りです。</p>



<ul><li><strong>k</strong>：保存するときに相対リンクに変換する（ダウンロードしたファイルをブラウザで見たときにリンクが動作するようにする）</li><li><strong>K</strong>:相対リンクに変換時、変換前のファイルも保存する（kオプションとともに使う。相対リンク変換前のオリジナルファイルも保存してくれる。オリジナルファイルはファイル名に.origが付与されて別に保存される。）</li><li><strong>np</strong>：親を辿らない（hoge.com/1をスクレイピングするなら、/1の中だけを保存するようにする。スクレイピングしたページに親ページへのリンクが含まれていた場合でもhoge.comに上がらないようにする.）<span class="red"><span class="marker-under">※サイトのディレクトリ構成によっては、このオプションを付けるとスクレイピング漏れが起こるので注意。わからないときは外したほうがよい。</span></span></li><li><strong>tries</strong>：エラー発生時のリトライ回数</li><li><strong>wait</strong>：１回のアクセスにつき待機する秒数（waitオプションは1ファイルごとに適用される。例えば、同じページに複数枚の画像があった場合、1枚ダウンロードするごとにwaitオプションで指定した時間待機することになる。）</li><li><strong>random-wait</strong>：待機する秒数に乱数をかける※毎回待機する時間が変わるので、人が操作している感じにできる</li><li><strong>r</strong>：再帰的にダウンロード（リンクをたどってすべてのページを保存）</li><li><strong>&#8211;no-iri</strong> : URLにチルダが入っているときの対策。URLにチルダ（～）が入っていると、ファイル名が文字化けしてしまうが、このオプションをつけておくと大丈夫。</li><li><strong>continue</strong>：すでにダウンロードが一部行われている場合、続きから行う。※このオプションをつけておくと、途中でやめてもそこから再開できる。しかし、<strong>スクレイピングにかかる時間は初めからやるのと同じなので注意</strong>→「もろもろ」の章を参照のこと</li><li><strong>&#8211;no-verbose</strong>：詳細を表示しない。<strong>※テスト時は外しておくことを推奨。ログが表示されるので、外しておいたほうがテストしやすい。</strong></li></ul>



<h2 class="wp-block-heading">もろもろ（注意点など）</h2>



<p>あらかじめ知っておいてほしいwgetコマンドの仕様について書いておきます。wgetでスクレイピングする前に知っておくと役に立つかも。</p>



<ul><li><span class="bold-red">サイト全体のスクレイピングは十分テストして、一発勝負で行う必要がある</span></li><li>「continueオプションをつけてもると途中から再開できる」とドキュメントにはあるが、<span class="marker-under"><strong>continueオプションを付けた場合もダウンロードは最初から行われる。</strong></span>すでにダウンロードされていたら、上書きしないで飛ばすだけなので、中断すると最初からやるのと同じ時間がかかる！テストしてOKなら、一発勝負で最後までやるのがおすすめ。</li><li>フォルダは自動的に作成してくれる。カレントディレクトリにURLのディレクトリが自動的につくられて、その下にURLに従ってフォルダが自動作成される。</li></ul>



<h2 class="wp-block-heading">ユーザーエージェントを指定するには？</h2>



<p>ユーザーエージェントとは、何のブラウザ・ツールでWebサイトにアクセスしているかを示すデータです。サーバー管理者は、ユーザーエージェントを解析することで、何のブラウザ・ツールを使ってアクセスしてきているのかを推定することができます。wgetを使ってアクセスすると、wgetのユーザーエージェントが通知され、wgetを使ってスクレイピングしたことが分かってしまいます。</p>



<p>別にスクレイピング自体は悪いことではないので隠す必要はないのですが、実際にスクレイピングする際は一応標準的なユーザーエージェントを設定しておきたいものです。wgetはユーザーエージェントの指定してスクレイピングすることもできます。</p>



<p>ユーザーエージェントを指定するには、<span class="bold"><span class="marker-under">&#8211;user-agentオプション</span></span>をつけます。</p>



<pre class="wp-block-code"><code> --user-agent="任意のユーザーエージェント"</code></pre>



<p>Chromeからアクセスしているものとする場合は、次のようになります。</p>



<pre class="wp-block-code"><code> --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.82 Safari/537.36"</code></pre>



<p>これをwget実行時のオプションに追加してください。</p>



<h2 class="wp-block-heading">まとめ</h2>



<p>今回紹介した方法（wgetコマンドを使った方法）を使うと、Seleniumなどのツールを使わなくても、かんたんにWebサイトを保存しておくことができます。SeleniumやPythonでプログラミングしなくても、コマンド一発で消えそうなWebサイトなどをアーカイブできます。</p>



<p>一応注意しておくと、SPA（シングルページアプリケーション）などを使用した最新のWebサイトについては、wgetではスクレイピングできないことがあります。こういった場合はSeleniumを使う必要があります。ただし、昔からあるような静的ファイルで構成されているWebサイトやサーバーサイドレンダリングされているサイトであれば、wgetで十分です。個人使用かつサイトのルールに違反しない程度に活用してみてもらえればと思います。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/218/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Docker】「WSL 2 installation is incomplete」の解決法</title>
		<link>https://takabus.com/tips/326/</link>
					<comments>https://takabus.com/tips/326/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Mon, 04 Oct 2021 01:38:52 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[docker]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=326</guid>

					<description><![CDATA[Windows10にDockerをインストールしたところ、WSL 2 installation is incompleteというエラーが発生しました。解決法を書いておきます。]]></description>
										<content:encoded><![CDATA[
<p>Windows10にDockerをインストールしたところ、</p>



<p><span class="bold-red">WSL 2 installation is incomplete</span></p>



<p>というエラーが発生しました。</p>



<h2 class="wp-block-heading">はじめにチェック</h2>



<p>まず、次のポイントをチェックします。</p>



<ul><li><span class="marker-under">WSLは有効になっているか？</span></li><li><span class="marker-under">WSLで動作させるOSをインストールしているか？</span></li><li><span class="marker-under">インストール後に再起動したか？</span></li></ul>



<p>どちらも済んでいるなら、次に進んでください。</p>



<h2 class="wp-block-heading">解決法</h2>



<p><span class="marker-under"><span class="bold-red">次のリンクからLinuxカーネル更新プログラムをダウンロードし、インストールします。</span></span></p>




<a rel="noopener" href="https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi" title="https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwslstorestorage.blob.core.windows.net%2Fwslblob%2Fwsl_update_x64.msi?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">wslstorestorage.blob.core.windows.net</div></div></div></div></a>



<p>↓このプログラムについての詳細はMicrosoft公式にあります。</p>




<a rel="noopener" href="https://docs.microsoft.com/ja-jp/windows/wsl/install-manual#step-4&#8212;download-the-linux-kernel-update-package" title="以前のバージョンの WSL の手動インストール手順" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://learn.microsoft.com/en-us/media/open-graph-image.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">以前のバージョンの WSL の手動インストール手順</div><div class="blogcard-snippet external-blogcard-snippet">wsl install コマンドを使用するのではなく、古いバージョンの Windows に WSL を手動でインストールする手順を説明します。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://learn.microsoft.com/ja-jp/windows/wsl/install-manual" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">learn.microsoft.com</div></div></div></div></a>



<h2 class="wp-block-heading">解決した</h2>



<p>これをインストールしたところ、きちんと起動するようになりました。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="581" src="https://takabus.com/tips/wp-content/uploads/2021/10/image-10-1024x581.png" alt="" class="wp-image-325" srcset="https://takabus.com/tips/wp-content/uploads/2021/10/image-10-1024x581.png 1024w, https://takabus.com/tips/wp-content/uploads/2021/10/image-10-300x170.png 300w, https://takabus.com/tips/wp-content/uploads/2021/10/image-10-768x435.png 768w, https://takabus.com/tips/wp-content/uploads/2021/10/image-10-120x68.png 120w, https://takabus.com/tips/wp-content/uploads/2021/10/image-10-160x90.png 160w, https://takabus.com/tips/wp-content/uploads/2021/10/image-10.png 1270w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/326/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Git】リモートから強制的にフェチするには？</title>
		<link>https://takabus.com/tips/304/</link>
					<comments>https://takabus.com/tips/304/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Sun, 03 Oct 2021 04:17:09 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[Git]]></category>
		<guid isPermaLink="false">https://takabus.com/tips/?p=304</guid>

					<description><![CDATA[ローカル上書きで強制的にリモートリポジトリからフェチする方法をメモしておきます。 強制的にフェチするには？ 以下のコマンドを実行します。 ローカルの内容は書き換えられて、リモートリポジトリで上書きされます。]]></description>
										<content:encoded><![CDATA[
<p>ローカル上書きで強制的にリモートリポジトリからフェチする方法をメモしておきます。</p>



<h2 class="wp-block-heading">強制的にフェチするには？</h2>



<p>以下のコマンドを実行します。</p>



<pre class="wp-block-code"><code>$git fetch origin master
$git reset --hard origin/master</code></pre>



<p>ローカルの内容は書き換えられて、リモートリポジトリで上書きされます。</p>



<p></p>
]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/304/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Youtube-DL】ライブ配信を録画するには？最初からダウンロードする方法は？</title>
		<link>https://takabus.com/tips/19/</link>
					<comments>https://takabus.com/tips/19/#respond</comments>
		
		<dc:creator><![CDATA[ばすにっきTips]]></dc:creator>
		<pubDate>Fri, 09 Jul 2021 08:03:17 +0000</pubDate>
				<category><![CDATA[コマンド]]></category>
		<category><![CDATA[youtube-dl]]></category>
		<guid isPermaLink="false">http://192.168.1.3/~t.h/tips/?p=19</guid>

					<description><![CDATA[YoutubeDLを使うと、ストリーミング配信されている動画をダウンロードすることができます。Youtube-dlを使って、ライブ配信を録画・ダウンロードする方法を紹介します。]]></description>
										<content:encoded><![CDATA[
<p><strong><span class="marker-under"><span class="red">youtube-dl</span>を使うと、<span class="red">ストリーミング配信されている動画をダウンロード</span>することができます。</span></strong></p>




<a rel="noopener" href="https://ytdl-org.github.io/youtube-dl/" title="youtube-dl" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fytdl-org.github.io%2Fyoutube-dl%2F?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">youtube-dl</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://ytdl-org.github.io/youtube-dl/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ytdl-org.github.io</div></div></div></div></a>



<p>GitHubでソースコードが開発されており、有志によって開発されています。</p>




<a rel="noopener" href="https://github.com/ytdl-org/youtube-dl" title="GitHub - ytdl-org/youtube-dl: Command-line program to download videos from YouTube.com and other video sites" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://opengraph.githubassets.com/d3bf8248ab1c5524b402d81149bd120151ccbb66ac83a8abb89e13b38d88368b/ytdl-org/youtube-dl" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">GitHub - ytdl-org/youtube-dl: Command-line program to download videos from YouTube.com and other video sites</div><div class="blogcard-snippet external-blogcard-snippet">Command-line program to download videos from YouTube.com and other video sites - ytdl-org/youtube-dl</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://github.com/ytdl-org/youtube-dl" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">github.com</div></div></div></div></a>



<p>今回はyoutube-dlを使って、ライブ配信をダウンロードする方法をまとめておきます。</p>


<div class="ad-area no-icon ad-shortcode ad-rectangle ad-label-visible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>スポンサーリンク</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-8516711297133974"
  data-ad-slot="1299250945"
  data-ad-format="rectangle"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>




<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p>youtube-dlはダウンロードするだけですが、使用するには別途ffmepgのインストールも必要です。あらかじめffmpegもセットアップしてください。</p>




<a rel="noopener" href="https://opty-life.com/apps/ffmpeg-windows-install/" title="【簡単】FFMPEGをWindowsパソコンにインストールしよう" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://opty-life.com/wp-content/uploads/2020/10/windowsffmpeginstall.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【簡単】FFMPEGをWindowsパソコンにインストールしよう</div><div class="blogcard-snippet external-blogcard-snippet">FFMPEGをwindowsパソコンにインストールする方法をシェアします。FFMPEGはソフトウェアですが、通常のソフトウェアのインストール方法とは異なりますが、非常に簡単ですので安心して下さい。FFMPEGのダウンロードまずはソフトウェア...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://opty-life.com/apps/ffmpeg-windows-install/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">opty-life.com</div></div></div></div></a>
</div>



<h2 class="wp-block-heading">youtube-dlをインストール</h2>



<p>youtube-dlをダウンロードします。</p>




<a rel="noopener" href="https://ytdl-org.github.io/youtube-dl/download.html" title="youtube-dl: Download Page" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fytdl-org.github.io%2Fyoutube-dl%2Fdownload.html?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">youtube-dl: Download Page</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://ytdl-org.github.io/youtube-dl/download.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">ytdl-org.github.io</div></div></div></div></a>



<h2 class="wp-block-heading" id="今からライブ配信を録画するには">今からライブ配信を録画するには？</h2>



<p>現在からライブ配信を保存するには、次のようにします。</p>



<pre class="wp-block-code"><code>&gt;youtubedl.exe &lt;動画のURL&gt;</code></pre>



<p>URLを指定するだけでOKです。動画のURLを引数に指定すれば、ライブ配信であっても保存（録画）することができます。</p>



<p>録画を停止するには、<span class="keyboard-key">Ctrl</span>+<span class="keyboard-key">C</span>を押します。</p>



<h2 class="wp-block-heading" id="ライブ配信を最初からダウンロードしたいときは">ライブ配信を最初からダウンロードしたいときは？</h2>



<p>シークバーで巻き戻して再生できるライブ配信の場合は、最初からダウンロードすることが可能です。次の手順でダウンロードします。</p>



<div class="wp-block-cocoon-blocks-icon-box common-icon-box block-box information-box">
<p>生配信が終了していない場合でもダウンロードできます。</p>
</div>


<div class="ad-area no-icon ad-shortcode ad-rectangle ad-label-visible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>スポンサーリンク</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-8516711297133974"
  data-ad-slot="1299250945"
  data-ad-format="rectangle"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>




<h4 class="wp-block-heading" id="①-fオプションでフォーマットを調べる">① Fオプションでフォーマットを調べる</h4>



<pre class="wp-block-code"><code>&gt;youtube-dl.exe -F &lt;URL&gt;

// 出力例
format code  extension  resolution note
139          m4a        audio only DASH audio   64k , m4a_dash container, mp4a.40.5 (22050Hz)
140          m4a        audio only DASH audio  144k , m4a_dash container, mp4a.40.2 (44100Hz)
278          webm       256x144    DASH video  111k , webm_dash container, vp9, 30fps, video only
242          webm       426x240    DASH video  166k , webm_dash container, vp9, 30fps, video only
160          mp4        256x144    DASH video  212k , mp4_dash container, avc1.42c00b, 15fps, video only
243          webm       640x360    DASH video  292k , webm_dash container, vp9, 30fps, video only
133          mp4        426x240    DASH video  456k , mp4_dash container, avc1.4d4015, 30fps, video only
244          webm       854x480    DASH video  528k , webm_dash container, vp9, 30fps, video only
134          mp4        640x360    DASH video 1008k , mp4_dash container, avc1.4d401e, 30fps, video only
247          webm       1280x720   DASH video 1040k , webm_dash container, vp9, 30fps, video only
135          mp4        854x480    DASH video 1350k , mp4_dash container, avc1.4d401f, 30fps, video only
136          mp4        1280x720   DASH video 2684k , mp4_dash container, avc1.4d401f, 30fps, video only
91           mp4        256x144     290k , avc1.42c00b, 15.0fps, mp4a.40.5
92           mp4        426x240     546k , avc1.4d4015, 30.0fps, mp4a.40.5
93           mp4        640x360    1209k , avc1.4d401e, 30.0fps, mp4a.40.2
94           mp4        854x480    1568k , avc1.4d401f, 30.0fps, mp4a.40.2
95           mp4        1280x720   2969k , avc1.4d401f, 30.0fps, mp4a.40.2 (best)</code></pre>



<p>フォーマットからダウンロードしたいvideoとaudioの組み合わせを選びます。</p>



<h4 class="wp-block-heading" id="②-フォーマットを指定してダウンロードする">② フォーマットを指定してダウンロードする</h4>



<p><code>-f</code>オプションを使い、フォーマットを指定してダウンロードします。</p>



<pre class="wp-block-code"><code>&gt;youtube-dl.exe -f 136+140 &lt;URL&gt;</code></pre>



<p>フォーマットは、videoとaudioのフォーマットコードを+でつないで指定します。</p>



<p>これで最初から最後まで、ライブ配信をダウンロードできます。</p>


<div class="ad-area no-icon ad-shortcode ad-rectangle ad-label-visible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>スポンサーリンク</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-8516711297133974"
  data-ad-slot="1299250945"
  data-ad-format="rectangle"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>




<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://takabus.com/tips/wp-content/uploads/2021/09/man-150x150.png" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>ただし、動画によっては最初からダウンロードできない場合があるようです。</p>



<p>その場合はLiveが終わってから、ダウンロードするしかなさそうです。</p>
</div></div>



<p>なお、ダウンロードには少し時間がかかりますので、ご注意を！</p>


<div class="ad-area no-icon ad-shortcode ad-rectangle ad-label-visible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>スポンサーリンク</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-8516711297133974"
  data-ad-slot="1299250945"
  data-ad-format="rectangle"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>

]]></content:encoded>
					
					<wfw:commentRss>https://takabus.com/tips/19/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
