Musikvideos in XBMC

Ich habe mittlerweile eine kleine Sammlung an Musikvideos aufgebaut die (zumindest größtenteils) irgendwann mal auf einer CD als Extra dabei waren. Als ich festgestellt habe, dass XBMC diese Videos im Partymode abspielt, als wären sie Musik, war ich erst mal ziemlich begeistert. Allerdings gibt es vorher ein paar Stolpersteine aus dem Weg zu räumen:

Videos richtig importieren

Im Menü „Videos – Dateien“ gibt es die Möglichkeit, Dateien von einer externen Festplatte zu Scrapen (dazu wählt man einfach den Ordner aus und geht über das Kontext-Menü auf „Inhalt festlegen„). Danach tauchen die Videos zwar in der Datenbank als Musikvideos auf, werden aber vom Partymode ignoriert.

Stattdessen muss man die Musikvideos über „Videos hinzufügen…“ in die Datenbank aufnehmen.

Nicht gefundene Videos

Jetzt werden höchstwahrscheinlich nicht alle Videos richtig erkannt. Das liegt ganz einfach daran, dass sie in der Datenbank, die der Scraper benutzt, nicht eingetragen sind, oder da falsche Namen haben.

Im Moment scheint es nur einen funktionierenden Musikvideo-Scraper zu geben: „TheAudioDb.com for Music Videos„. Da gibt es also schon mal keine Probleme, den richtigen zu finden.

Wenn jetzt Videos nicht gefunden werden, kann das zwei Gründe haben: Die Datenbank von TheAudioDB.com enthält den Track nicht, oder er ist dort anders geschrieben. In beiden Fällen lohnt sich ein Besuch auf der Seite. Dort sucht man dann den entsprechenden Künstler raus. Wenn er nicht existiert, muss man sich registrieren, um ihn anzulegen. Das geht allerdings sehr schnell und unkompliziert. Hat man das gemacht, sucht man nach dem entsprechendem Titel. (Unintuitiver- aber sinnvollerweise reicht es, wenn der Titel in einem Album vorhanden ist. Ein Musikvideo muss auf der Webseite nicht stehen.) Jetzt gibt man den genauen Künstler- und Songnamen von der Webseite bei der Suche von XBMC im Format „$artist – $title“ ein. Die Suche ist dabei sehr empfindlich gegenüber Tippfehlern. Ist alles richtig geschrieben sollte das Video jetzt erkannt werden.

Partymode falsch eingestellt

Schließlich kann es noch sein, dass der Partymode falsch eingestellt ist. Das kann man überprüfen, indem man bei  „Musik – Datenbank – Wiedergabelisten – Party-Modus Playlist“ im Kontextmenü „Wiedergabeliste editieren“ auswählt. In dem Konfigurationsfenster sollte der „Typ“ auf „gemischt“ stehen.

Nachdem alles richtig eingestellt ist, sollten Musikvideos im Partymode auftauchen.

Rsnapshot mit externer Festplatte

Rsnapshot scheint für Backups auf Servern gedacht zu sein. Jedenfalls bekommt man ein paar Probleme, wenn der Rechner nicht immer läuft oder gar die Festplatte nicht immer eingeschaltet ist, während es versucht, seine Arbeit zu verrichten. Wenn man z.B. mehrere Cronjobs eingerichtet hat, die täglich, wöchentlich und monatlich Snapshots machen, den Rechner aber beim monatlichen Backup einmal nicht an hat, fällt das monatliche Backup komplett aus.
Dieses Problem lässt sich mit anacron lösen. Anacron führt Jobs eine gewisse Zeit nach dem Systemstart aus.

Allerdings gibt es noch ein weiteres Problem, wenn man seine Backups auf einer externen Festplatte speichern möchte: ist die Festplatte ausgeschaltet, startet Anacron den Job und sieht ihn als ausgeführt an, Rsnapshot macht allerdings nichts (weil man in der config no_create_root aktiviert hat). Das führt im schlimmsten Fall wieder dazu, dass das monatliche Backup ausfällt.

Um das zu verhindern hatte ich ursprünglich für jeden Backup-Job noch einen Warn-Job erstellt, der mir 5min vor dem Backup eine Warnung einblendet, dass ich die Festplatte einschalten sollte. Allerdings passiert es durchaus öfter mal, dass ich genau während dieser 5min nicht auf den Bildschirm gucke. Deshalb habe ich das Problem jetzt richtig™ gelöst und ein kleines Script geschrieben, welches die jeweiligen Snapshots ausführt, wenn der letzte erfolgreiche(!) Snapshot schon mehr als einen Tag, eine Woche oder einen Monat zurück liegt.

Das Skript ist hier auf Github zu finden: https://github.com/Scumpeter/rscron/blob/master/rscron.sh

Wenn das Script als /opt/rscron.sh gespeichert wird (und natürlich executable ist), kann man folgendes in /etc/anacron.conf eintragen:

1    45    rsnapshot.daily    /opt/rscron.sh

Das führt dazu, dass das Skript 45min nach dem Start des Systems (und spätestens täglich) ausgeführt wird.

Es wird vorausgesetzt, dass rsnapshot,  sudo und notify-send installiert und eingerichtet sind. Und dass man einen libnotify-kompatiblen Notification-Daemon auf seinem Desktop laufen hat (KDE, Gnome und XFCE haben so etwas eingebaut).

Firefox unter KDE und verwaiste Configs

Ich bin neulich von Chromium auf Firefox (zurück) umgestiegen. Jetzt habe ich festgestellt, dass Firefox immer Thunar als Dateimanager öffnet, obwohl an allen erdenklichen Stellen im System der KDE-Standard-Filemanager Dolphin eingestellt ist.

Thunar ist der Standard-Filemanager von XFCE, den ich nicht deinstallieren möchte, weil er den besten File-Renamer beinhaltet, den man sich wünschen kann.

Ich habe lange rumgeforscht und eine ganze Menge Lösungsansätze gefunden:

  • /home/BENUTZERNAME/.mozilla/firefox/PROFILNAME/mimeTypes.rdf löschen oder verschieben
  • Standard-Filemanager von KDE umstellen
  • Firefox mit „export DE=kde && firefox“ starten
  • Komische Voodoo-Dinge in .desktop-Dateien in /usr/share/applications/ eintragen
  • inode/directory=IRGENDWAS“ auf „inode/directory=kde4-dolphin.desktop;“ ändern in
    • ~/.local/share/applications/defaults.list
    • ~/.local/share/applications/mimeapps.list
    • ~/.local/share/applications/mimeinfo.cache
    • /usr/share/applications/defaults.list
    • /usr/share/applications/mimeapps.list
    • /usr/share/applications/mimeinfo.cache
  • Voodoo mit den gconf-editor
  • Standard-Filemanager in den Gnome- oder XFCE-Einstellungen bzw. bei den Ordnereigenschaften von Nautilus ändern.

Das alles sind Dinge, von denen Leute in diversen Foren und Bugtrackern behauptet haben, dass sie genau dieses Problem für sie gelöst hätte. Bis auf den letzten Punkt habe ich auch alles (erfolglos) ausprobiert.

Dieser letzte Punkt hat mich allerdings auf eine recht abwegige Idee gebracht: Ich hatte ja irgendwann einmal XFCE auf diesem Rechner installiert. Die Config-Files davon waren auch noch in meinem Home-Verzeichnis. Da ich die nicht mehr brauchte, habe ich einfach mal probiert, sie zu löschen:

rm -r ~/.config/xfce4

Und voilà, Firefox benimmt sich wieder.

Zum Abschluss ein kurzer Rant.

Nicht nur, dass ich 6(!) Stellen gefunden habe an denen Firefox (zumindest Gerüchten zu Folge) guckt, welche Anwendungen er benutzen soll, er hält sich auch noch lieber an die Einstellungen von einem DE, das gar nicht mehr installiert ist, als an die von dem welches gerade läuft?! Dazu kommt, dass offenbar niemand so recht weiß, wo Firefox überall sucht und welche Quellen dabei was für eine Priorität haben.

Dabei wäre doch alles so einfach, wenn die Leute Konventionen befolgen würden. xdg-open hat Dolphin geöffnet, aber Firefox benutzt lieber gnome-open (warum gibt es das überhaupt?!) und das benutzt dann die verwaisten Einstellungen von XFCE… ich habe gar nicht so viele Hände, wie ich mir vor den Kopf schlagen möchte.

Übersetzungsskript

Ich habe gestern ein großartiges Übersetzungsskript gebastelt. Auf einen Tastatur-Shortcut gelegt, übersetzt es mir gerade markierte Worte, wenn ich den Shortcut drücke. Hier die Version von Englisch nach Deutsch:

#!/bin/bash
zenity --info --no-markup --text="$(dict -d eng-deu $(xsel))"

Voraussetzungen für das Skript sind (in Ubuntu) die Pakete zentiy, dict und xsel. Man kann sie natürlich durch andere ersetzen. Dazu muss man dann halt den Befehl entsprechend anpassen.

Ich würde mich sehr über Verbesserungsvorschläge oder Ideen für weitere Einsatzgebiete in den Kommentaren freuen.

edit: Ich habe grade noch eine weniger aufdringliche Version gebastelt. Diese basiert statt auf zenity auf libnotify-bin und einem laufenden Notify-System (welches in allen größeren Desktopumgebungen eingebaut ist):

#!/bin/bash
notify-send "$(xsel)" "$(dict -f -d eng-deu $(xsel) | grep '  ')"

The princess is a lie

Videos gibt es schon seit einiger Zeit. Jetzt wurde es entlich veröffentlicht: Mari0

Das Spiel ist eine Kombination aus dem Jump’n’Run Klassiker Super Mario Bros. (1985) von Nintendo und dem Puzzle-Shooter Portal (2007) von Valve. Es werden zwei Levelsets mitgeliefert. Einerseits die klassichen Super Mario Level und andrerseits etwas puzzeligere Level im Portal-Stil. Zusätzlich kann man auch selbst Level gestalten.

Leider habe ich noch nicht herausgefunden, wie man die Steuerung einstellt, damit man sich sowohl schnell bewegen, als auch mit der Portal Gun gut zielen kann.

Auf jeden Fall ist es eine grandiose Idee. Das ganze ist Open Source und kann kostenlos von der offiziellen Webseite runtergeladen werden. Allerdings braucht man für die Linux Variante eine development Version (mindestens 0.8.0) von Löve.

Selfsigned Zertifikate in Chromium

Möchte man in Chromium selbst signierte Zertifikate akzeptieren, muss man sich zunächst einmal das Zertifikat besorgen. Dazu geht man auf die entsprechende Webseite, klickt auf das Schloss-Symbol neben dem roten, durchgestrichenen https und da auf Zertifikatinformationen. In dem Fenster kann man das Zertifikat dann im Reiter Details in eine Datei exportieren.

Da Chromium von sich aus keine Möglichkeit mitbringt, das Zertifikat nun auch zu akzeptieren muss man da von Hand ran. Unter Linux geht das absurderweise mit einem Tool von Firefox.

Das heißt certutil und gibt es bei Ubuntu im Paket libnss3-tools. Also erst mit:

aptitude install libnss3-tools

das Paket installieren und dann das Zertifikat, dass man nach DATEINAME exportiert hat mit

certutil -d sql:$HOME/.pki/nssdb -A -t "C,," -n ZERTIFIKATSNAME -i DATEINAME

zur Datenbank hinzufügen. Jetzt sollte das Zertifikat akzeptiert werden und die lästige Warnung verschwinden.

Gefunden habe ich den Befehl auf http://code.google.com/p/chromium/wiki/LinuxCertManagement

Eigenes Bild in der SMS-App von Android

Nachdem ich mir cm7 auf meinem Handy installiert habe, hatte ich in der SMS-App nur noch ein graues Feld, statt eines Fotos von mir. Die Avatare von allen anderen Kontakten wurden korrekt angezeigt. Kein großes Problem, aber irgendwie nervig.

Die Lösung ist gar nicht so schwer, aber man muss erstmal drauf kommen:
Zunächst braucht man einen Kontakt von sich selbst, der sowohl das gewünschte Bild, als auch die eigene Handynummer enthält. Den hatte ich zwecks Visitenkartenübergabe eh schon. Außerdem muss das Telefon die eigene Nummer kennen. Die kann man unter

Einstellungen -> Anrufeinstellungen -> Zusätzliche Einstellungen -> Meine Nummer

einstellen.

Mit der Nummer in den Einstellungen und dem Kontakt im Adressbuch klappt es jetzt prima. Ich kann mir endlich wieder meine Visage beim SMS schreiben angucken.

sudo & Pipes

Wenn man einen Befehl mit sudo durch eine Pipe leiten möchte, wie z.B.:

sudo echo "xscreensaver-command -lock" > usr/lib/kde4/libexec/kscreenlocker

besteht das Problem, dass nur der Teil vor dem > mit root-Rechten ausgeführt wird und nicht der ganze Befehl.
Nach kurzem Googlen habe ich auf dieser Seite folgende Lösung gefunden:
Statt sudo BEFEHL  gibt man sudo bash -c 'BEFEHL' ein. Das führt dazu, dass sudo eine Bash mit root-Rechten ausführt, die dann den eigentlichen Befehl ausführt.
Also für mein Beispiel:

sudo bash -c 'echo "xscreensaver-command -lock" > /usr/lib/kde4/libexec/kscreenlocker'

(Dieser Befehl sorgt übrigens dafür, dass man in KDE seinen Bildschirm mit xscreensaver statt mit kscreensaver sperren kann.)

Ordner von Androids Musikbibliothek ausschließen

Wer einzelne Ordner aus seiner Musikbibliothek ausschließen will (z.B. weil sie Audiobooks, Podcasts oder Klingeltöne enthalten) und dazu nicht auf alternative Mediaplayer (wie z.B. den Dateisystembasierten MortPlayer) zurückgreifen möchte kann das wie folgt tun:

  1. Installiere einen Dateimanager. (Ich empfehle File Expert.)
  2. Gehe damit in den Ordner der nicht in der Musikbibliothek erscheinen soll.
  3. Erstelle eine leere Datei mit dem Namen .nomedia (den Punkt am Anfang nicht vergessen!).
  4. Wiederhole die Schritte 2 & 3 für alle Ordner die ausgeschlossen werden sollen.
  5. Warte bis die Änderungen übernommen werden. (Evtl lässt sich das mit einem Neustart des Telefons beschleunigen.)

Das sollte es gewesen sein.

Ich dachte eigentlich, wir wären aus den Zeiten raus, in denen man für so grundlegende Einstellungen googlen muss. Aber Android ist ja immer wieder für eine Überraschung gut ;)

 
Nachtrag (26.9.2012): Es ist übrigens (scheinbar) nicht möglich nur einzelne Arten von Medien (z.b. nur Musik oder nur Bilder) auszuschließen. D.h. wenn man Albumart-Dateien in seinen Musikordnern hat, bringt das ganze recht wenig.
Allerdings kann man diese Bilddateien (offenbar) einfach löschen, nachdem Android die Cover in seine Datenbank übernommen hat.  Im Player werden die Cover dann trotzdem weiterhin angezeigt.

Android App: ClockSync

Seit einiger Zeit geht die Uhr von meinem Android Telefon ständig nach. Egal, ob ich einstelle, dass sie sich die Zeit automatisch vom Netz holen soll, oder nicht, nach einigen Tagen ging die Uhr mindestens 5min nach. Wahrscheinlich sendet Simyo die Uhrzeit in seinem Netz einfach nicht (im richtigen Format) mit.

Ich habe lange überlegt, wie ich dieses Problem lösen kann. Aus der Einstellung wird nicht eindeutig ersichtlich, ob die Zeit vom Telefonnetz kommt, oder über NTP aus dem Netz. Also habe ich mich auf die Suche nach Parametern gemacht, die man da eventuell ändern könnte (z.B. einen anderen NTP-Server wählen, etc)…

Dabei war die Lösung so einfach. Ein Freund hat mich darauf hingewiesen, als ich ihm mein Leid geplagt hab: Auch dafür gibt es eine App! Sie heißt ClockSync und ist kostenlos im Market erhältlich. Für den vollen Komfort mit automatischen Synchronisierungen und so muss das Telefon gerootet sein, aber das ist ja kein Problem ;) (Und ohne Root funktioniert die App auch. Nur halt nicht so komfortabel.)

Im Grunde funktioniert es ganz einfach: App laden & starten, warten bis die Zeit aus dem Netz geladen wurde, Menü-Taste drücken und „Synchronize“ antippen. Es gibt noch eine Menge Einstellungen, aber die meisten kann man auf ihren Standardwerten belassen. Lediglich bei „Automatic synchronization“ habe ich „Enable“ aktiviert und einen Intervall von 12 Stunden eingestellt (in der Zeit schafft meine Uhr es, ca. 30s nachzugehen).

Zum Schluss noch der QR-Code:

Viel Spaß damit.