ツール of-scraperがDRM対応に

graytin6

ROM専
登録日
2023年4月1日
投稿
21
リアクションスコア
0
ofscraper
ofscaperはonlyfans-scraperのフォークで、追加機能と修正が入ってる。
変更の多くはファイル管理に関するもの。例えば、この変更でダウンロードするファイルの種類をコントロールでき、最終的な保存先もより細かく制御できるようになった。メタデータファイルのサポートも追加した。
digitalcriminalsのスクリプトを現在使っている人向けに:同じuser_data.db構造を使ってるから、それらのファイルは完全に互換性がある。config.jsonでmetadataの設定が正しければ、既にダウンロード済みのファイルをスキップするのにuser_data.dbが使える。
実行
コード:
ofscraper
コンテンツのスクレイプだけでなく、いいね・いいね解除のバッチ処理も可能
プログラムのほとんどの管理もできる。例えばプロフィール切り替え、設定変更、auth ファイルのリセットなど
コマンドラインに慣れてるユーザー向けに、自動化を強化してメニューをスキップできる機能も用意してる
例えば自分がよく使ってるコマンドは
コード:
ofscraper --posts all --purchased --renewal disabled --sub-status active --account-type paid
これはウォールの全コンテンツと有料コンテンツだけをスクレイプするためのもの。アクティブでリニューアルがオフになってる有料アカウント限定
バックグラウンドで動くデーモンもある
コード:
--daemon {minutes}
変更点
多くの変更点はchanges.mdで確認できる
でも自分が特に気に入ってるのは
- 特定モデルのメッセージや有料コンテンツのスクレイプ
- アカウントタイプ、サブスク状況、更新状況でフィルター
- モデル選択時のあいまい検索
- ダウンロードする投稿タイプを選べる機能
- バックグラウンドデーモン対応
これはすごくシンプルなプログラムを目指してる。今のところonlyfansだけサポートする予定。fanslyとかをサポートする他のスクリプトもあるからね。
リンク
Repo
Pypi
 
このスクリプトを軽く試してみたけど、めちゃくちゃよく動く。でも小さいバグを4つ見つけた:
まず、ある1つのプロフィールでrun failed with exception: 'text'が出て、結果的に何もダウンロードされなかった。ただ他のプロフィールでは再現できてない。
コード:
? Which models do you want to scrape: auroraangel1
Status - UP
? Would you like to also download paid content Yes
Using profile: main_profile
Status - UP
Getting Selected post type(s) for auroraangel1
Subscription Active: True
? Which area(s) would you like to scrape? (Press ENTER to continue) ['Timeline', 'Archived', 'Highlights', 'Stories', '
Messages']
Name: aurora angel | Username: auroraangel1 | ID: 66748071 | Joined: 2020-09-03T00:00:00+00:00
- 501 posts
-- 452 photos
-- 207 videos
-- 0 audios
- 2 archived posts
Pages Progress: 12: : 12it [01:05, 5.49s/it]
run failed with exception: 'text'
Using profile: main_profile[01:03, 4.17s/it]
Status - UP
Getting paid content for auroraangel1
Scraping, Scraping isn't frozen. It takes time.
Scraped Page: 1

Username: auroraangel1
- paid content 0
-- photos 0
-- videos 0
-- audios 0

Done With Run
2つ目のバグは、スクリプトがなぜか1つのファイルをスクレイプ時にスキップすること。--dupeをつけてもつけなくても変わらない。でも同じプロフィールでもう1、2回スクレイプを実行すると直るみたいで、謎にスキップされたファイルがダウンロードされる。どのファイルか正確にはわからないんだけど。
3つ目のバグは、スクリプトが時々プロフィールのアーカイブコンテンツを全くダウンロードしないこと。--dupeを使っても変わらないし、アーカイブコンテンツだけ選択しても同じ。:SadgeCry:
コード:
? Which models do you want to scrape: avaxreyes
Status - UP
? Would you like to also download paid content Yes
Using profile: main_profile
Status - UP
Getting Selected post type(s) for avaxreyes
Subscription Active: True
? Which area(s) would you like to scrape? (Press ENTER to continue) ['Timeline', 'Archived', 'Highlights', 'Stories', '
Messages']
Name: Ava Reyes 💖 | Username: avaxreyes | ID: 125000045 | Joined: 2021-03-11T00:00:00+00:00
- 261 posts
-- 286 photos
-- 8 videos
-- 0 audios
- 30 archived posts
Pages Progress: 9: : 9it [00:05, 1.60it/s]
Pages Progress: 3: : 3it [00:46, 15.52s/it]
forcing all downloads

Downloading to ofscraper/{model_username}/{responsetype}/{mediatype}/

Progress: (300 photos, 8 videos, 0 skipped || 308/308||150.15 MB): : 308it [00:43, 7.08it/s]
Using profile: main_profile
Status - UP
Getting paid content for avaxreyes
Scraping, Scraping isn't frozen. It takes time.
Scraped Page: 1

Username: avaxreyes
- paid content 0
-- photos 0
-- videos 0
-- audios 0

Done With Run
最後に4つ目のバグは、アバターが拡張子なしでダウンロードされること。自分にはあまり重要じゃないけど、誰かの役に立つかもと思って共有しとく。👍
この4つの小さいバグ以外は、スクリプトは完璧に動くし、めちゃくちゃ使いやすい。シェアしてくれてありがとう!:MLADY:👍
 
優しい言葉ありがとう、それにバグ報告もすごく助かるよ
 
クオートしたポストにもあるように、このスクリプトの改善でたくさん助けてもらった
1.82のリリースで
ここに来て、既知のバグが直ってるか見てみようと思った
それで前のバージョンの問題をかなり直せたし、スクリプトを改善する方法も実装できた
1. このテキストエラーはconfigファイルが正しくないか、onlyfansからのレスポンスが期待した値じゃないことを意味する。これは特定のモデルでしか起きないから、たぶん後者だと思う。onlyfansが返す様々な種類のレスポンスをもっとうまく処理できるようスクリプトを刷新した。似たようなエラーの報告も受けてるけど、ほとんどは後のアップデートで直ったみたい。
2. ダウンロード失敗はほぼonlyfans側の問題で、たまに変なレスポンスを返してくることがある。以前のバージョンはリクエストをリトライする仕様だったけど、実装が正しくできてなかった。新バージョンでこれを修正した。これで各ダウンロードは5回試行されるようになる。間に一時停止を挟んで。これでスキップされるダウンロードがかなり減るか無くなると思う
3. これについてはよく分からない。スクリプトへの一連の変更で直ってる可能性は高いと思う
4. これに対する修正は1.82で実装した
 
そのバージョンで自分が入れたバグのせいで1.82は削除した
最新版は1.87
 
嬉しいニュース
ofscraper 1.95でDRMコンテンツに対応した
 
ありがとう、hornyone!digitalcriminalを使う機会がなくて手動でコンテンツをダウンロードしてたんだけど…あなたのスクリプト試したら本当に楽になった。
 
ベータ機能を追加した
DBの情報とAPIから取得した情報をまとめてサッと見られる仕組み
来たる2.2リリースの一部
この方法でアンロックされた個別の投稿をダウンロードできる仕組みも、たぶんコマンドラインから直接使えるようにする予定
dp-Y8eWwsgY.png
 
自分が何か間違えてるのか、それとも何かやり方があるのか分からないけど、DRMメッセージをスクレイピングしてもファイル名に画質が追加されない(例:_source)。まだ投稿では試してない、今のところメッセージにしかツールを使ってないから。
 
一部のファイルにしか_sourceが付かない
APIが返すURLによって変わる
 
それは違うと思う。sim0n00psのスクレイパーで同じメッセージを落としたら_sourceが付いて出てきたけど、君のは同じファイルでも付かなかったよ。
 
うん、元のurlが示す内容をそのまま使ってきた
あいつのコードをざっと見たら、ファイル名に付け足してる
folder + path + "/" + filename + "_source.mp4"
一部のファイルはurl内にそれがあるけど、一貫性がない
たぶん混乱を避けるために似たようなことをする
 
macOSでofscraper 2.4.5を使ってる。購入した分は全部きれいにダウンロードできた…でもDRM動画だけちゃんとダウンロードされない。DRM動画はダウンロードされるんだけど、そのDRM動画が開けない。macOSのQuickTime(macOSでmp4を再生するソフト)が「The file isn't compatible with QuickTime Player.」って言ってくる。そのファイルをgofileにアップロードして再生できるか試したけど、そこでも再生できなかった。
mp4decryptにはこれを使ってる:https://formulae.brew.sh/formula/bento4
configはffmpegの実行ファイルを指すようにもした(ffmpegは普段から使ってる)
開けないダウンロード済みDRM動画のメタデータを確認したら…他の非DRM動画との違いは、DRMの方には解像度やコーデックなどの情報が一切ないこと。そのメタデータが欠けてるのが、自分の環境で壊れてる原因じゃないかと思ってる。何か心当たりある?
 
あと、過去にダウンロード済みのコンテンツをもう一度ダウンロードし直すにはどうすればいい?モデルのメッセージを再実行しても、過去にダウンロードしたものはダウンロードされないみたいなんだけど?
 
バージョン2.5がリリースされました
メタデータの問題を修正するパッチをプッシュしました。今後のファイルはこれで直ります
現在のファイルにはいくつか対処法があります
https://github.com/datawhores/OF-Scraper/issues/85
問題のあるファイルは.mkvに変換すれば動くはずです
 
問題は拡張子にあります
一部の動画プレイヤーはこれを回避できます
Discordによるとvlcもその一つらしいです
ただ、ファイル名を.mkvに変えるか
--dupeで再ダウンロードすれば直ります
https://github.com/datawhores/OF-Scraper/issues/85
以下を実行すればOKです
ofscraper --dupe
これで重複チェックをスキップして全ファイルを再ダウンロードします
 
本当にすみません。
5歳児にでもわかるように使い方教えてもらえますか?
 
DRMファイルを再ダウンロードしたら成功して、全部うまく動きました。作業ありがとうございます!
 
こんにちは、DRM付きの有料動画(メッセージ)をダウンロードしたのですが、もう一度ダウンロードしたいです。どうすればいいですか? DBではダウンロード済みになっています。
 
戻る
トップ