Skip to content

Latest commit

 

History

History
76 lines (68 loc) · 4.53 KB

TODO.md

File metadata and controls

76 lines (68 loc) · 4.53 KB

ToDo

便利機能

  • TVer.jp の検索機能を使ってキーワード指定できるようにする
  • 削除対象の番組を部分一致で指定できるようにする
    • 部分一致したものはダウンロードしない
    • ダウンロードされてしまったものでも部分一致で削除する
  • プログレスバーの実装
  • メタデータを追加で指定する(タイトルにシリーズ番号、日付、発行者、著作権、トラック番号、エンコーダなど)
  • ffmpeg のエラーログの古いものを削除
  • タレント名で検索してタレント ID を特定し、そこから番組ダウンロード
  • 番組名で検索してそこから番組 ID を特定し、そこから番組ダウンロード
  • 番組ダウンロード時にジャンル ID の情報を取得し、メタデータとして番組に埋め込む → やり方不明
  • 廃止になったジャンル ID を自動的に削除 → タグの一覧取得方法が不明のため対応見込みなし
  • 追加になったジャンル ID を自動的に追加 → タグの一覧取得方法が不明のため対応見込みなし
  • バージョンアップ通知機能を追加
  • ダウンロード先に放送局ごとにディレクトリ分けした上で番組ディレクトリを作るオプションをつける
    • 放送局ごとに保存した番組の最終移動先への移動をサポートする → プルリクで対応
  • ダウンロード後のチェック処理もスキップするオプションをつける
  • 番組検証に速度重視のモードを追加
  • ffmpeg の自動更新機能を追加
    • Windows 向け
    • mac 向け
    • Linux 向け
  • トースト通知機能を追加
    • Windows 向け
    • mac 向け
    • Linux 向け
  • バージョンアップ時にダウンロード履歴ファイルがクリアされないようにする
  • バージョンアップ時に設定ファイルがクリアされないようにする
  • 検索結果をダウンロードせずに番組リストを出力
  • 番組リストを使ったダウンロード
  • ダウンロード履歴破損時に破損レコードを削除
  • フリーワードで指定で特定のジャンルからのみダウンロード
  • コンテナによる仮想化に対応
  • Google Colab で user_setting.ps1 を使用するようにする
  • Docker コンテナで user_setting.ps1 を使用するようにする
  • Write-Host を廃止する
  • 並列処理時に Toast 通知を更新する
  • 並列処理時に並列度を指定できるようにする
  • 並列処理を行わないオプションを指定できるようにするかも
  • CRLF ではなく LF によるファイル書き込みの強制
    • ダウンロード対象外リスト
    • 設定ファイル
    • CSV ファイル
  • リストファイル 0 件時のエラー処理追加
  • GUI の実装
    • Windows 向け
    • mac 向け
    • Linux 向け
  • 曜日時間帯別稼働制御の実装

youtube-dl 制御機能

  • youtube-dl のパラメータ指定を変更して、メタデータを番組に含めるようにする。その際、中間ファイルが増える可能性があるので削除対象に含めるか検討する
  • youtube-dl でダウンロードする際に、中間ファイルの出力先を移動先と分ける
  • youtube-dl の番組処理について、パフォーマンスチューニングを検討する

性能改善・安定性向上

  • ハードウェアアクセラレーションの活用。自動判定は難しいので、設定で変更できるようにした。
  • ダウンロード履歴ファイルの排他制御を行い、複数 PC から同時実行できるようにする
  • 変数のスコープを明確にする
  • 変数名を実態に合わせる
  • 関数の引数チェックを厳密にする
  • 関数の汎用化・正規化を行う
  • 番組の情報を引き回すためにカスタムオブジェクトを作成する
  • プログレスバーの残骸をきれいにする → どうやら無理っぽいので廃止で対応
  • 各種コードチェックに引っかからないように修正
  • トークンの取得頻度を下げる

対象環境の拡充

  • Linux での動作確認をする。ひとまず Pi4 では動いた。Ubuntu でも動く。
  • Mac でも動作確認をする。ひとまず M1 Mac Mini では動いた。