Большой Воронежский Форум
Страница 1 из 2
1 2 >
» UNIX и дериваты>как переименовать файл mp4 в соответсвии с тегами?
dm.tsvetkov 16:11 25.03.2013
здорово, парни.

есть видеофайл с полностью заполненными itunes тегами, но с названием типа d9c06d850adc3d20e6253a18f627e515.mp4.
как переименовать его, взяв информацию из тега?

справку по MP4Box не могу осилить.

если это важно, то файл скачивается hpodder, в процессе закачки hpodder теги видит:

Сообщение от :
media@media-server:~/serials$ hpodder fetch
3 podcast(s) to consider

Get: 1 2 Broke Girls
Get: 2 The Big Bang Theory
Get: 3 Borgias
100% 0 B/s 0s
147 episode(s) to consider from 3 podcast(s)
Get: 2.2 s01e02 – The Big Bran Hypothesis [HD] [Кураж Бамбей]
Get: 2.3 s01e03 – The Fuzzy Boots Corollary [HD] [Кураж Бамбей]
Get: 2.4 s01e04 – The Luminous Fish Effect [HD] [Кураж Бамбей]
Get: 2.5 s01e05 – The Hamburger Postulate [HD] [Кураж Бамбей]
Get: 2.6 s01e06 – The Middle Earth Paradigm [HD] [Кураж Бамбей]

[Ответ]
silly 19:31 25.03.2013
Ммм… Есть какие-то проблемы с namingpatt или postproccommand? [Ответ]
dm.tsvetkov 22:06 25.03.2013

Сообщение от silly:
Есть какие-то проблемы с namingpatt или postproccommand?

да, есть. ниосилил. [Ответ]
dm.tsvetkov 22:09 25.03.2013

Сообщение от silly:
postproccommand

как я понимаю, эту секцию прописать можно было бы, но вот что прописывать я не знаю.
что-то, что прочитает теги и впишет в файл. а что конкретно?
вывод mediainfo? [Ответ]
dm.tsvetkov 16:05 26.03.2013

Сообщение от silly:
namingpatt

спасибо!
пусть и не сразу, но догадался, как использовать эту опцию.
она, конечно, создает ощущение некой костыльности, но почти работает.
почему почти?
потому, что название серии в фиде выглядит так:

Сообщение от :
2 64 Pend s04e01 – The Robotic Manipulation [HD] [Кураж Бамбей]

после того, как добавить секцию

Сообщение от :
namingpatt = %(safeeptitle)s.mp4

скаченный файл выглядит так:

Сообщение от :
s04e01__The_Robotic_Manipulation__HD___C@06_0<1 59_.mp4

Сообщение от :
_C@06_0<159_

- это "Кураж Бамбей", прошедший через опцию safeeptitle.
а как обойти эту опцию-то? [Ответ]
silly 20:20 26.03.2013

Сообщение от dm.tsvetkov:
пусть и не сразу, но догадался, как использовать эту опцию.

Полезно еще взглянуть на настройки по умолчанию: https://github.com/jgoerzen/hpodder/.../Config.hs#L59 .

Честно говоря, я никогда не пользовался этой программой. Сейчас вот собрал из исходников и погонял немного, ситуации с кириллицей в консоли и мусором в именах файлов не наблюдаю, у меня везде мусор, включая hpodder.db

Можно глянуть на кусок вывода hpodder --debug fetch для какого-нибудь одного файла?
[Ответ]
dm.tsvetkov 09:18 27.03.2013

Сообщение от silly:
Полезно еще взглянуть на настройки по умолчанию:

дык, по умолчанию hpodder просто файл качает...

Сообщение от silly:
Сейчас вот собрал из исходников

а подо что собрал? не убунту amd 64?
ему для сборки какая-то библиотека нужна, которая по зависимостям 300 метров тянет, а у меня / всего 3 гига. потому я из стандартных репозитариев версию ставил.

Сообщение от silly:
hpodder.db

так это же база данных, у меня тоже в nano там сплошной мусор, с редкими вкраплениями url.
редактирование файла на прямую приводит к неработоспособности программы. разве так не должно быть?

Сообщение от silly:
Можно глянуть на кусок вывода hpodder --debug fetch для какого-нибудь одного файла?

обязательно выложу, но вечером.

скажи, а у тебя нет мыслей что за Per-Podcast Command Options такой? у него есть опция EPTITLE куда ее "пхать"? [Ответ]
silly 10:22 27.03.2013

Сообщение от dm.tsvetkov:
а подо что собрал? не убунту amd 64?
ему для сборки какая-то библиотека нужна, которая по зависимостям 300 метров тянет, а у меня / всего 3 гига. потому я из стандартных репозитариев версию ставил.

Arch linux, amd64, бинарные пакеты ghc и cabal-install, сборка из вот этого форка командой cabal install с установкой в ~/.cabal. В системе стоят еще какие-то пакеты с префиксом haskell-, поставленные уже не помню зачем, может из них тоже что-то нужно, хз.

Просто из репозитария поставить нельзя, иначе бы я не стал дергаться, естественно. Из aur объективно поставить это было бы сложнее.

Что касается зависимостей, их реально много только на этапе сборки, бинарник относительно самодостаточен:
Код:
$ ldd hpodder
	linux-vdso.so.1 (0x00007fff9c315000)
	libsqlite3.so.0 => /usr/lib/libsqlite3.so.0 (0x00007fa5874e2000)
	librt.so.1 => /usr/lib/librt.so.1 (0x00007fa5872da000)
	libutil.so.1 => /usr/lib/libutil.so.1 (0x00007fa5870d7000)
	libdl.so.2 => /usr/lib/libdl.so.2 (0x00007fa586ed3000)
	libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007fa586cb7000)
	libgmp.so.10 => /usr/lib/libgmp.so.10 (0x00007fa586a48000)
	libm.so.6 => /usr/lib/libm.so.6 (0x00007fa58674e000)
	libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007fa586539000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007fa586192000)
	/lib/ld-linux-x86-64.so.2 (0x00007fa58778d000)

Сообщение от dm.tsvetkov:
так это же база данных, у меня тоже в nano там сплошной мусор, с редкими вкраплениями url.
редактирование файла на прямую приводит к неработоспособности программы. разве так не должно быть?

Это sqlite 3 бд. Открывать можно, например, вот этим: https://addons.mozilla.org/ru/firefo...qlite-manager/. Под мусором я понимаю покореженную кириллицу, а не результат открывания файла в nano.

Сообщение от dm.tsvetkov:
скажи, а у тебя нет мыслей что за Per-Podcast Command Options такой? у него есть опция EPTITLE куда ее "пхать"?

Это переменные окружения. Я не уверен, что здесь можно еще сказать. [Ответ]
dm.tsvetkov 16:39 27.03.2013

Сообщение от silly:
командой cabal instal

этот самый кабал и потянул у меня 300 метров. ну его.

Сообщение от silly:
Открывать можно, например

я не стал устанавливать firefox, скачал какую-то софтинку. вот ее скрин:

кирилица на месте. может, дело в чем-то другом? [Ответ]
dm.tsvetkov 20:40 27.03.2013

Сообщение от :
media@media-server:~$ hpodder fetch
20 podcast(s) to consider

Get: 1 2 Broke Girls
Get: 2 The Big Bang Theory
Get: 3 Borgias
Get: 4 American Dad
Get: 5 Breaking Bad
Get: 6 New Girl
Get: 7 South Park
Get: 8 Game of Thrones
Get: 9 The Walking Dead
Get: 10 The Simpsons
Get: 11 Two and a Half Men
Get: 12 Elementary
Get: 13
Get: 14
Get: 15
Get: 16
Get: 17
Get: 18
Get: 19
Get: 20
100% 0 B/s 0s
590 episode(s) to consider from 20 podcast(s)
Get: 1.20 s02e20 – And the Big Hole [HD] [BraveSound]
Get: 5.3 s01e03 – ...And the Bag's in the River [HD] [LostFilm]
0% [5.3 1GB/1GB 89%] 2MB/s 2d23h

а если бы перевод был от кураж-бамбей, то в квадратных скобках было бы [Кураж Бамбей] [Ответ]
silly 21:22 27.03.2013
Код:
$ cat ~/.hpodder/hpodder.conf 

[general]

; The following line tells hpodder that
; you have already gone through the intro.
showintro = no
Код:
$ cat ~/podcasts/sample-podcast.xml 
<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
	<channel>
			<title>Как бы тест</title>
		<item>
			<title>Гугл</title>
			<enclosure url="http://www.google.ru/images/srpr/logo4w.png" length="0" type="image/png" />
		</item>
		<item>
			<title>Яндекс</title>
			<enclosure url="http://yandex.st/morda-logo/i/logo.png" length="0" type="image/png" />
		</item>
	</channel>
</rss>
Код:
$ ./hpodder add file:///home/[[вырезано]]/podcasts/sample-podcast.xml 
Podcast added:
    URL: file:///home/[[вырезано]]/podcasts/sample-podcast.xml
    ID: 1
Код:
$ ./hpodder fetch
1 podcast(s) to consider

Get: 1                                                                         
100%                                                                   1 B/s 0s
2 episode(s) to consider from 1 podcast(s)
Get: 1.2 Гугл                                                              
Get: 1.1 Яндекс                                                          
100%                                                                   4KB/s 0s
Код:
$ ls ~/podcasts/Как_бы_тест/
logo4w.png  logo.png
Собственно, что здесь происходит мне примерно понятно: фид в utf-8 интерпретирован как iso-8859-1. Не понятно, почему у вас наблюдается другое поведение программы.

Сообщение от dm.tsvetkov:
а если бы перевод был от кураж-бамбей, то в квадратных скобках было бы [Кураж Бамбей]

А с --debug все-таки? [Ответ]
dm.tsvetkov 13:47 28.03.2013

Сообщение от Spirituals:
То-есть, ну, она вытягивает данный по определенному шаблону из mp4, скрипт проходится по папке и переименовывает файлы согласно результату работы puddletag.

и...? 8 символов [Ответ]
dm.tsvetkov 19:49 28.03.2013

Сообщение от Spirituals:
А с --debug все-таки?

вообще нет кириллицы:

Сообщение от :
media@media-server:~$ hpodder --debug fetch
DB preparation complete
21 podcast(s) to consider

0% 0 B/s 0sBeginning download of /home/media/.hpodder/feedxfer/ec022ec4a88fd5b4081e0
Get: 1 2 Broke Girls
0% [1 0 B/1 B 0%] 0 B/s 0scurl returned successfully; new size is Just 29944
*** 1: Message on http://soap4.me/podcast/soap-268/qua...e72ad0d9466e/:
Running: curl ["-A","hpodder v1.0.0; Haskell; GHC","-s","-S","-L","-y","60","-Y","1","--retry","2","-f","http://soap4.me/podcast/soap-268/quality-2/translate-95/8b609e937e72ad0d9466e/","-o","/home/media/.hpodder/feedxfer/ec022ec49e7a88f081e0"]

0% 0 B/s 0sDownload complete
Got feed
updateEnc running on item Item {itemtitle = "s02e01 \8211 And the Hidden Stash [HD] [BraveSound]", itemguid = Just "http://storage1.soap4.me/podcast/268/2/95/22553/91e389b1d7ad714624d8da/8b6041e6088c5e89e937e72ad0d9466e/de6c9b82c8b1dbbd8a9.mp4", enclosureurl = "https://cdn-n1.soap4.me/podcast/268/2/95/22553/91e389bd65948da/8b6041e6937e72ad0d9466e/de6c9e5bc378bc2db8b1dbbd8a9.mp4", enclosuretype = "video/mp4", enclosurelength = "532833446"}
update done
addEpisode: epid: 21
addEpisode: running insertEpisode
addEpisode returned
updateEnc running on item Item {itemtitle = "s02e02 \8211 And the Pearl Necklace [HD] [BraveSound]", itemguid = Just "http://storage1.soap4.me/podcast/268/2/95/22561/62cf070f9b94165c8aa39e76/8b6041e6088c5e89ed0d9466e/de45da10e4a0a4fd130331fc63.mp4", enclosureurl = "https://cdn-n1.soap4.me/podcast/268/2/95/22561/62cf070f98aa39e76/8b6041e6088c5e89e937e72d9466e/de45da10e4a07053cea4331fc63.mp4", enclosuretype = "video/mp4", enclosurelength = "537406673"}
update done

[Ответ]
dm.tsvetkov 20:00 28.03.2013
Spirituals, возьми себя в руки и разберись с mediainfo, будь мужиком, блеадь!!!
а вот, кстати, и ссылка на скаченный файл:
https://dl.dropbox.com/u/2424816/s01..._HD___Ozz_.mp4
и картинка, как он в itunes выглядит:

и вывод медиаинфо:

Сообщение от :
media@media-server:~/serials/New Girl$ mediainfo -i s01e01_^S_Pilot__HD___Ozz_.mp4
General
Complete name : s01e01__Pilot__HD___Ozz_.mp4
Format : MPEG-4
Format profile : Base Media / Version 2
Codec ID : mp42
File size : 572 MiB
Duration : 24mn 2s
Overall bit rate mode : Variable
Overall bit rate : 3 328 Kbps
Movie name : Pilot
Album : New Girl, Season 1
Track name/Position : 1
Track name/Total : 0
Performer : New Girl
Genre : Comedy
Recorded date : 2011-09-20
Encoded date : UTC 2012-03-31 21:24:37
Tagged date : UTC 2012-03-31 23:52:46
Writing application :
Cover : Yes
Comment :
hdvd : 1
stik : 10
desc : After leaving her long-time boyfriend, Jess moves into an apartment with three men, and tries to re-enter the dating world.
tvnn : FOX
tvsh : New Girl
tvsn : 1
tves : 1
tven : 101

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : [email protected]
Format settings, CABAC : No
Format settings, ReFrames : 4 frames
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 24mn 2s
Bit rate mode : Variable
Bit rate : 3 000 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate mode : Variable
Frame rate : 23.976 fps
Minimum frame rate : 23.810 fps
Maximum frame rate : 24.390 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.136
Stream size : 515 MiB (90%)
Writing library : x264 core 112
Encoding settings : cabac=0 / ref=2 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=1 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=2 / keyint=240 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=40 / rc=abr / mbtree=1 / bitrate=3000 / ratetol=1.0 / qcomp=0.60 / qpmin=3 / qpmax=51 / qpstep=4 / vbv_maxrate=9500 / vbv_bufsize=9500 / ip_ratio=1.40 / aq=1:1.00 / nal_hrd=none
Encoded date : UTC 2012-03-31 21:24:37
Tagged date : UTC 2012-03-31 21:48:46
Color primaries : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics : BT.709-5, BT.1361
Matrix coefficients : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

Audio #1
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 24mn 2s
Bit rate mode : Variable
Bit rate : 160 Kbps
Maximum bit rate : 279 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 27.5 MiB (5%)
Language : Russian
Encoded date : UTC 2012-03-31 21:24:37
Tagged date : UTC 2012-03-31 21:48:45

Audio #2
ID : 3
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : 40
Duration : 24mn 2s
Bit rate mode : Variable
Bit rate : 160 Kbps
Maximum bit rate : 272 Kbps
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 48.0 KHz
Compression mode : Lossy
Stream size : 27.5 MiB (5%)
Language : English
Encoded date : UTC 2012-03-31 21:24:37
Tagged date : UTC 2012-03-31 21:48:45

silly, сказать честно, баги за авторами программ ловить - дело не благодарное.
тут скрипт нужен... [Ответ]
silly 20:59 28.03.2013

Сообщение от dm.tsvetkov:
silly, сказать честно, баги за авторами программ ловить - дело не благодарное.

Слишком поздно Вот соответствующее изменение (которое все портит). Вообще говоря, никакой специальной поддержки различных кодировок в hpodder нет, readfile просто читает файл в соответствии с системной локалью.

Получаем:

Get: 3.1 s01e01 – Pilot [HD] [Кураж Бамбей]

Файл 1_–_Pilot__HD___Кураж_Бамбей_.mp4 для шаблона %(safeeptitle)s.mp4

Именно вашей проблемы по-прежнему не видно o_O [Ответ]
dm.tsvetkov 22:23 29.03.2013

Сообщение от silly:
Слишком поздно Вот соответствующее изменение (которое все портит). Вообще говоря, никакой специальной поддержки различных кодировок в hpodder нет, readfile просто читает файл в соответствии с системной локалью.

Получаем:

Get: 3.1 s01e01 – Pilot [HD] [Кураж Бамбей]

Файл 1_–_Pilot__HD___Кураж_Бамбей_.mp4 для шаблона %(safeeptitle)s.mp4

Именно вашей проблемы по-прежнему не видно o_O

эмм... я не понял. [Ответ]
silly 23:07 29.03.2013

Сообщение от dm.tsvetkov:
эмм... я не понял.

После починки кириллицы имена файлов абсолютно нормальные, ошибки с C@06_0<1 59 нет, где копать не знаю. [Ответ]
dm.tsvetkov 16:51 30.03.2013
так, парни, чет я запутался. давайте по порядку:

Сообщение от silly:
После починки кириллицы имена файлов абсолютно нормальные, ошибки с C@06_0<1 59 нет, где копать не знаю.

а как ты кириллицу починил? применил к исходникам патч по ссылке и после сборки все заработало?


Сообщение от Spirituals:
И что? Вы же написали в первом посте, что есть файл вида xxxx.mp4, но с тегами (и на русском языке) заполненных в каком-то итюнс.

ты не уловил сути диалога. речь шла о том, что у
silly hpodder по умолчанию совсем не дружил с кириллицей. просто забудь.


Сообщение от Spirituals:
Тогда надо понять почему файлик не сохраняется как он представлен в вашем листинге, dm.tsvetkov? Я правильно вас понял?

да.
по сути есть две проблемы:
1) hpodder, после включения опции namingpatt = %(safeeptitle)s.mp4 зачем-то добавляет в название информацию из фида о озвучке, корявя ее.
(если я понял, баг решается патчем, ждем подтверждение от silly.)
2) как сама работает эта опция тоже не радует... что это за "пробелобоязнь"?
потому от тебя, как от понимающего человека, хотелось бы получить скрипт, пробегающий по папкам, берущий, скажем из mediainfo, информацию из тегов и прописывающий ее в название файла.
это было бы идеальным решением - тогда сериалы бы можно было бы качать чем угодно, а твой супер скрипт все правил бы.


Сообщение от Spirituals:
Или я опять не то что-то делаю??

это надо проверить...
покажи, для начала, конфигурационный hpodder.conf


Сообщение от Spirituals:
а как скачать этот подкаст с кураж бамбаем?

а никак. владельцы сервиса как-то и зачем-то нагуглили эту дискуссию и потребовали от меня убрать ссылку с моим токеном. [Ответ]
silly 21:22 30.03.2013

Сообщение от dm.tsvetkov:
а как ты кириллицу починил? применил к исходникам патч по ссылке и после сборки все заработало?

Сообщение от dm.tsvetkov:
1) hpodder, после включения опции namingpatt = %(safeeptitle)s.mp4 зачем-то добавляет в название информацию из фида о озвучке, корявя ее.

Заменил openBinaryFile на readFile. В убунте hpodder собран как раз с readfile, так что вашу проблему это не решает. [Ответ]
silly 21:32 30.03.2013
Spirituals, вы точно уверены, что у вас с ТС одинаковые версии пакетов?

Кириллица с опцией --debug у вас должна выглядеть вот так:
Код:
$ ghci
GHCi, version 7.4.2: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> "Йцукен"
"\1049\1094\1091\1082\1077\1085"
Prelude> putStrLn "\1049\1094\1091\1082\1077\1085"
Йцукен
[Ответ]
dm.tsvetkov 17:14 01.04.2013

Сообщение от Spirituals:
Обычный файл по умолчанию.

ааа... так у тебя файлы изначально поименованы.

Сообщение от Spirituals:
Серьезные ребята.

ну, первое правило бизнеса гласит - "защищай свои инвестиции".

Сообщение от Spirituals:
Вы какие теги имели ввиду? Сначала я подумал, что вы имеете ввиду теги внутри контейнера mp4

начальная мысль правильная.

Сообщение от Spirituals:
Они же там есть?

дык, ты же сам их рассматривал.

Сообщение от Spirituals:
Я так понял, есть тег title. Это вы видите во время закачивания файлика в hpodder. А есть собственно имя файлика. Оно может не совпадать с title.

спасибо, кэп.
эта ситуация описана в первом сообщении.

Сообщение от Spirituals:
На вашем сервисе имена в кракозябрах изначально?

в смысле?
не крякозябры, в какой-то буквенно-цифровой код.
опять же, см. первое сообщение.

Сообщение от Spirituals:
Почему?

потому, что для нормальных людей это не важно. с "моей" проблемой сталкиваются только линукс-извращенцы.


Сообщение от Spirituals:
Получается сервис кривой, а не хеподер виноват?

блин, никит, ну ты же читать умеешь, да?
кривой hpodder.
сервис по подкасту отдает файлы с неудобочитаемыми файлами вида 9c06d850adc3d20e6253a18f627e515.mp4.
но, в файле, в соответствии со всеми спецификациями atom moov, прописаны все теги, включая даже обложки.
пользователи нормальных ос подписываются на подкасты в itunes и получают наглядную библиотеку видео.

пользователи линукс, как всегда, сидят в каменном веке и любят смотреть не фильмы, а запускать файлы.
потому, блин, по умолчанию, hpodder качает тупо файл.

все бы ок, но в другом линуксе, на котором работает моя дюна, тоже еще бронзовый век, потому она не может показывать теги.

создатель hpodder, как я понимаю, вот-вот научится плавить железо, и потому придумал костыли:
http://jgoerzen.github.com/hpodder/h...odder.man.html
при включении опции safeeptitle

Сообщение от :
[general]

; The following line tells hpodder that
; you have already gone through the intro.
showintro = no

[1]
downloaddir = /home/media/serials/2 Broke Girls
namingpatt = %(safeeptitle)s.mp4

программа начинает переименовывать файлы в соответствии с теми данными, что сообщает фид, но, так как, как всегда было, есть и будет, существует проблема с кириллицей, то
переименованный файл корявится в том месте, где фид что-то говорит по-русски:

Сообщение от dm.tsvetkov:
скаченный файл выглядит так:
Цитата:
s04e01__The_Robotic_Manipulation__HD___C@06_0<1 59_.mp4
Цитата:
_C@06_0<159_
- это "Кураж Бамбей", прошедший через опцию safeeptitle.

silly, как я понял, наложил на костыль патч, пересобрал из исходников hpodder и получил корректную кириллицу.
но, так как в линуксе все не слава богу, то hpodder все равно коряво переименовывает файлы, зачем-то заменяя "пробел" на "_". (автор программы прямо об этом заявляет).
с этим, что? тоже проблемы? для чего так извращаться-то?


потому, единственно правильный выход - отключить костыли в hpodder и написать скрипт, который, пробегая по папкам рекурсивно, переименовывает скаченные файлы в соответствии с тегами.
этот скрипт потом, к примеру, отдать автору hpodder, чтобы он смог добавить его в основной функционал своей самой лучшей cli программы-подкастера в линуксе.

скрипт я не смогу написать никогда.
потому на тебя вся надежда.

Сообщение от Spirituals:
Понял главное, удобная фишка скачивать определенную тематикой группу файлов.

ну, да.
а при наличии itunes скаченные треки сами на ipad(ipod, iphone) заливаться будут.
пришел домой, переоделся, а новая лекция уже в телефоне. сунул в карман и на пробежку.
[Ответ]
dm.tsvetkov 17:24 01.04.2013

Сообщение от Spirituals:
Нет, я как раз в этом не уверен. Чтобы создать полную картину... TC надо покачать мои подкасты. Тогда мы сразу увидим, что если у нас нет расхождений с ним, то надо дальше копать.

уверен, что твои подкасты "мой" hpodder скачает правильно.
че б ему файл не скачать?

Сообщение от :
Package: hpodder
Status: install ok installed
Priority: optional
Section: utils
Installed-Size: 6504
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Version: 1.1.5.0+nmu3
Depends: libc6 (>= 2.7), libffi6 (>= 3.0.4), libgmp10, libsqlite3-0 (>= 3.5.9), curl, id3v2

[Ответ]
silly 18:31 01.04.2013
Интересно. Судя по всему исходники пакетов абсолютно одинаковы, но дебиановская версия собрана ghc 6, а убунтушная ghc 7.

dm.tsvetkov, так вас информация из тегов интересует больше, чем информация из фида? [Ответ]
dm.tsvetkov 18:49 01.04.2013

Сообщение от silly:
так вас информация из тегов интересует больше, чем информация из фида?

конечно!
hpodder в 3 часа ночи проверяет новые серии. в 5 часов утра скрипт переименовывает накачанное, а после работы я смотрю сериалы. [Ответ]
silly 20:29 01.04.2013
Код:
#!/usr/bin/env ruby
# encoding: utf-8

def read_tags(filename)
	io = IO.popen(['mediainfo', filename])
	begin
		Hash[io.lines.map{|line| line.split(':', 2).map(&:strip) if line.include?(':') }]
	ensure
		io.close
	end
end

def sanitize_filename(filename)
	filename.gsub(/[^A-Za-zА-Яа-я0-9\s\-\.]/, '_')
end

tags_for_renaming = ['Album', 'Track name']

ARGV.each do |filename|
	next if not File.file?(filename)
	new_filename =
		read_tags(filename).values_at(*tags_for_renaming).map(&method(:sanitize_filename)).join(' - ') +
		File.extname(filename)
	puts 'renaming "%s" to "%s"' % [filename, new_filename]
	File.rename(filename, File.dirname(filename) + '/' + new_filename)
end
Вот так сойдет? (Внимание, ruby версии 1.9, не 1.8.) [Ответ]
dm.tsvetkov 21:46 01.04.2013

Сообщение от Spirituals:
Я неделю въезжал чё вам вообще нужно от жизни. Я не виноват, что вы так формулируете свои мысли?

никита, сказать честно, не думаю, что проблема во мне.

Сообщение от Spirituals:
Есть ещё gpodder.

он gui.


Сообщение от Spirituals:
Как там дела обстоят с чтением тегов из файлика xml?

ты сейчас меня троллишь?
никита, прекрасно обстоит дело с чтением!
прекрасно!
хреново обстоит дело с записью кириллицы при записи этих тегов в файл.


Сообщение от Spirituals:
Но как мы заметили, они могут хорошо работать и с hpodder. Хотя бы относительно имен файлов и структуры каталогов подкастов. А больше ничего и не надо.

никита, ты это вот сейчас серьезно?
ты качаешь файл с названием "суперфайл.mp3", в твоей конфигурации hpodder нет указаний что-то брать из фида и куда-то прописывать.
что ты заметил-то?
что у тебя файл с русским буквами правильно сохраняется на диск?
блин, если бы в 2013 году при скачивании файла по http линукс умудрялся бы корявить кирилицу, то этот был бы полный ад и погибель.


Сообщение от Spirituals:
Кривая кириллица с этой опцией?

а... по твоему я так прикалываюсь?


Сообщение от Spirituals:
Нужно платить деньги или иметь определенный рейтиг (torrent) на этом ресурсе. Я так понял.

никита, ты опять не все и не до конца понял.

Сообщение от Spirituals:
hpodder это консольная программа. У неё вообще узкий круг задач. Скачать файлики в нужные папки и обозвать их

а еще она хреново с этим справляется.
лучше, чем все остальные, потому, что все остальные cli и так не могут.

Сообщение от Spirituals:
Если подкаст оформлен правильно, то и проблем не возникает. С точки зрения hpodder

никита, не hpodder потом фильмы смотрит, а я.

и раз у нас нет возможности заставить автора перестать собирать костыли, то необходимо использовать unix-way. программа делает одну функцию, но хорошо.
hpodder качает.
mediainfo выдает данные из "настоящих" тегов.
скрипт прописывает их в файл.


Сообщение от Spirituals:
Короче, я попробовать с вашими подкастами не могу, не так просто их там скачивать.

хочешь, я тебе месяц оплачу? [Ответ]
dm.tsvetkov 13:06 02.04.2013
silly, будь добр, поясни, что этот скрипт делает? [Ответ]
silly 18:36 02.04.2013

Сообщение от dm.tsvetkov:
silly, будь добр, поясни, что этот скрипт делает?

Запускается примерно так: minfo-rename.rb file1.mp3 file2.mp3 file3.mp4. Дергает mediainfo для каждого переданного аргументом командной строки файла, ищет в выводе mediainfo поля Album и Track name, переименовывает файл согласно содержимому полей, заменив незнакомые символы на _. [Ответ]
Страница 1 из 2
1 2 >
Вверх