33

I have a *.swf file, and I don't have flash player installed on my Windows XP machine.

Is there any way to play the .swf file using Google Chrome or is there any web app that allows me to play .swf? I don't mind installing any browser plugin, but I do mind installing any desktop application.

1
  • Do you need to install Adobe Flash Player on your system?
    – abhi
    Sep 8, 2011 at 21:00

6 Answers 6

4

Chrome has a built in Flash Player called PepperFlash. Go To chrome://plugins/ and ensure that "Adobe Flash Player" is Enabled. You can also go to chrome://components/ to ensure that it is updated. If you still have problems go to "Your Root"\Users\"Your UserName"\AppData\Local\Google\Chrome\User Data\PepperFlash\"Version Number"\ Then rename the pepflashplayer.dll to pepflashplayerX.dll.

5
  • since chrome should play swf files naturally, this is the best answer for the original question without the need for workarounds.
    – Chris J
    Mar 14, 2017 at 9:27
  • 14
    This no longer works. Try go to chrome://plugins/ - it was removed in recent versions. It's causing total hell for Flash developers enabling content on client machines. Thanks Google!
    – 1owk3y
    Jun 7, 2017 at 5:09
  • 1
    Where is the new chrome://plugins? Has they been moved to chrome://settings??
    – Pacerier
    Nov 9, 2017 at 21:14
  • 1
    @Pacerier There is no "new" version of that page -- it's been removed, as Google Chrome no longer uses plugins.
    – user89623
    Apr 25, 2018 at 8:32
  • chrome://settings/content/flash
    – Abhi
    Apr 6, 2020 at 13:35
88

I had created a file flash.html with this content:

<object>
    <embed src="file.swf" width="100%" height="100%"></embed>
</object>

Then opened the file in Chrome.

Otherwise when I was dragging an swf file to Chrome, it was just downloading the file.

1
5

Catttdaddy's answer is basically correct, but with Chrome version 57 and later, plugins are deprecated (for more information, see this) and you may need to enable Flash in another way, via Chrome Settings. Without it enabled, the file will be downloaded instead of opened. To enable Flash in Chrome:

  • Enter the URL chrome://settings/
  • Search for "Flash"
  • Under Privacy, click "Content Settings"
  • Under Flash, choose option "Allow sites to run flash"

You may want to change that back to your original setting for security or other reasons after you've opened the SWF file.

1
  • 3
    For me it wasn't enough to just tick "Allow sites to run flash". In fact, it was ticked and yet flash was downloaded and not played. I had to untick "Ask first" right below it - that solved the problem. Jul 23, 2017 at 23:06
4

For Linux users having this issue I have created the following script as a workaround:

Before proceeding, you must make sure that pepper-flash is installed for Chrome/Chromium, (flashplugin for Firefox) the only way to check (without using the workaround below that is) is to play a flash file on the internet. (or in Firefox, go to about:plugins and see if it has "Shockwave Flash")

#!/bin/bash
if [ -z $1 ]; then
   swf=$(ls *.swf | tail -1)
else
   swf=$@
fi


html=$(echo $swf | sed 's:swf:html:g')
echo '<embed src='$swf 'width="100%" height="100%"></embed>' | sed 's:src=:src=":g' | sed 's:swf:swf":g' > "$html"

#chromium "$html" && sleep 20 && rm "$html"
#google-chrome "$html" && sleep 20 && rm "$html"
#firefox about:config & wmctrl -xa firefox && sleep 0.2 && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"

(alternatively compatible with dash)

To use the script, save it as swftohtml.sh(can be any name, does not have to end in .sh) at any location you desire, then to convert it into a runnable command either make an alias for it in bashrc, or copy it to /usr/bin/. Remember to run chmod +x swftohtml.sh to make it executable.

The script when run with no arguments will look in the current folder for an swf file and make a corresponding html file that can be used to run this swf file in a browser. If there are more than 1 swf files in the folder, it will default to the last one (e.g. if you have filename1.0.swf and filename2.0.swf, it will default to filename2.0.swf)

Alternatively to target a specific swf file, you can enter the filename (or complete path to file) as an argument for the script and it will use that instead. (e.g. swftohtml.sh filename 1.0.swf)

If you want to fully automate the script:

To open swf files automatically in your browser and automate removal of the resulting html file after it has been used, uncomment one of the following lines at the bottom of the script (depending on your browser):

#chromium "$html" && sleep 20 && rm "$html"
#google-chrome "$html" && sleep 20 && rm "$html"
#firefox about:config & wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"

The script will now open the html file in your browser as soon as it has been created. If there is an existing instance of your browser running, it will delete the html file in 20 seconds (giving you ample time to tell the browser to open the file with it's flash plugin). If there is no existing instance of your browser, the file will instead be deleted 20 seconds after the browser is closed.

With this set, you can configure SWF files to open with the script, and the process is now fully automated so that you can open SWF files directly, without ever worrying about creating (or deleting) the html files by hand, in other words, it will behave like it should now. (Keep in mind that there may be a few corner cases where the html file is not deleted though, when this happens you can safely ignore it.)

For Firefox Users:

The Firefox version was a bit trickier, it requires wmctrl and xdotool to be installed. The reason for this is that for firefox to play local swf files this way you need to disable plugins.http_https_only in about:config, the script automatically disables it, opens the flash file, then re-enables it, because this is a setting most people will generally want to keep enabled. The browser needs to be open before the command is run. If you think it is likely your firefox browser will be closed when you run the command, replace the line with this:

firefox about:config & sleep 1 && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && firefox "$html" && firefox about:config && wmctrl -xa firefox && sleep 0.2 && xdotool key Return && xdotool type plugins.http && sleep 1 && xdotool key Tab && xdotool key Down && xdotool key Return && xdotool key Control+w && sleep 20 && rm "$html"

It will now give the browser 1 second to launch before running the rest of the script. (May need to be adjusted for slower computers).

The Firefox version of the script will always delete the file after 20 seconds.

Performance testing:

I did some rudimentary performance testing and these are my results:

  • Chrome/Chromium Pepper Flash (PPAPI): Fastest
  • Adobe Flash Projector (NPAPI)(Wine): Fast
  • Firefox Flashplugin (NPAPI): Slowest

As for stability, there are corner cases where PPAPI will run into bugs/errors that NPAPI does not, but they are rare.

The performance between Pepper Flash and Flash Projector was rather small (It's noticable, but barely) whereas the performance of the firefox flash plugin was noticably slower than the rest for some reason.

Thus, if playing flash games is the goal, I would recommend using chromium with pepper flash installed over the rest, in general. For other tasks it's unlikely that it will matter.

2
  • It says to me Adobe Flash Player is Blocked :( but thank you for the script anyway!
    – Kostanos
    Oct 22, 2020 at 11:32
  • @Kostanos you might have to configure your settings, Flash is disabled by default, you need to allow it in your chrome settings, go to site settings, flash, and make sure it isn't blocked. At least on chrome. On firefox you need to make sure you have the flash plugin installed in the first place I think. Anyhow on chrome flash is gonna be permanently disabled starting in december, so even if this should still work now, it might not work anymore in 2 months, at least for chrome.
    – Cestarian
    Oct 24, 2020 at 0:17
3

You can play .swf files with Google Chrome. Just drag the file from its current location to your current tab.

3
  • 1
    How can it be done from the command-line? The command google-chrome myfile.swf wants to download it.
    – pts
    Jan 25, 2016 at 9:33
  • This solved it for me: superuser.com/a/783451/19956
    – pts
    Jan 25, 2016 at 9:36
  • 11
    Doesn't work because it keeps downloading the file instead.
    – Hedylove
    Sep 3, 2017 at 22:57
0

Unless mistaken, you need the plugin to play SWF files as the SWF requires the actionscript library's to function.

3

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .