と言うことで、録画ファイルをiTunesへコピーする段階でファイル名を番組名にしようと思います。
データベース(MySQL)から抜いてくる
ブラウザで録画した番組リストを出した時の番組名とかは、MySQLのデータベースに記録されているので、そこから引っこ抜いてくればいいやと。
で、調べまして、wavecastのデータベースには、vidrecとかv_vidrecっていう録画した番組のレコードがあると。その中にvid_fileがファイル名、vid_nameが番組名らしいと。
そして作成したファイル名変換スクリプト”v_rename.py”が、こちら。
#! /usr/bin/python
# -*- coding: utf-8 -*-
import sys
import os
import re
path = sys.argv[1]
fname = re.sub(r'^.*/','',path) #パスを消す。os.path使う?
fname = os.path.basename(path) #パスを消す。
vname = fname = re.sub(r'-s.mp4$','',fname) #-s以降を消す
import MySQLdb
from MySQLdb.cursors import DictCursor
try:
con = MySQLdb.connect(host="127.0.0.1",charset="utf8",
db="XXX",user="XXX",passwd="XXX")
cur = con.cursor();
if cur.execute("select vid_name from vidrec where vid_file='"+fname+"'") > 0:
row = cur.fetchone()
vname = row[0] + fname.split('-')[2] # 日付追加
except:
cur.close()
con.close()
print vname
os.rename(path,path.replace(fname,vname))
(db,user,passwdは自分のに合わせて下さい。まあ皆同じだろうけれど)# -*- coding: utf-8 -*-
import sys
import os
import re
path = sys.argv[1]
fname = re.sub(r'^.*/','',path) #パスを消す。os.path使う?
fname = os.path.basename(path) #パスを消す。
vname = fname = re.sub(r'-s.mp4$','',fname) #-s以降を消す
import MySQLdb
from MySQLdb.cursors import DictCursor
try:
con = MySQLdb.connect(host="127.0.0.1",charset="utf8",
db="XXX",user="XXX",passwd="XXX")
cur = con.cursor();
if cur.execute("select vid_name from vidrec where vid_file='"+fname+"'") > 0:
row = cur.fetchone()
vname = row[0] + fname.split('-')[2] # 日付追加
except:
cur.close()
con.close()
print vname
os.rename(path,path.replace(fname,vname))
ファイルパスを受け取って、UHF??っていう名前だけにして検索して、ヒットした番組名に変換です。
直接os.rename()でやってますが、シェル上でやろうとすると日本語コードがらみで面倒くさいので変換までやります。ヒットしなければ同名のまま。っていう処理です。
pythonで書いてありますが、/root/task内処理がpythonベースなので揃えたまでです。
このままでも動きますが、ちょっとでも効率良く動いてもらうために
$ python -m compileall v_rename.pyってやって、pycの方を使うようにします。
$ chmod +x v_rename.pyc
cpとmvの間か
作ったスクリプトを、/root/taskに入れておいて、以前作ったitunesへのコピースクリプトが
cp $1 /media/nas1/iTunes/な感じなので、
mv /media/nas1/iTunes/*.m* '/media/nas1/iTunes/iTunes に自動的に追加'
cp $1 /media/nas1/iTunes/でいいかなっと。
python /root/task/v_rename.pyc /media/nas1/iTunes/UHF*
mv /media/nas1/iTunes/*.m* '/media/nas1/iTunes/iTunes に自動的に追加'
コピー後のファイルパスをちゃんと作って渡すのが面倒くさいのでUHF*ってことにして続きはOSに補完してもらうことにしました。
これで利用しやすくなるかな。
0 件のコメント:
コメントを投稿