youtube2csv

command module
v0.0.0-...-5aae083 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 24, 2026 License: MIT Imports: 8 Imported by: 0

README

YouTube2CSV (YouTube Data Export Tool)

Go Report Card go.mod Go version

このツールは、YouTube Data API を使って動画情報を取得し、CSV ファイルにエクスポートするためのアプリケーションです。主な機能は以下の通りです。

  • 指定した YouTube チャンネル ID の動画情報一覧を取得。
  • 動画のタイトル、URL、動画の長さを取得。
  • 取得したデータを CSV ファイルとして保存。

📲 事前準備

YouTube2CSV を使用するために、以下の 2 点の事前準備を行なってください。

  1. Go のインストール
  2. YouTube API の認証情報を作成

尚、「2.」で認証情報を作成した上で、シークレット情報の JSON ファイルをダウンロードしてください。このファイルは YouTube2CSV を使用するために必要です。

📝 使い方

1. 以下のコマンドを実行

引数は適宜変更してください(各フラグの詳細については こちら を参照)。

go run github.com/muck0120/youtube2csv --secret="path/to/client_secret.json" --token="path/to/token.json" --channel-id="Target Channnel ID" --out="path/to/output.csv"
2. 表示された URL にアクセス

認証用の token.json ファイルが存在しない、またはトークンの期限が切れている場合は以下のように URL が表示されますので、表示された URL にアクセスしてください。

👇 Please access the displayed URL to obtain the authentication code and enter it.

https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=XXXXX&redirect_uri=xxxxx&response_type=code&scope=https://www.googleapis.com/auth/youtube.readonly&state=state-token
3. 認証トークンを取得する

上記の URL にアクセスした後は以下の手順に沿って、認証トークンを取得し、コンソールに貼り付けてください。

  1. Google アカウントの選択画面になるので、「📲 事前準備」で認証情報を作成した Google アカウントを選択します。
  2. 「このアプリは Google で確認されていません」という表示が出ますが、「続行」をクリックします。
  3. さらに「youtube2csv が Google アカウントへのアクセスを求めています」と出るので「続行」をクリックします。
  4. すると http://localhost/?state=state-token&code=xxxxx&scope=https://www.googleapis.com/auth/youtube.readonly という URL にリダイレクトされるので code=xxxxxxxxxx の部分をコピーしてください。
  5. 「4.」でコピーした xxxxx👇 Please access the displayed URL to obtain the authentication code and enter it. に続いてコンソールにペーストして Enter をクリックします。

上手く認証が通れば --out= で指定したファイルに動画情報の一覧が書き出されます。

フラグについて

以下のフラグを使用できます。

フラグ 必須 デフォルト 内容
--secret ./client_secret.json YouTube API の認証情報ファイル
--token ./token.json 認証トークンの保存ファイル
--channel-id 動画情報を取得したいチャンネル ID
--out ./output/{channel-id}_yyyyMMddhhmmss.csv エクスポート先ファイル
出力フォーマット

CSV には以下の項目が出力されます。

項目 キー 内容
番号 no 動画のタイトル内に # と、それに続く数字が存在すれば、その数字をセットします。無ければ 0 が入ります。
タイトル title 動画のタイトルが入ります。
動画の長さ duration 動画長さが分単位で入ります。分未満は四捨五入されます。
動画 URL url 動画の URL が入ります。

🛠️ 開発方法

先に「📲 事前準備」を済ませた上で、リポジトリをクローンして自由にカスタマイズして使用してください。

尚、クローンした後に「📲 事前準備 - 2.」で取得した client_secret.json./input ディレクトリ内に配置してください(--secret の引数を指定する場合は不要です)。

git clone https://github.com/muck0120/youtube2csv.git
cd youtube2csv
go mod download
各コマンド
コマンド 引数 内容
make run CHANNEL_ID YouTube2CSV を実行します。取得したいチャンネルの ID を指定します。
make gen go generate を実行します。モックファイルの作成などに使用します。
make lint golangci-lint を実行します。lint のチェックに使用します。
make test go test を実行します。ユニットテストの確認に使用します。
make tidy go mod tidy を実行します。

🪪 ライセンス

このプロジェクトは MIT ライセンス のもとで公開されています。

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
internal
domain/youtube
Package youtube is a generated GoMock package.
Package youtube is a generated GoMock package.
gateway/youtube
Package youtube is a generated GoMock package.
Package youtube is a generated GoMock package.
usecase/youtube
Package youtube is a generated GoMock package.
Package youtube is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL