v2.2.1 動画処理周りのエラー処理
>Fet-Fe (→コード: v2.2.0 埋め込まれた動画を取得できるように変更 エラー処理などは追い追い wiki文法と衝突する文字のエスケープロジック変更) |
>Fet-Fe (v2.2.1 動画処理周りのエラー処理) |
||
6行目: | 6行目: | ||
''' | ''' | ||
ver2.2. | ver2.2.1 2022/12/12恒心 | ||
当コードは恒心停止してしまったhttps://rentry.co/7298gの降臨ショーツイート自動収集スクリプトの復刻改善版です | 当コードは恒心停止してしまったhttps://rentry.co/7298gの降臨ショーツイート自動収集スクリプトの復刻改善版です | ||
18行目: | 18行目: | ||
・自動モードではユーザーは降臨ショー、クエリはなし、取得上限まで自動です | ・自動モードではユーザーは降臨ショー、クエリはなし、取得上限まで自動です | ||
・つまりユーザー入力が要りません | ・つまりユーザー入力が要りません | ||
・ffmpegが入っていると動画も自動取得しますが、無くても動きます | |||
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 | 〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜 | ||
48行目: | 49行目: | ||
from urllib.parse import quote, unquote, urljoin | from urllib.parse import quote, unquote, urljoin | ||
import warnings | import warnings | ||
import subprocess | |||
import requests | import requests | ||
366行目: | 368行目: | ||
##記録を中断するツイート | ##記録を中断するツイート | ||
def _stop_word(self) -> str: | def _stop_word(self) -> str: | ||
print(f" | print(f"ここにツイートの本文を入れる!すると・・・・なんとそれを含むツイートで記録を中断する!(これは本当の仕様です。)ちなみに、空欄だと{self.LIMIT_N_TWEETS}件まで終了しない。") | ||
end_str: Final[str] = input() ##ユーザー入力受付 | end_str: Final[str] = input() ##ユーザー入力受付 | ||
return end_str | return end_str | ||
422行目: | 424行目: | ||
print(f"{tweet_url}の画像が取得できませんでしたを 当職無能") | print(f"{tweet_url}の画像が取得できませんでしたを 当職無能") | ||
media_list.append(f"[[ファイル:(画像の取得ができませんでした)|240px]]") | media_list.append(f"[[ファイル:(画像の取得ができませんでした)|240px]]") | ||
# | # ツイートの動画の取得。ffmpegが入っていなければ手動で取得すること | ||
for i, video in enumerate(tweet_media.select('.attachment.video-container video')): | for i, video in enumerate(tweet_media.select('.attachment.video-container video')): | ||
tweet_url: str = urljoin(self.TWITTER_URL, re.sub('#[^#]*$', '', tweet.find(class_='tweet-link').get('href'))) ##ツイートのURL作成 | |||
if subprocess.run(['which', 'ffmpeg'], stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL).returncode != 0: | |||
print(f"ffmpegがないため{tweet_url}の動画が取得できませんでしたを") | |||
media_list.append(f"[[ファイル:(動画の取得ができませんでした)]]") | |||
else: # ffmpegがある場合 | |||
media_url: str = unquote(re.search(r'[^\/]+$', video.get('data-url')).group(0)) | |||
tweet_id: str = tweet_url.split('/')[-1] | |||
# 動画のダウンロード | |||
if self._proxy_is_needed: | |||
returncode: int = subprocess.run(f"yes N 2>/dev/null | ffmpeg -http_proxy {self.PROXIES['http']} -i \"{urljoin(self.NITTER_INSTANCE, media_url)}\" -c copy {os.path.join(self.MEDIA_DIR, tweet_id)}_{i}.ts &> /dev/null", shell=True).returncode | |||
else: | |||
returncode: int = subprocess.run(f"yes N 2>/dev/null | ffmpeg -i \"{urljoin(self.NITTER_INSTANCE, media_url)}\" -c copy {os.path.join(self.MEDIA_DIR, tweet_id)}_{i}.ts &> /dev/null", shell=True).returncode | |||
# 取得成功したらtsをmp4に変換 | |||
if returncode == 0: | |||
ts2mp4_returncode: int = subprocess.run(f"yes N 2>/dev/null | ffmpeg -i {os.path.join(self.MEDIA_DIR, tweet_id)}_{i}.ts -acodec copy -vcodec copy {os.path.join(self.MEDIA_DIR, tweet_id)}_{i}.mp4 &> /dev/null", shell=True).returncode | |||
if ts2mp4_returncode == 0: | |||
print(f"{os.path.join(self.MEDIA_DIR, tweet_id)}_{i}.mp4をアップロードしなければない。") | |||
else: | |||
print(f"{os.path.join(self.MEDIA_DIR, tweet_id)}_{i}.tsをmp4に変換してアップロードしなければない。") | |||
media_list.append(f"[[ファイル:{tweet_id}_{i}.mp4]]") | |||
else: | |||
print(f"{tweet_url}の動画が取得できませんでしたを 当職無能") | |||
media_list.append(f"[[ファイル:(動画の取得ができませんでした)]]") | |||
media_txt = '<br>\n' + ' '.join(media_list) | media_txt = '<br>\n' + ' '.join(media_list) | ||
return media_txt | return media_txt | ||
592行目: | 611行目: | ||
20件での実行例。 | 20件での実行例。 | ||
=== | === 12月10日 === | ||
{|class="wikitable" style="text-align: left;" | {|class="wikitable" style="text-align: left;" | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601539154256744449|2=https://archive.md/WjoU1}} | ||
|- | |- | ||
| | | | ||
なお、ひめかファンのワタクシ、ブロックされております。<br> | |||
<br> | <br> | ||
ひめかちゃんは整形なんかじゃない。<br> | |||
[[ファイル:FjnPLyyakAE4sD0.jpg|240px]] | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601542511302160384|2=https://archive.md/Fj5Fz}} | ||
|- | |- | ||
| | | | ||
今日もお疲れ。<br> | |||
<br> | |||
また明日な。<br> | |||
[[ファイル:FjnSWDPaMAA5QZM.jpg|240px]] [[ファイル:FjnSWDWakAAWrJa.jpg|240px]] [[ファイル:FjnSWDOakAAIcfE.jpg|240px]] | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601569138379718656|2=https://archive.md/iFdQ6}} | ||
|- | |- | ||
| | | | ||
{{Archive|1=https://youtu.be/QR6Gj0MKcew|2=https://archive.md/KnShQ|3=https://youtu.be/QR6Gj0MKcew}}<br> | |||
{{Archive|1=https:// | <br> | ||
直生人へ。 | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601572951463428096|2=https://archive.md/E5gO5}} | ||
|- | |- | ||
| | | | ||
菊地翔<br> | |||
<br> | |||
エクシアポケモン図鑑名:キングオブポンジひめに夢中。キングオブポンジキャバ中毒の最終形。<br> | |||
<br> | |||
一人称:オレ。<br> | |||
<br> | |||
得意技:インスタライブでおらつく。<br> | |||
ひめかに会いにいく。<br> | |||
逃げる。<br> | |||
ちょび髭を生やす。<br> | |||
写真を加工する。<br> | |||
アルファロメオに乗り換える。 | |||
|- | |||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601588268487041024|2=https://archive.md/5hWmc}} | |||
|- | |||
| | |||
日曜阪神11R 阪神JF<br> | |||
◎ブトンドール 4.5<br> | |||
◯ミスヨコハマ 5<br> | |||
▲リバーラ 4.5<br> | |||
△リバティアイランド 4<br> | |||
△アロマディオーサ 3.75<br> | |||
△ラヴェル 3.5<br> | |||
△ウインブライル 2.5<br> | |||
△ドゥーラ 1.5<br> | |||
△キタウイング 1.5 | |||
|- | |- | ||
|} | |} | ||
=== | === 12月11日 === | ||
{|class="wikitable" style="text-align: left;" | {|class="wikitable" style="text-align: left;" | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601859263928074240|2=https://archive.md/uLabW}} | ||
|- | |- | ||
| | | | ||
とんでもない目にあったが、香港マイルで復活した。<br> | |||
{{Archive|1=https://twitter.com/CallinShow/status/1601588268487041024|2=https://archive.md/5hWmc|3=https://twitter.com/CallinShow/status/1601588268487041024}}<br> | |||
{{Archive|1=https:// | [[ファイル:FjrygSpVQAEdzwR.jpg|240px]] | ||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601870854669094912|2=https://archive.md/ZVWEm}} | ||
|- | |- | ||
| | | | ||
今日は日曜日だ。エクシア合同会社のことについてツイートするのはやめようかと思ったんだ。<br> | |||
<br> | <br> | ||
みんなどう思う?<br> | |||
<br> | <br> | ||
<span style="display: inline-block; width: 30em; background: linear-gradient(to right, rgba(29, 155, 240, 0.58) 0 56%, transparent 56% 100%); font-weight: bold;">56% 菊地翔は詐欺師だからツイートして欲しい。</span><br> | |||
<br> | <span style="display: inline-block; width: 30em; background: linear-gradient(to right, rgb(207, 217, 222) 0 16%, transparent 16% 100%);">16% 関戸直生人が逃げているからツイートして欲しい。</span><br> | ||
<span style="display: inline-block; width: 30em; background: linear-gradient(to right, rgb(207, 217, 222) 0 5%, transparent 5% 100%);"> 5% 高橋佑佳は、いつも菊地の横にいるからツイートしろ。</span><br> | |||
<span style="display: inline-block; width: 30em; background: linear-gradient(to right, rgb(207, 217, 222) 0 23%, transparent 23% 100%);">23% ひめかさんへの応援メッセージお願いします。</span><br> | |||
<span style="font-size: small;">177 votes • Final results</span> | |||
|- | |||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601888790489886720|2=https://archive.md/cz02s}} | |||
|- | |||
| | |||
ジョーカー菊地<br> | |||
[[ファイル:FjsNVgTUAAAeZJu.jpg|240px]] | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601889110507278339|2=https://archive.md/Ux2Mj}} | ||
|- | |- | ||
| | | | ||
た、た、大変だーーーーー<br> | |||
<br> | |||
ひめかさんの今年の売り上げ目標10億<br> | |||
<br> | |||
言っちゃうんだな。<br> | |||
<br> | |||
そこだよ。<br> | |||
<br> | <br> | ||
いいところ。<br> | |||
<br> | |||
今それ言えちゃう、鬼メンタル。<br> | |||
<br> | |||
{{Archive|1=https://news.yahoo.co.jp/articles/7d3609cb0e6c284d5fae6301f35bf2f27573ef35?page=1|2=https://archive.md/xGrou|3=https://news.yahoo.co.jp/articles/7d3609cb0e6c284d5fae6301f35bf2f27573ef35?page=1}} | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601890607848296448|2=https://archive.md/GPcmz}} | ||
|- | |- | ||
| | | | ||
{{Archive|1=https://note.com/takahirokarasawa/n/na966edc6e6be|2=https://archive.md/XTXdU|3=https://note.com/takahirokarasawa/n/na966edc6e6be}}<br> | |||
{{Archive|1=https:// | <br> | ||
エクシア合同会社は改めまして詐欺会社です。 | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601904473906982913|2=https://archive.md/FMbN1}} | |||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | |||
|- | |- | ||
| | | | ||
いつも明るい菊地。<br> | |||
[[ファイル:1601904473906982913_0.mp4]] | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601915902538051584|2=https://archive.md/y4Fj1}} | ||
|- | |- | ||
| | | | ||
依頼者から送られてきたけど、何の情報か教えて欲しいな。<br> | |||
<br> | <br> | ||
エクシアの関係者なんでしょ。<br> | |||
[[ファイル:FjslywSUAAASvCt.jpg|240px]] | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601916198425309185|2=https://archive.md/CcEl6}} | ||
|- | |- | ||
| | | | ||
発信している情報は全部裏を取ってるんだよね。<br> | |||
{{Archive|1=https://twitter.com/CallinShow/status/1601915902538051584|2=https://archive.md/y4Fj1|3=https://twitter.com/CallinShow/status/1601915902538051584}} | |||
{{Archive|1=https://twitter.com/CallinShow/status/ | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601916490587901952|2=https://archive.md/FkDob}} | ||
|- | |- | ||
| | | | ||
いくつか大きなネタはあるんだけど、今はあたためてる。<br> | |||
<br> | <br> | ||
この事件は本当色んなことがあるんだ。 | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601949819404066816|2=https://archive.md/5vbUl}} | ||
|- | |- | ||
| | | | ||
菊地翔が夢に出てきた。<br> | |||
<br> | <br> | ||
オレも末期だな。<br> | |||
<br> | <br> | ||
なぜか、スナックで一緒にカラオケを歌ってた。 | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601954620204797953|2=https://archive.md/oJIT3}} | ||
|- | |- | ||
| | | | ||
3枚目と4枚目は微妙に口の開き方が違う。3枚目は「ね」、4枚目は「い」を発音しているときの口の開き方だ。<br> | |||
{{Archive|1=https://twitter.com/morumokoko/status/1601951502200774656|2=https://archive.md/Zgidz|3=https://twitter.com/morumokoko/status/1601951502200774656}} | |||
|- | |- | ||
|} | |} | ||
=== | === 12月12日 === | ||
{|class="wikitable" style="text-align: left;" | {|class="wikitable" style="text-align: left;" | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601955353792430081|2=https://archive.md/UVKrV}} | ||
|- | |- | ||
| | | | ||
エクシア合同会社のツイートの中に、岡ちゃんのツイートをリツイートしてしまってごめん。<br> | |||
< | <br> | ||
{{Archive|1=https:// | 本当に興味あるのは菊地翔じゃなくて岡ちゃんなんだ。<br> | ||
{{Archive|1=https://twitter.com/CallinShow/status/1601954620204797953|2=https://archive.md/oJIT3|3=https://twitter.com/CallinShow/status/1601954620204797953}} | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601958600259371011|2=https://archive.md/EY6da}} | ||
|- | |- | ||
| | | | ||
日曜日に誰もエクシア合同会社のことなんか、呟きたいなんて思わないのが普通だと思う。<br> | |||
<br> | <br> | ||
でも、エクシア合同会社が詐欺会社であり、皆んな許せないと思ってやってるんだ。<br> | |||
<br> | <br> | ||
エクシア合同会社を許してはいけない、そんな気持ちで我々会ったことのない大人達はつながっているんだ。 | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601959896252981249|2=https://archive.md/Jid3z}} | ||
|- | |- | ||
| | | | ||
ときにはふざけたツイートをしているように思うかもしれない。<br> | |||
<br> | |||
でも、本気なんだよ。<br> | |||
<br> | |||
1人でも多くの人に知ってもらって、その声が大きくなって、これが社会問題化して、ちゃんと法の裁きを受ける。<br> | |||
<br> | |||
その一心でいつもTwitterに臨んでいる。 | |||
|- | |- | ||
!{{CallinShowLink|1=https://twitter.com/CallinShow/status/ | !{{CallinShowLink|1=https://twitter.com/CallinShow/status/1601961096528613376|2=https://archive.md/V8jbu}} | ||
|- | |- | ||
| | | | ||
エクシア合同会社と闘う大人たちがやっていることは、Twitterを使った世直し運動なんだ。<br> | |||
<br> | <br> | ||
みんな正業があり、それぞれの生活の中で調べ、問題点を指摘し続けている。<br> | |||
<br> | <br> | ||
政治はまだこの問題を見過ごしているけれど、一万人700億円の話。<br> | |||
<br> | |||
これは人々が苦しんでいる話。<br> | |||
<br> | <br> | ||
だから皆んな立ち上がっている。 | |||
|- | |- | ||
|} | |} |