Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_smarty.inc.php on line 541

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007


Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_smarty.inc.php on line 541

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Flash Videos herunterladen

05 10 2008 General

Erstens kommt es anders und zweitens als man denkt. ;-)

    

Obwohl ich Ende letzten Jahres verkünden ließe, dass es nun mehr Beiträge hier geben soll, konnte ich den Verlautbarungen nicht gerecht werden. Dies hängt wohl in erster Linie damit zusammen, das ich privat wie auch im Studium mal wieder mehr um die Ohren hatte, als zunächst angenommen. Allerdings will ich dem geneigten Leser nicht mit irgendwelchen privaten Problemen unterhalten, sondern versuchen noch ein paar spannende Beiträge hier zu veröffentlichen, solange sich der Erdball noch nicht ganz einmal mehr um die Sonne gedreht hat.

     

Wer kennt es nicht, man surft auf seiner Lieblingswebseite und würde gerne eines der Flash Videos, die es im Internet mittlerweile wie Sand am Meer gibt, auch lokal auf der Festplatte sichern. Für die bekanntesten Webseiten, vor allem den bekannten Videoportalen (wie z.B youtube.com), gibt es zahlreiche Browser Plug-ins (z.B. DownloadHelper für Mozilla Firefox) die einem diesen Vorgang erleichtern.

     

Probleme gibt es nur dann, wenn man auf Browser angewiesen ist die solche Plug-ins nicht bereitstellen, oder (viel wahrscheinlicher) dass man eine Seite besucht, bei der es nicht möglich ist das Plug-in zu verwenden.

    

Befindet man sich in solch einer Situation, ist es ganz praktisch etwas über die Beschaffenheiten von Flash im Zusammenspiel mit Webbrowsern bescheid zu wissen.

                

          


Hinweiß:

Dabei sollen die hier gezeigten Möglichkeiten nur die technischen Eigenschaften des Flash Videoformates im Zusammenspiel mit Browsern aufzeigen. Die hier verwendeten Techniken dürfen niemals für urheberrechtlich geschütztes Material ohne Einwilligung der Rechteinhaber verwendet werden.


       

So wird Flash clientseitig ausgeführt. Das hat zur Folge, dass alle Flash Videos zur Laufzeit sich lokal auf dem Rechner befinden. Um nun auf die Videos zuzugreifen, muss man mit dem Dateibrowser seiner Wahl zum Cache seines Browsers wechseln. Der Pfad ist dabei von Betriebssystem und verwendeten Browser (auch Version kann hier eine Rolle spielen) unterschiedlich. Wenn man nun im Cache seines Browsers angelangt ist, sieht man nun eine Menge wirre Dateien. Meist handelt es sich bei den größeren Dateien um Flash Video Dateien. Je nach Betriebssystem ist die Vorgehensweise wie man an die entsprechenden Videos gelangt unterschiedlich.

     

Falls man unter Windows nicht gerade das Unix-Tool file zur Verfügung hat - sei es durch Cygwin, GnuWin32 oder ähnlichem - dann bleibt einem in der Regel nur die Möglichkeit, seinen Dateibrowser die Dateien der Größe nach zu sortieren zu lassen. Die größten Dateien repräsentieren meist auch die Flash Videos.

      

    

Ob es sich tatsächlich um ein Flash Video handelt, testet man am besten mit einem beliebigen Videoplayer der in der Lage ist Dateien im Flash-Video-Format abzuspielen, wie z.B. der VLC-Player.

    

Weit aus praktischer und weniger umständlich ist es unter Linux (und natürlich jedes andere System in dem entsprechende Utilities vorhanden sind).

   

Hier zu wechselt man einfach in das Verzeichnis des Browser-Caches (hier im Beispiel von Firefox) und anschließend lässt man mit file nach Dateien suchen, die vom Typ Macromedia Flash Video sind:

    

rsecurity blog # cd ~/.mozilla/firefox/mtyue9ih.default/Cache/
und dann
rsecurity blog # for i in STERN ; do file $i | grep "Macromedia Flash Video"; done
bzw.
rsecurity blog # file STERN | grep "Macromedia Flash Video"
// STERN muss hier natürlich durch das Asterisk Jokerzeichen ersetzt werden

     

Möchte man nun z.B. nur die Audiodaten des Videos haben, so kann mit einem kurzen Script Abhilfe geschaffen werden:

   

rsecurity blog # vi flv2mp3
#!/bin/bash

file_org=$1
ffmpeg -i "${file_org}" -ab 128k -ar 22050 "${file_org}.mp3
rsecurity blog #  ./flv2mp3 a.flv 
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
....
size= 3232kB time=206.8 bitrate= 128.0kbits/s
video:0kB audio:3232kB global headers:0kB muxing overhead 0.000967%
rsecurity blog # ls -l
total 236508
-rw------- 1 root root 6889229 2008-10-05 17:51 a.flv
-rw-r--r-- 1 root root 3309432 2008-10-05 17:56 a.flv.mp3
....

     

Natürlich bieten die zahlreichen Browser Plug-ins eine wesentlich bequemere Methode um an entsprechende Videos zu gelangen, aber es sollte nun deutlich sein, dass die vielen Verschleierungen des Quelltextes der Webseiten nutzlos bleiben, so lange Flash Videos als einzelne Videodatei im Browsercache gelangen. Weiterhin wird das umständliche Analysieren vom Quelltext überflüssig, falls mal kein passendes Webbrowser Plug-in zur Verfügung steht.




Trackbacks



Strict Standards: Only variables should be assigned by reference in /www/htdocs/w0072ee3/blog/include/functions_smarty.inc.php on line 73
Keine Trackbacks

Kommentare

Ansicht der Kommentare: (Linear | Verschachtelt)

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_comments.inc.php on line 292

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Only variables should be assigned by reference in /www/htdocs/w0072ee3/blog/include/functions_smarty.inc.php on line 73
Noch keine Kommentare

Kommentar schreiben



Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_smarty.inc.php on line 541

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.



Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!


Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 560

Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in /www/htdocs/w0072ee3/blog/include/db/mysql.inc.php on line 270

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_config.inc.php on line 506

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::enum_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 951

Strict Standards: Non-static method serendipity_plugin_api::load_plugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 958

Strict Standards: Non-static method serendipity_plugin_api::probePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 542

Strict Standards: Non-static method serendipity_plugin_api::getClassByInstanceID() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 492

Strict Standards: Non-static method serendipity_plugin_api::includePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 497

Strict Standards: Declaration of serendipity_event_s9ymarkup::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_s9ymarkup/serendipity_event_s9ymarkup.php on line 146

Strict Standards: Declaration of serendipity_event_s9ymarkup::uninstall() should be compatible with serendipity_plugin::uninstall(&$propbag) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_s9ymarkup/serendipity_event_s9ymarkup.php on line 146

Strict Standards: Non-static method serendipity_plugin_api::get_plugin_title() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 962

Strict Standards: Non-static method serendipity_plugin_api::load_plugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 958

Strict Standards: Non-static method serendipity_plugin_api::probePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 542

Strict Standards: Non-static method serendipity_plugin_api::getClassByInstanceID() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 492

Strict Standards: Non-static method serendipity_plugin_api::includePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 497

Strict Standards: Declaration of serendipity_event_emoticate::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_emoticate/serendipity_event_emoticate.php on line 204

Strict Standards: Declaration of serendipity_event_emoticate::uninstall() should be compatible with serendipity_plugin::uninstall(&$propbag) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_emoticate/serendipity_event_emoticate.php on line 204

Strict Standards: Non-static method serendipity_plugin_api::get_plugin_title() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 962

Strict Standards: Non-static method serendipity_plugin_api::load_plugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 958

Strict Standards: Non-static method serendipity_plugin_api::probePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 542

Strict Standards: Non-static method serendipity_plugin_api::getClassByInstanceID() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 492

Strict Standards: Non-static method serendipity_plugin_api::includePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 497

Strict Standards: Declaration of serendipity_event_nl2br::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_nl2br/serendipity_event_nl2br.php on line 162

Strict Standards: Declaration of serendipity_event_nl2br::uninstall() should be compatible with serendipity_plugin::uninstall(&$propbag) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_nl2br/serendipity_event_nl2br.php on line 162

Strict Standards: Non-static method serendipity_plugin_api::get_plugin_title() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 962

Strict Standards: Non-static method serendipity_plugin_api::load_plugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 958

Strict Standards: Non-static method serendipity_plugin_api::probePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 542

Strict Standards: Non-static method serendipity_plugin_api::getClassByInstanceID() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 492

Strict Standards: Non-static method serendipity_plugin_api::includePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 497

Strict Standards: Declaration of serendipity_event_browsercompatibility::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_browsercompatibility/serendipity_event_browsercompatibility.php on line 80

Strict Standards: Non-static method serendipity_plugin_api::get_plugin_title() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 962

Strict Standards: Non-static method serendipity_plugin_api::load_plugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 958

Strict Standards: Non-static method serendipity_plugin_api::probePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 542

Strict Standards: Non-static method serendipity_plugin_api::getClassByInstanceID() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 492

Strict Standards: Non-static method serendipity_plugin_api::includePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 497

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php on line 469

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php on line 494

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php on line 538

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_spamblock/serendipity_event_spamblock.php on line 902

Strict Standards: Non-static method serendipity_plugin_api::get_plugin_title() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 962

Strict Standards: Non-static method serendipity_plugin_api::load_plugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 958

Strict Standards: Non-static method serendipity_plugin_api::probePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 542

Strict Standards: Non-static method serendipity_plugin_api::getClassByInstanceID() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 492

Strict Standards: Non-static method serendipity_plugin_api::includePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 497

Strict Standards: Declaration of serendipity_event_statistics::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_statistics/serendipity_event_statistics.php on line 1015

Strict Standards: Declaration of serendipity_event_statistics::uninstall() should be compatible with serendipity_plugin::uninstall(&$propbag) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_statistics/serendipity_event_statistics.php on line 1015

Strict Standards: Non-static method serendipity_plugin_api::get_plugin_title() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 962

Strict Standards: Non-static method serendipity_plugin_api::load_plugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 958

Strict Standards: Non-static method serendipity_plugin_api::probePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 542

Strict Standards: Non-static method serendipity_plugin_api::getClassByInstanceID() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 492

Strict Standards: Non-static method serendipity_plugin_api::includePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 497

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_spartacus/serendipity_event_spartacus.php on line 400

Deprecated: Assigning the return value of new by reference is deprecated in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_spartacus/serendipity_event_spartacus.php on line 444

Strict Standards: Declaration of serendipity_event_spartacus::event_hook() should be compatible with serendipity_event::event_hook($event, &$bag, &$eventData, $addData = NULL) in /www/htdocs/w0072ee3/blog/plugins/serendipity_event_spartacus/serendipity_event_spartacus.php on line 1183

Strict Standards: Non-static method serendipity_plugin_api::get_plugin_title() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 962

Strict Standards: Non-static method serendipity_plugin_api::load_plugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 958

Strict Standards: Non-static method serendipity_plugin_api::probePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 542

Strict Standards: Non-static method serendipity_plugin_api::getClassByInstanceID() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 492

Strict Standards: Non-static method serendipity_plugin_api::includePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 497

Strict Standards: Non-static method serendipity_plugin_api::get_plugin_title() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 962

Strict Standards: Non-static method serendipity_plugin_api::load_plugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 958

Strict Standards: Non-static method serendipity_plugin_api::probePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 542

Strict Standards: Non-static method serendipity_plugin_api::getClassByInstanceID() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 492

Strict Standards: Non-static method serendipity_plugin_api::includePlugin() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 497

Strict Standards: Non-static method serendipity_plugin_api::get_plugin_title() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 962

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_config.inc.php on line 506

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/serendipity_config.inc.php on line 399

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/genpage.inc.php on line 31

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::count_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/genpage.inc.php on line 34

Strict Standards: Non-static method serendipity_plugin_api::count_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/genpage.inc.php on line 35

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_entries.inc.php on line 514

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_entries.inc.php on line 572

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_entries.inc.php on line 555

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_entries.inc.php on line 943

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_entries.inc.php on line 1026

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_entries.inc.php on line 1094

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_comments.inc.php on line 292

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007

Strict Standards: Only variables should be assigned by reference in /www/htdocs/w0072ee3/blog/include/functions_smarty.inc.php on line 73

Strict Standards: Only variables should be assigned by reference in /www/htdocs/w0072ee3/blog/include/functions_smarty.inc.php on line 73

Strict Standards: Only variables should be assigned by reference in /www/htdocs/w0072ee3/blog/include/functions_smarty.inc.php on line 73

Strict Standards: Non-static method serendipity_plugin_api::hook_event() should not be called statically in /www/htdocs/w0072ee3/blog/include/functions_smarty.inc.php on line 541

Strict Standards: Non-static method serendipity_plugin_api::get_event_plugins() should not be called statically in /www/htdocs/w0072ee3/blog/include/plugin_api.inc.php on line 1007