text 8 Jun Youtube flv 2 mp3

Vediamo come convertire un video flv di Youtube in mp3 usando ffmpeg.

Per prima cosa dobbiamo ottenere l’URL esatto del video per poter scaricare l’flv. Per far cio` ci serve un token che cambia nel tempo ma che possiamo ottenere dal file video_info; scarichiamolo:

http://www.youtube.com/get_video_info?video_id=VugK063j0Zo

Questo file contiene una serie di valori in stile parametri http. A noi serve quello con chiave token: nell’esempio token=vjVQa1PpcFNk6LFs5OQXj-teHu8POPhx7isbKGtGbOc%3D.

A questo punto abbiamo tutto il necessario per generare l’url per il download diretto del video flv:

http://www.youtube.com/get_video?video_id=VIDEOID&t=TOKEN

nell’esempio:

http://www.youtube.com/get_video?video_id=VugK063j0Zo&t=vjVQa1PpcFNk6LFs5OQXj-teHu8POPhx7isbKGtGbOc%3D

Bene, ora possiamo con ffmpeg ottenere direttamente l’audio del video in formato mp3 con il seguente comando:

ffmpeg -i 'URL DIRETTO DEL VIDEO' -acodec libmp3lame -ac 2 -ab 128kb -vn -y file_output.mp3

Nell’esempio

ffmpeg -i 'http://www.youtube.com/get_video?video_id=VugK063j0Zo&t=vjVQa1PpcFMpsZHHpcVB1lB6w_EvoJYGbZTNi4KQ2g4%3D' -acodec libmp3lame -ac 2 -ab 128kb -vn -y magically_magical.mp3

It’s magical…


text 15 May Create apt repository

Vediamo come creare una repository apt. Per far cio` usiamo l’utiliti reprepro:

sudo apt-get install reprepro

ora creiamo una directory di lavoro e il file di configurazione:

mkdir -p repository/conf
nano repository/conf/distributions

Il file distributions sara` una cosa del genere:

Origin: Company name
Label: Pioz's debian repository
Suite: stable
Codename: debian
SignWith: default
Architectures: i386 amd64 source
Components: main non-free contrib
Description: This repository include my programs

Bene a questo punto generiamo la repo con il seguente comando da dentro la cartella repository appena creata:

reprepro includedeb debian pacchetto1.deb pacchetto2.deb ...

Se avete una chiave privata verra` usata per garantire la repository. Bene adesso mettete online la cartella repository e siamo OK.

Per seguiamo i seguenti passi:

  • Aggiungiamo la chiave pubblica ad apt

    echo key.pub | sudo apt-key add -

  • Aggiungiamo il repo al file /etc/apt/sources.list

    deb http://www.pioz.it/repository debian main

  • Aggiorniamo

    sudo apt-get update

  • Installiamo qualche programma

    sudo apt-get install pacchetto1.deb


text 8 May GIMDB - GTK graphical interface for the Internet Movie DataBase

gimdb e` un programma che ti permette di esplorare l’Internet Movie DataBase di Amazon. E` scritto in Ruby e usa la libreria grafica GTK. gimdb scarica le informazioni dei film che richiedi e le salva in un database sqlite3 locale.

Puoi creare utenti e salvare per ognuno di loro i film da vedere, i film visti e i film preferiti. gimdb puo` anche lavorare in modalita` offline cercando i film solamente nel database locale.

GIMDB screenshot

gimdb potrebbe essere utile se non sai che film guardare e non trovi piu` la lista dei film da guardare che avevi stilato tanto tempo fa…

Dipendenze

  • ruby
  • activerecord
  • sqlite3-ruby
  • nokogiri
  • libgnome2 (sudo apt-get install libgnome2-ruby)
  • libglade2 (sudo apt-get install libglade2-ruby)

Installazione

sudo apt-get install libgnome2-ruby
sudo apt-get install libglade2-ruby
sudo gem install gimdb

Ad ogni modo informazioni piu` dettagliate disponibili nella homepage del progetto: http://github.com/pioz/gimdb


text 6 May Scrolling with trackpad with Thinkpad on Ubuntu 10.04

Con questo trick riuscirete a scrillare le pagine usando il trackpad del vostro Thinkpad tenendo premuto il tasto centrale. Create il nuovo file /usr/lib/X11/xorg.conf.d/20-thinkpad.conf e incollateci il seguente:

Section "InputClass"
    Identifier "Trackpoint Wheel Emulation"
    MatchProduct "TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "EmulateWheel" "true"
    Option "EmulateWheelButton" "2"
    Option "Emulate3Buttons" "false"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection

Ora riavviate X.


text 25 Mar Set Gtk::Label wrap dinamically

Ahime` come si sa` le Gtk::Label non supportano il wrapping dinamico su resize.
Vabbe`, estendiamo Gtk::Label e iimplementiamo il wrap dinamico.
Ecco la classe in Ruby:

require 'gtk2'
class WrapLabel < Gtk::Label
    def initialize(s = '')
      super()
      self.wrap = true
      self.wrap_mode = Pango::WRAP_WORD_CHAR
      self.set_alignment(0.0, 0.0)
      self.text = s
      self.signal_connect_after('size-allocate') do |w, a|
        lw_old, lh_old = self.layout.size
        if lw_old / Pango::SCALE != a.width
          self.layout.set_width(a.width * Pango::SCALE)
          lw, lh = self.layout.size
          self.set_size_request(-1, lh / Pango::SCALE) if lh_old != lh
        end
      end
    end
  end
end