PythonのDIYポッドキャストダウンローダー

「ポッドキャストは正しく聴く必要があります」という碑文に私の注意が引き付けられたのは偶然です。 他の人のdia(mono)ログを聞いてもそれほど不安を感じることはありませんが、Pythonでrssとxmlを使用する仕組みを掘り下げることは非常に困難でした。

添付コードがアルファ段階にあることはすぐに注目に値するでしょうが、今では使用できます(habracastの17の問題を自分でダウンロードしました)。Pythonのセマンティクスのおかげで、ソースコードは追加のドキュメントなしで簡単に読むことができます。 この記事の主な目的は、Pythonをマスターした人、 そして、プログラムの機能を必要とする人の2番目にすぎません(私が知る限り、そのようなソフトウェアは十分にあります)。

当初、このプログラムは、新しいポッドキャストを聞きたいと思う前にダウンロードする悪魔として考えられていました。 したがって、彼女はGUIを必要としませんでした。 必要なのは、特定の柔軟性とセットアップの容易さで静かに作業を実行することだけでした。

朝食中にポッドキャストをダウンロードする方法を紹介し、仕事への旅行中に試聴し、プログラミングを開始しました。

マテリエル

mp3ファイル(ポッドキャスト)へのリンクは、各アイテム(リリース)のタグ:media:contentまたはenclosureのいずれかの属性内のサブスクリプションXMLファイルに保存されます。 したがって、Pythonでこのようなものを選択するのは難しくありません。

  <code> item_node = file_xml.getElementsByTagName( "item")
 item_nodeのアイテムの場合:
    title = self.get_tag_content(アイテム、「タイトル」)
   説明= self.get_tag_content(アイテム、「itunes:summary」)
    media_content = self.get_tag_content(item、 "media:content"、 "url")
    enclosure = self.get_tag_content(item、「enclosure」、「url」)
 #ここでself.get_tag_content()は、エラー時に例外をスローしない小さな自己記述関数です。


ポッドキャストをハードドライブにきちんと置くだけです。 ここでは、FlashGetの影響下で、複数のストリームでダウンロードを実装できるようにしたいと考えましたが、後で判明したように、ポッドキャストサーバーは目的のRange HTTPヘッダーを完全にはサポートしていません。

練習する

タスクを4つの部分に分けました。

1. rss-feedから情報をジャンプして釣り出します。

2.ポッドキャストをサーバーと同期します。

3.必要なファイルをダウンロードします。

4.前の3つのポイントの調整。

添付のアーカイブでは、rss.py、keeper.py、dnld.py、main.pywの各ファイルにそれぞれ実装があります。 クラスの各実装には詳細なプロパティがあり、コンソールモードでデバッグ情報を表示します。 最後のファイルにはpyw拡張子が付いており、プログラムの目的を強調しています-静かに物事を行うためですが、今それについて話すのは時期尚早ですので、詳細はどこでもTrueです。 また、go.batファイルもあります。最後に実行されたコンパイル済みファイルが削除され、プログラムの終了後にコンソールウィンドウが開いたままになり、出力が表示されます。

これはHabréに関する私の最初の記事であり、このテーマに収まるかどうかはわかりません...私の3日間の作品が、最も美しいクロスプラットフォーム言語を学ぶ道のりの誰かを助けることを願っています。 プロジェクトをダウンロードする



All Articles