понеділок, 11 листопада 2013 р.

Перегнати відео з Youtube на Ex.ua

Вирішив забекапити відео збережене на Youtube. Хто зна що може статися, забанять в Україні чи просто глюкне, а деякі відео є лише там. Вирішив перекинути в перший, що попадеться відеохостинг. Попався Ex.ua.

Викачуємо всі відео з Y. з допомогою скрипта yuotube-dl.

Наприклад:

python26 youtube-dl -c --write-thumbnail --playlist-start 17 -o '%(playlist_index)s.%(title)s (%(format)s %(id)s).%(ext)s' --autonumber-size 3 -f 22/35/18 http://www.youtube.com/user/rivnegrace

Всі параметри прописані в довідці до скрипта.
Потрібні формати відео я підібрав проглянувши в яких форматах вон є збережені на Y.

python26 youtube-dl --get-filename -o '%(playlist_index)s.%(title)s (%(format)s %(id)s).%(ext)s' --autonumber-size 3 -F http://www.youtube.com/user/rivnegrace

Отримав для кожного відео щось на зразок:
Available formats:
22    :    mp4    [720x1280]
18    :    mp4    [360x640]
43    :    webm    [360x640]
5    :    flv    [240x400]
36    :    3gp    [240x320]
17    :    3gp    [144x176]
137    :    mp4    [1080p] (DASH Video)
136    :    mp4    [720p] (DASH Video)
135    :    mp4    [480p] (DASH Video)
134    :    mp4    [360p] (DASH Video)
133    :    mp4    [240p] (DASH Video)
160    :    mp4    [192p] (DASH Video)
141    :    m4a    [256k] (DASH Audio)
140    :    m4a    [128k] (DASH Audio)
139    :    m4a    [48k] (DASH Audio)


Інформація про формати тут:
http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs

Викачавши таким чином відео + превьюшки до них, перекачую їх на Ex.ua за допомогою скрипта ex.ua-loader.pl , котрого можна знайти на ньому ж.

ex.ua-loader.pl onivan пароль 74031054 '*.*' UTF8

 При цьому обов’язково потрібно взяти маску в лапки, щоб perl екранував пробіли і т.п. Також вказуємо UTF8, щоб імена файлів в кирилиці не викачалися на Ex.ua крякозяблами.

От і все!

О! Забувся додати, що всі ці маніпуляції я проводив на VPS де розміщений наш сайт, так що мав в своєму розпорядженні канал в 100Mbit/s, так що це перекачування зайняло зовсім небагато часу!



неділя, 17 березня 2013 р.

Онлайн відео трансляція з сайту в XBMC

Знадобилося налаштувати перегляд онлайн-трансляції з сайту http://grace.od.ua/ безпосередньо в плеєрі XBMC. Через веб-оглядач на Android, то не дуже зручно.

Запускаю будь-який сніфер, наприклад Wireshark.
Запускаю програвання на сайті і вводжу в фільтр rtmpt

Шукаю пакунок з командою play. Знаходжу mp4:grace.f4v. Це -- файл для програвання.

 Інший пакунок містить url плеєра та шлях до потоку.

Вставляю це все за зразком в файл example_streams.xml в папці addons\plugin.video.live.streams\
<item>
  <title>Благодать</title>        
  <link>rtmp://ms.grace.od.ua/liveg/ app=live swfUrl=http://grace.od.ua/plugins/content/jw_allvideos/includes/js/mediaplayer/player.swf pageURL=http://grace.od.ua/index.php?option=com_content&amp;view=article&amp;id=8&amp;Itemid=19 playpath=mp4:grace.f4v live=true</link>
 <thumbnail>http://grace.od.ua/images/Shape5_University_logo.png</thumbnail>
</item>


Перевірив на Windows версії XBMC. При нагоді перевірю й на Android.

вівторок, 12 лютого 2013 р.

Апгрейд процесора в ноутбуці

В HP Compaq 6720s (RM388UT) стояв Intel Celeron M 550 -- реальне гальмо, з яким нічого не можливо було робити, навіть звичайне відео на весь екран заїдало. Пошук в мережі дав надію, що можна поставити щось потужніше.
Вихідні дані:
Чіпсет: GL960.
Роз'єм: Socket P.
Процесор:  Intel Celeron M 550

Натрапив на дуже практичне обговорення стосовно саме цього чіпсета: http://forum.notebookreview.com/hardware-components-aftermarket-upgrades/212097-gl960-chipset-processor-upgradability-9.html#post6578101

На даному сайті знайшов список сумісних процесорів: http://www.sparepartswarehouse.com/HP-Compaq,6720s,RM388UT,Laptop,Processors-CPU.aspx

Як видно з цього сайту, серед підтримуваних є досить потужні http://www.notebookcheck.net/Mobile-Processors-Benchmarklist.2436.0.html

Ось зведена табличка в порядку спадання продуктивності:


На місцевій "барахолці" знайшов і придбав Intel Core 2 Duo T5450 за ~$20. На ebay був більший вибір, але хотілося мати можливість швидко повернути в разі невдачі.

Після того, як я поставив новий проц, комп преобразився, став дуже швидким! Але як і писалося в  обговоренні по посиланню вище, комп'ютер після виходу з режиму очікування зависав з артефактами на екрані. Також завантажитися можна було лише з другої спроби, зайшовши перед тим в BIOS.

Постало питання заміни однієї з планок пам'яті на DDR2 PC-4200, аби понизити частоту шини пам'яті відносно, якої встановлювалася частота графічного процесора і яка з новим процесором стала вище номінальної, так що він працював в розігнаному режимі і тому глючив.

На щастя я знайшов простіший вихід. Скачав SPDTool і перешив один з модулів пам'яті встановивши в прошивці найвишу її частоту в 267 МГц. Після перезавантаження, все стало на місця, при цьому процесор залишився працювати з FSB 667МГц. Табличка частот і множників, як я їх зрозумів, наведена в табличці вище.





Правильне сортування прізвищ в таблиці SQLite

Пам'ятка
При розробці бази імен з використанням SQLite3 вилізла одна маленька, але неприємна річ -- при сортуванні за іменами/прізвищами порядок виявився досить диким: на початку списку йшли люди з прізвищами на "Є", "І", "Ї". Потім йшли на "А" і далі, як і повинно бути, а в самому кінці, після "Я" тулилася нещасна літера "Ґ".

Спочатку я намагався вирішити цю проблему шляхом:
SELECT icu_load_collation('uk_UA', 'UKRAINIAN');
але проблема виявилася в тому, що це вимагало додаткової мороки з нестандартною збіркою sqlite3.dll/sqlite3.so.Також вилазили інші глюки.

Спочатку я залишив це як є, але оце вирішив все-таки побороти цю проблему.

Рішення (aka "милиця" aka "костиль").
SELECT name, CASE
WHEN SUBSTR(name,1,1) LIKE '%Ґ%' OR  SUBSTR(name,1,1)   LIKE '%ґ%'  THEN 'Гя' || SUBSTR (name, 2) 
WHEN SUBSTR(name,1,1) LIKE '%Є%' OR  SUBSTR(name,1,1) LIKE '%є%'  THEN 'Ея' || SUBSTR (name, 2)
WHEN SUBSTR(name,1,1) LIKE '%І%' OR  SUBSTR(name,1,1) LIKE '%і%'  THEN 'Ию' || SUBSTR (name, 2) 
WHEN SUBSTR(name,1,1) LIKE '%Ї%' OR  SUBSTR(name,1,1) LIKE '%ї%'  THEN 'Ия' || SUBSTR (name, 2) 
ELSE name END AS SortField 
FROM grace_people_c ORDER BY SortField ASC
Виглядає незвично, але працює як годинник! Мені достатньо було правильного сортування по першим буквам. Інакше можна аналогічно застосувати SQLite-функцію REPLACE

От що значить пару годин порухати мізками і вдумливо покурити мануали!


понеділок, 7 січня 2013 р.

Поштова система на VDS CentOS 5

Виникла потреба налаштувати повноцінну поштову систему. Після ознайомлення в мережі вибір впав на Postfix, MySQL, Squirrelmail, Dovecot, SSL.

Спочатку налаштував по ось цим керівництвам: http://daily-notes.ru/2011/11/vds_hetzner_hosting_mail_server/
http://sudouser.com/ustanovka-pochtovogo-servera-postfix-dovecot-mysql-i-virtualnyx-domenov.html

Потім натрапив на Postfixadmin і переналаштовую по ось цим:
http://www.houseoflinux.com/e-mail/postfix-dovecot-mysql-squirrelmail-on-centos-5-5-32-64-bits/all-pages
http://www.hilik.org.ua/%D1%81%D1%82%D1%80%D0%BE%D0%B8%D0%BC-%D0%BF%D0%BE%D1%87%D1%82%D0%BE%D0%B2%D1%83%D1%8E-%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D1%83postfix-dovecot-postfixadmin-%D1%87%D0%B0%D1%81%D1%82%D1%8C-%D0%BF-2/

Наразі відправка пошти працює ідеально з правильними заголовками (в тому числі PTR). З отриманням пошти щось не так ще. Підозрюю, щось недопиляв з записами DNS.

Update:
На даний момент налаштував можливість відправки пошти з віддаленого клієнта по smtp з SSL/TLS  авторизацією. Мені це ніяк не вдавалося -- робив все що міг: міняв налаштування iptables, DNS записи, кілька разів заново переналаштовував postfix. Писав в підтримку хостинг-провайдера -- питав чи не закривають порти. В кінці кінців вияснилося, що доступ до 25-й порту закриває інтернет провайдер (Intertelecom). Та взагалі-то мені й не крепко те треба було, бо я врешті мав налаштувати на 587/465 порт. Але ці порти взагалі не відкликалися.

Після всього цього микання натрапив в тирнеті, як поміняти, щоб postfix слухав не 25-й порт, а якийсь інший. Це робиться в /etc/postfix/master.cf

smtp      inet  n       -       n       -       -       smtpd 
замінити на
425       inet  n       -       n       -       -       smtpd


І тут я побачив рядки, котрі йшли відразу після цього і були закоментовані:

submission inet n       -       n       -       -       smtpd
  -o smtpd_enforce_tls=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
smtps     inet  n       -       n       -       -       smtpd
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject


Тю! submission це 587 порт, а smtps -- 465 і вони закоментовані.

Після того, як я їх розкоментував, все запрацювало.

Я 4 дні рив тирнет, перечитав безліч інструкцій і ніде про ці рядки не було написано!

Треба ще розібратися, що потрібно залишити 465 чи 587.

Правда залишилася проблема з доставкою пошти від інших MTA ззовні на сервер. Поправив DNS-записи для домена (трохи наплутав там, поки розбирався) і логи показали, що сервери намагаються доставити пошту, але не можуть знайти користувачів. Ну та це вже треба знову заново начисто все налаштувати. Головну проблему я виявив. Теж саме з Dovecot. Але зараз мені це не є вкрай необхідним і немає коли розбиратися.