Bステーションビデオダウンローダー(BV番号、ダッシュ、オーディオとビデオの分離)

ステーションBでビデオクローラーを作成する理由

過去数日間、ステーションBでいくつかのクリップにハマっていました。上下の世界の「White Snake:The Origin」などの洗脳サイクルで、エンディング曲「Previous Life and Modern Life」のフルバージョン4分06秒Sing:Gong Xiaoxiaoのリンクは次のとおりです

https://www.bilibili.com/video/BV1Qb411q7Xu

ここに画像の説明を挿入

心を奪われたこのようなビデオに直面して、自分の地域にダウンロードする必要性が突然思い浮かびました。オフラインで再生すると便利で、再作成することができました(もちろん、ソースは記録されます)ステーションBのビデオダウンロードクローラーを見つけます。

ステーションBビデオクローラーの背後にあるものについて

わかりません。ステーションBから動画をダウンロードできるプラグインまたはライブラリを多数見つけました。you-get(https://github.com/soimort/you-get/releases/tag/v0.4.486)とIDM(1つ以上)スレッドダウンロードツール、exeバージョンとブラウザープラグインを使用すると、画像、オーディオ、ビデオなどのメディアファイルを嗅ぎ取ってWebからダウンロードできます)、試してみましたが、柔らかく、ピットが多すぎ、あきらめたり、自分で書き込んだりできますそうだね

驚いたことに、私は以前に書いたBサイトのビデオクローラー(https://blog.csdn.net/ygdxt/article/details/84501500)を実際に見つけました。私はそれを有頂天に試しましたが、うまくいきませんでした。ここで、データを確認すると、jsonが解析したコードが変更され、再度実行できます。

def parseHtml(self,html):
#用pq解析得到视频标题
doc = pq(html)
video_title = doc('#viewbox_report > h1 > span').text()

#用正则、json得到视频url;用pq失败后的无奈之举
pattern = r'\<script\>window\.__playinfo__=(.*?)\</script\>'
result = re.findall(pattern, html)[0]
temp = json.loads(result)
# 改了此处,原来是 temp['durl']
for item in temp['data']['durl']:
    if 'url' in item.keys():
        video_url = item['url']
		return{
			'title': video_title,
			'url': video_url
		}

多くの良い点があります。正しくダウンロードできるビデオもあれば、0kbのダウンロードもあるので、物事はそれほど単純ではないと思います。情報をさらに確認すると、2018年以前にステーションBで使用されていたビデオ形式はすべてflvであり、後で技術アップグレードがダッシュに変換されました(ステーションbの通知を参照してください:https://www.bilibili.com/read/cv855111)。以前のクローラーはflv専用でしたので、特定のビデオのみをダウンロードできました。

それだけでなく、次の動画は音声と画像から分離されています。完全な動画をダウンロードするには、動画と音声を別々にダウンロードする必要があります。動画と音声のアドレスは前のコードと同じですが、音声と動画のダウンロードは最初にステーションbにOPTIONSリクエストを送信します。通常はGET / POSTを使用します。このOPTIONSはあまり使用されない場合がありますが、リクエストライブラリでの使用はそれほど変わらないため、合成、合成オーディオとビデオのメインストリームライブラリが優先されます。テクニカルルート。

文を挿入するために、先月(2020/3/23)に、ステーションBがビデオのav番号をBV番号にアップグレードしました

ずっと、AV番号はステーションBのビデオ原稿の重要な兆候であり、ビデオの普及と共有に重要な役割を果たしてきました。

原稿情報の安全性を保護し、より多くの投稿に対応し、UPマスターの権利と利益を保護するために、2020年3月23日から、AV番号はBV番号に完全にアップグレードされます。純粋なデジタルAV番号とは異なり、BV番号は数字と大文字と小文字の文字列であり、アルゴリズムによって自動的に生成されます。将来的には、BV番号が原稿識別として一律に使用される予定です。

同時に、2020年3月23日までにAV番号を生成する関連機能は変更されていません。たとえば、共有原稿へのリンク、AV番号検索、更新、コメント、プライベートメッセージでのジャンプの強調表示。

さらに、BV番号またはBV番号を含むリンクをコピーした後、ユーザーはBステーションAPPを開くと自動的にビデオにジャンプします

つまり、2020年3月23日以前のビデオはAVによって決定され、BV番号によっても決定されますが、2020年3月23日以降のビデオは単なるBVインデックスです。

そのため、BV番号に従って直接クロールしただけで、インターネット上のbサイトビデオクローラーの大部分は、av番号に送信されます。
私がコードにアイデアをどのように書き込んだか、そしてそれに遭遇した落とし穴については、ここで1 wの単語を省略できます...
または単にツールを取得して使用する方法を見てください〜

使い方

下のデモビデオを一目でお楽しみください

私をクリックしてください、ビデオはこのリンクの最後にあります

国民の関心号の月長い小さな水の背景の返信は、乾杯は、あなたがダウンロードツールを取得することができます

使いやすさのために、ffmpeg環境はダウンロードツールに統合されているため、ffmpeg環境やPython環境を再構成する必要はありません。

元の記事を85件公開しました 283のようです 訪問数160,000以上

おすすめ

転載: blog.csdn.net/ygdxt/article/details/105485580