YouTubeの登録チャンネルをフォルダ分けして並べ替えて整理するならFeedlyがおすすめ!
YouTubeチャンネル整理できない問題
YouTubeって本当に便利ですよね。各分野のプロたちの手元が見たいときに見れるんですから、数年前までは手に入らなかったような情報が得られます。
で、あれもこれもとチャンネル登録をしていくわけですが、YouTubeにはチャンネルをフォルダ分けしたり、分類したり、整理したりする機能がないので、大変な数のチャンネルを管理するのがとても面倒くさいし、低頻度で更新されるチャンネルは動画の海に流されて見落としたりしがちです。
トップページのおすすめ動画もぐちゃぐちゃ。
YouTubeとしては興味の幅を広げてもらって再生数を稼ごうという魂胆なのでしょうけれども、はっきりいってユーザーとしては微妙な気持ちになるじゃないですか。
拡張機能があるにはあるが...。
そこで検索すると軒並みおすすめされているのがPocketTubeです。
このようにフォルダをつくることが一応できます。
が、フルバージョンを使うには年額5000円ほどのサブスクリプションを契約する必要があります。ちょっと高くないですか?それに画面レイアウトが少し崩れるので個人的に気持ち悪い。
そこでFeedlyですよ!
Feedlyもサブスクリプションのプランがありますが、大半がスーパーヘビーユーザー向けの機能となっており、YouTubeのチャンネルを整理する目的では無料版ですべての機能が手に入ります。
FeedlyはRSSリーダーと言って、RSSというサイトの更新情報を拾ってきて、新着があれば表示してくれるものです。 YouTubeはRSSを使わせたくないようで、その存在を大っぴらにしていませんが、実はチャンネル毎のRSSを配信しています。
やっていきましょう
まずはフォルダを作っておきましょう
で、RSSのURLを見つけてこないといけないのですが、
こちらのサイトを参考にしてみましたが、うまくいきませんでした。一年ほど前の記事ですので、URLの仕様が変わっているようです。
そこで、強引にチャンネルのURLをFeedlyにぶち込みましょう。
するとサジェストされるので、FOLLOWをクリックして、指定のフォルダに分類しましょう。
こんな感じで表示されてFeedlyから再生することもできるし、YouTubeの該当ページに飛ぶこともできます。
並べ替えたり、様々なビューに切り替えたり、一つのチャンネルのフィードを複数のフォルダに関連付けることもできるので、低頻度のチャンネルも見逃しません。
素人が自分でライフログカメラを組んでみた(その2)
前回の記事はこちら
さてシステムの時間がUTCになっていては、写真の撮影日時が全部狂ってしまうので、管理に手間がかかりすぎます。
Linuxはほとんど触ったことがないので、ググっていきましょう。
Linuxのタイムゾーンの設定めんどくせぇ
前回の記事でシェルスクリプトに環境変数を入れてみましたが、うまく反映されないのでさらに調べたところ、シェルスクリプトには親子関係があり、親システムには子シェルスクリプトの設定が反映されないので意味がないとのこと。
それでこちらを試しましたが
/usr/share/zoneinfo/Asia/Tokyoが無い。
/etc/sysconfig/clockも見当たらない。
ファイルとディレクトリを作って再起動してみましたが、読み込みません。
はい、次。
/usr/share/zoneinfo/が見当たりません
timedatectl コマンドも通りません
次。
tzselectコマンドは通りません。
tzconfigコマンドも通りません。
はい次。
zshの設定ファイルに記述するとよいという情報が入ってきましたので検索
示されているどの設定ファイルも見当たりません。作って適当なディレクトリに置いてみましたが意味なし。
参ったのでシステムの設定を変えるのは諦めました。
pythonでExifをいじっていく
システムの時刻が変えられないなら自分で勝手な値を書き込んでしまいましょう。
試しに画像のExifを表示させようとしたところ、このカメラはメタデータを一切つけてくれないということが判明
前回の記事でUTCが表示されていたのは、撮影日時ではなく、ファイルの最終更新日時だったようです。
まずは日本の時刻を出していく
tz = datetime.timezone(datetime.timedelta(hours=9),name='JAPAN') d = datetime.datetime.now(tz)
時刻をもとにファイル名を付けてSDカードに写真を一旦保存する
filename = d.strftime('%Y-%m-%d %H-%M-%S') filepath = '/media/sdcard/'+filename+'.jpg' cv2.imwrite(filepath, frame) camera.release()
で、Exifを付加させたいわけですが、最初pyexiv2が使いやすそうだったのでインストールしたところ、32bitのシステムに非対応だということで使わせてもらえませんでした。
なので他にExifが書けるものが落ちてないか調べてpiexifを採用
プロパティDateTimeOriginalに、あらかじめ決められた書式で文字列をエンコードして渡す
exif_ifd = {piexif.ExifIFD.DateTimeOriginal: d.strftime('%Y:%m:%d %H:%M:%S').encode('utf-8')} exif_dict = {"Exif":exif_ifd} exif_bytes = piexif.dump(exif_dict)
先ほど一旦保存した写真を開いて、Exifを付けて上書き
im = Image.open(filepath) im.save(filepath, exif=exif_bytes)
これで撮影日時が記録されるようになりました。ただしファイルの更新日はUTCのままです。
どんどん使っていきましょう
ここでもうひと手間
やっぱり迷彩柄をつけました。逆に怪しいような気もしますが....。マッキーは色落ちが激しくて黒と水色のマダラになってしまった
ちょっとオーバーヒートが心配、あとメモリがギリギリなので画質下げた方がいいかもしれません。
連続使用時間ですが、2500mAhのバッテリーの電池残量表示のLEDが4つある内の1つを3時間くらいで消費しているので、フル充電するとおよそ12時間動くことになりそうです。旅行に行っても日中は持ちそうですね。
参考
素人が自分でライフログカメラを組んでみた
ライフログカメラの歴史?
以前私はNarrative Clipというライフログカメラを使っていました。ライフログカメラの先陣を切った製品です。
3cm四方の小さいクリップで、洋服の胸の辺りに固定しておくと、30秒おきに写真を一枚撮ってくれます。ディスプレイがついていないので、どんな写真が撮れているかは帰ってからのお楽しみですが、これがなかなか面白く、重宝していました。あの小ささで、バッテリーやストレージは余裕で1日持つ優れものでした。
ところが運営元が突然倒産。現在も画像のアップロードができるサブスクリプションのサービスは辛うじて生きているようですが、スマートフォンのアプリは2017年から一切メンテナンスがされていません。公式サイトは壊れたままで、また商品の在庫が復活することも結局ありませんでした。倒産直後にFacebookでNarrative clip loungeを立ち上げ、ユーザーのデータの保護に尽力してくれたアームストロング氏も2017年を最後に沈黙しています。
フリマアプリやヤフオクでたまにNarrative clipが出品されているのを見かけますが、このような状況では購入はお勧めできません。というのも、写真に付加される撮影日時とGPSの位置情報が記録されているJSONファイルが暗号化されており、不安定な状況におかれているサブスクリプションを有料で契約してアップロードしないと復元できないのです。
写真のEXIFには2000/1/1などと記録されており、大量の写真のEXIFを自分で修正してやらないと、撮影日時で写真を並べたときにぐちゃぐちゃになってしまうので、大変面倒です。
しかも後になって、Narrative clip は、バッテリーが劣化するとパンパンに膨らんでケースを飛び出して壊れてしまう代物であることが分かってきました。ですから私は事実上使えなくなったものとしてあきらめて処分しました。
Narrative clip loungeでは皆、代替品を探していました。Google Clips、Frontrow、Shonin、roader、canon ivy rec、Insta360 goなど。しかしすべてNarrative clipとは似て非なるものだったし、クラウドファンディングから卒業したらそれっきり販売しない製品もありました。
Insta360 go が出てきたときは「ついに後継者が現れた!」と思い購入しましたが、動画撮影が主な機能であり、電池は全然持たなくて数時間の使用が限界だし、タイムラプス機能があれど一枚一枚の写真として保存することはできず、操作性もなんだかいまいちで期待はずれでした。
そういうわけでずっとNarrative clipの後継機のことは頭の片隅にあったのです。
誰も作ってくれないから自分で作ろう
最近車のバックカメラを物色していたら、ふとNarrative clipのことを思い出しました。 それから近頃pythonを少し齧っていたので、マイコン素人ですが、ラズベリーパイを用いればなんとか似たようなことができるんじゃないかという気分になりました。
調べてみるとラズベリーパイ用のカメラモジュールというのがあるということと、ラズベリーパイゼロという小型の基盤もあるのだということを知りました。そして、ラズベリーパイゼロの公式ケースにはカメラ用の穴が開いていて、簡単に組み立てられるようになっているではありませんか! しかしながらラズベリーパイゼロシリーズは現在ほとんど新品は売っていないに等しく、メルカリには新古品が出ていたものの、かなり割高でした。また欠点として公式ケースはダサいデカい。カメラ感丸出しの穴。USBポートはmicroUSBなので、手持ちの有線キーボードや有線マウスがセットアップに使えない。miniHDMIとかいう中途半端な出力。
電源も問題でした。結構電気を食うらしく、3A出力のバッテリーが必要になるということで、身に着けるにはかなり野暮ったい。ゼロ用のバッテリーモジュールもあったのですが、さらに分厚くなるので、「ケースは3Dプリンターで作ってね!」とのこと。
ラズベリーパイピコにすると単三電池駆動も余裕らしいですが、こちらはそのままではSDカードが入りませんし、ネットにもデータを飛ばせません。SDカード用のモジュールなどを使うと結局持ち運びには不便な形状になっていきます。
私の技術力では限界なのでスイッチサイエンスのページを途方に暮れて適当に見ていたら、あったんです。面白そうなカメラ。
この大きさで、Linuxを積んでてスタンドアロンで動き、画像認識機能盛りだくさんの「M5Stack UnitV2 AI カメラ」でございます(もうちょっと良いレンズがつけられる上位モジュールもあったのですが、サイズが大きくなるのでやめました。それにカメラのレンズっぽくないほうがライフログカメラにとっては都合がいいのです)
欠点としては、バッテリーは積んでない。M5Stackのほかのモジュールはバッテリー搭載してるのに、こいつには搭載していない。なんでだよ...。なんでだよっていうか、積んでも消費電力との釣り合いがとれないから積まなかったんだろうけれど。 これについては小型のモバイルバッテリーを探して何とかするしかありません。リチウムポリマー電池は素人なので、怖いので却下。
本当はロボットなどに搭載して、センサーとして活用するものであって、撮影用のものではないのでしょうけれども、高度な機能は一切無視して写真撮影を頑張らせようと思います。
それホントにマイコンでやる必要ある?っていう作品が多い中で、ライフログカメラはやる意味があると確信しているからです。
セットアップしていきましょう(ハード編)
まずは下ごしらえに、不要になったカードを探してきます。今回の犠牲者はこちら!
ワールドプレミアムクラブです。いつどこで作ってもらった何のためのカードなのか全然思い出せません。そこでググってみるとサジェストに...
あははw誰も知らないんだw
パンチで適当に穴をあけて落下防止用の紐を括り付けます。それから磁石を用意します。
しっかりしたケースに入っていました。
磁石6個に両面テープ7個、思いやりで予備を入れたのか、単にうっかりなのか。
これらを貼り付けていき、世界のプレミアムなクラブにします。
それからこうしておきます。で、バッテリーを準備します。
期待していなかったバッテリーだが意外としっかりしている。
厚さ4㎜ということだが、かなり薄く感じる。それを
こうします。やったーネオジムバーガーの完成だ!
ですがこのままだとへんてこりんで目立ちますし触り心地も悪いので、カモフラージュしていきましょう
それぞれ適当に巻きます。 これで服を挟んで胸元に固定しようというわけです。
ちょっとでかいけどまあいっか。なにか変なものが付いてるがそれが何であるかはわかりませんからね!
とやかくしているうちに無限大のアイディアが届きました。
おや、付属品のリストには無かったSDカードが付いてきていますね、ラッキー。
ブルーは綺麗だけど目立つのでマッキーでカモフラージュしていきましょう。迷彩柄の包帯は、巻くとSDカードスロットなどのインターフェースにアクセスできないので諦めました。
モバイルバッテリーにくっつけてとりあえず完成ということにします。
セットアップしていきましょう(ソフト編)
まずは素人なりに写真を撮るプログラムを作りましょう。
import cv2 import time import datetime time.sleep(60) while True: camera = cv2.VideoCapture(0) camera.set(cv2.CAP_PROP_FPS, 30) camera.set(cv2.CAP_PROP_FRAME_WIDTH, 1600) camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 1200) ret, frame = camera.read() d = datetime.datetime.now() filename = d.strftime('%Y-%m-%d %H-%M-%S') cv2.imwrite('/media/sdcard/'+filename+'.jpg', frame) camera.release() time.sleep(30)
これが最適解かどうかは知りませんがSDカードに30秒おきに、電池が切れるまで写真を保存し続けます。 では試しにやってみましょう。
うわあ、大変ですタイムスリップしています。ネットにつなげてサーバーから時刻を持ってきましょう。
/etc/dhcpcd.conf
denyinterfaces eth0 wlan1 br0 interface wlan0 static ip_address=192.168.0.222 static routers=192.168.0.1 static domain_name_servers=192.168.0.1
カメラのIPアドレスを固定してルーターとDNSのIPアドレスを書き込む
/etc/wpa_supplicant.conf
network={ ssid="xxxxx_nomap" psk="password" }
皆さんもおうちのWi-FiのSSIDには_nomapを付けていきましょう
/tmp/resolv.conf
# Generated by dhcpcd from wlan0.dhcp # /etc/resolv.conf.head can replace this line nameserver 192.168.0.1 # /etc/resolv.conf.tail can replace this line
ネームサーバのアドレスを書き込む
/etc/ntp.conf
server -4 ntp.nict.jp server -4 ntp1.jst.mfeed.ad.jp server -4 ntp2.jst.mfeed.ad.jp server -4 ntp3.jst.mfeed.ad.jp # Allow only time queries, at a limited rate, sending KoD when in excess. # Allow all local queries (IPv4, IPv6) restrict default nomodify nopeer noquery limited kod restrict 127.0.0.1 restrict [::1]
NTPサーバーを変えておく
┌──────────────────────────────────────────────────────────────────────┐ │ • MobaXterm Personal Edition v22.0 • │ │ (SSH client, X server and network tools) │ │ │ │ ➤ SSH session to root@192.168.0.222 │ │ • Direct SSH : ✔ │ │ • SSH compression : ✔ │ │ • SSH-browser : ✔ │ │ • X11-forwarding : ✘ (disabled or not supported by server) │ │ │ │ ➤ For more info, ctrl+click on help or visit our website. │ └──────────────────────────────────────────────────────────────────────┘
Wi-Fiにつながったようです。どうだ?
unitv2# date Wed Apr 20 09:28:12 UTC 2022
JSTにしたいですね。ところが調べた通りにやってもどうもうまくいかず、そもそも指定されたファイルが存在しなかったりして苦戦しました。なので不格好ですがシェルスクリプトで起動時に写真を撮るコードと一緒に毎回コマンドを呼び出すことにしました。
/etc/init.d/S97camera
export TZ=JST-9 python /media/sdcard/camera.py
ファイル名はうまく時刻通りになっていますがExifがUTCのままです、面倒くさくなってきました。 あとこのカメラ、画角がかなり狭いですね(narrative clip 比)
おっと熱々です。今日はつかれたのでここまで。詳しい人いろいろ教えろください。
続き
参考
【失敗】NOV(ノブ)のにきび肌ケア商品は効かないので素直に皮膚科へ行け
GATSBYのアクネケアフォームは使っているけど...
私のしょうもない青春はとっくに終わっているというのに、いや始まらなかったのか。とにかくニキビができやすい。あごの周囲に頻繁に大きなニキビができて膿が出る。髭剃りもしにくい。簡単にドラッグストアで手に入るGATSBYのアクネケアフォームは使っているけど...
こいつ、洗顔すればそれなりに爽快感はあるものの、ニキビができなくなるわけではない。一度おためしあれ。
たまたま皮膚科へ
あきらめていたのでニキビのことは全く考えていなかったのですが、体部白癬になってしまったので、皮膚科に行きました。すると待合室にはNOV(ノエビア)のにきび肌ケア商品のパンフレットが置いてありました。
これだ!と思ってスマホからその場で注文しました。
グレードがいくつかありますが、一番下のグレードが男性にもおすすめされていたので、それにしました。化粧水って実はあまり意味がないらしいですが、一応どんなものかと思って化粧水・洗顔料・保湿ジェルの3点セットを購入。
低刺激を売りにしているだけあって、肌がつっぱる感じもなく自然な使い心地。ですが、ニキビができなくなるわけではない。
個人差があると言われればそれまでですが、価格も考えるとねぇ...。
再び皮膚科へ
「先生、体部白癬は兎も角、おいてあるパンフレットに紹介されていた洗顔料なんですけど、全然ニキビに効きません!」と興奮気味に相談。
すると「あれはニキビには効きませんよ」と一刀両断されてしまいした。
「ニキビの薬も出しておきますよ、では。(早く出ていけ感)」ということであっさり出てきたのがこちら
ダラシンTゲルです。
これが抜群の効果をあげ、1週間もしないうちにニキビがほとんどできなくなりました。
塗りすぎると耐性菌が増殖するとのことで、使用量は抑えて、ニキビがまたできるようなら塗るのがよいそうなのでそのようにして使用しています。
もっとはやく皮膚科に行けばよかったと思いました。
おまえらも適当な商品を買わされる前に皮膚科に行ってこい。
【失敗】安くてもAmazonのFire HD タブレットは買うな!
ホーム画面が変えられない
通知が来ない
Wi-Fi掴まない
横持ち前提
スリングバッグ(ボディバッグ)NIID Radiant R0 Plusが最高なので紹介したい
Amazonで探すと出てくるのは怪しい感じの中華製品ばかり。楽天で探すとダサいものばかり。高級ブランドは使い勝手を無視。小さめがトレンドで荷物が大して入らない。はあ何とかなりませんかねえ
そこでNIID Radiant R0 Plusです。
ミニマルなデザインで悪くないでしょう?
ベルトは金具で分轄できるようになっていて、簡単に着脱できる。これが無いボディバッグだと一々首を通さなければならないので面倒くさい。この差はでかいです。
表から見ても上から見ても、ファスナーが何処にあるのか、一見してわからないようになっています
サイドに折りたたみ傘を濡れたまま入れることができるポケット
前側のラグビーボール型の大きいポケットにはガジェット類をざっくり入れています
後側の四角いポケットの中央はマチが5cmくらいあり、筆記具やカードケースを入れています。
なんとDELLの13インチの小型PCが超ギリギリピッタリ入ります。ファスナーは閉まるが角がちょっと怖い。
4つのポケットがあり、手帳、モバイルルーター、常備薬、ポケットティッシュなどを入れています。
タブレット専用のふわふわなポケットがあります。画像のタブレットはGalaxy Tab S6(10.5インチ)余裕があります
一番背中側の盗難防止ポケットにお財布。ジッパーはなくマグネットで閉じます
お財布の下に取っ手が見えますね?これがあるのとないのとでは使いやすさに雲泥の差があるのです
全部でこれだけ入っておりました
日本語でもGoogleアシスタント経由でTodoistにタスクを追加する方法
2022/8/4
注意!Google側の仕様変更によりこの記事に掲載している方法は近いうちに使用できなくなります。
2022/9/9
IFTTTのgoogle assistant v1 のサポートは8月をもって終了しました。
また対話型アクション自体の廃止が来年6月に決定した模様です。非常に残念ですね。
Conversational Actions sunset overview | CA sunset | Google Developers
Todoリストを使っている皆さん、リストに追加したいタスクを思いついてもすぐに入力できないときってありますよね?
引き続き他のことに取り組んでいると、タスクを追加すること自体を忘れてしまい、どんなタスクを追加したかったのか思い出せないなんてことになります。
GoogleアシスタントからTodoリストにタスクを追加できれば、思いついて忘れないうちに車の中でも、家事の最中でも手軽にタスクを追加できるので、便利だと思いませんか。
Googleアシスタントのリマインダーとリスト
Googleアシスタントには標準のリマインダー機能とリスト機能があります。
ですが、リマインダーとリストのほかにGoogleアシスタントからは使えないGoogleToDoも用意されており、3つの中でどれを使ったらいいんだよ、ということになります。
せめてリマインダーとGoogleToDoが統合されれば使いやすいのですが、これはGoogleの常套手段、似たようなサービスを複数のチーム作らせて社内で競争をさせているらしいのです
Todoist
そこで流石はTodoist、Googleアシスタントに対応しております、が...
英語だけかよ!
そう現状英語にしか対応していないのでした。
じゃあ、Amazonのアレクサは?
こちらはTodoistと日本語で連携できますが...
Alexa 専用のプロジェクトが作られて、その中にどんどんタスクが入っていきます。
俺は既存のプロジェクトにタスクを追加したいんだよ!
IFTTT
諦めるのはまだ早いですよ皆さん、IFTTTを使えば、簡易的にではあるもののちゃんと日本語でGoogleアシスタントからTodoistをいじれます
私の作ったアプレットをここに置いておくので、これを使っても構いません
自分でやりたい方はまずIFにGoogleアシスタントを連携して、こんな感じで設定します
次にTHENにTodoistを連携させて、以下のように設定します
これで「やることに○○を追加」とGoogleアシスタントに
話しかければ今日のタスクがinboxに追加されるようになります。