Add Albanian source which has Albanian subtitles embedded #409
Labels
No labels
MediaFlow Proxy
autorelease: pending
autorelease: tagged
bug
documentation
duplicate
enhancement
help wanted
invalid
question
wontfix
🇩🇪 German
🇫🇷 French
🇮🇳 Indian
🇸🇦 Arabic
🌐 Multi
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: Creepso/webstreamr-github#409
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Hi
Can you add Albanian source which has movies in english language but with hadcoded Albanian subtitles?
It has voe and dodo stream which you already implemented
Site1
Site2
The Albanian community would be very greatful if you include those sites :)
So I've done some research
For example the link of the movie
Format(movie-name-year-me-titra-shqip)
You have to click "playbtm"
after shows
The iframe class holds the link class="metaframe rptss"
The final link are
https://chuckle-tube.com/e/esmkmukvojwf
and redirects to this final playable direct
https://jilliandescribecompany.com/e/esmkmukvojwf
Movie page URL format:
The “Play” button (class="playbtm") triggers the Dooplay player (id="dooplay_player_response").
Inside dooplay_player_response, there’s an iframe with:
That chuckle-tube.com link redirects to the final playable at jilliandescribecompany.com.
Can you help to convert this to code? And create the Kokoshka.ts :D
the jiliandescribecompany thingy is Voe which is supported via MediaFlow proxy. not sure how to get the chuckle-tube iframe link without clicking basically. if you could do a bit more research in that way, that would be great. e.g. it might be via ajax or it might be somewhere on the page. if it's obfuscated JS then it might be tricky, hard to say
well, it's your lucky day. looks like the page embeds some id, 159968 in this case and clicking triggers an ajax request like this
GET https://domain/wp-json/dooplayer/v2/159968/movie/1
and that returns
so at least the embed resolve stuff should be doable I think.
maybe check how it works for series and also if tmdb or imdb search is working, if not we have to fall back to text search. then it would be interesting if english or albanian titles are used. that would help greatly and then I can add it easily I think
dsvcom is doodstream btw, so the second server should basically work too
I can see tmdb everywhere on the page source but I dont know if he is using only for images or something else...
Anyway the movie tittles are always in English.
Add it in a new section(country code) AL (Albania). We are a small country in europe(still not an EU member lol, but soon :D)
Yes both you already have the scrappers.
Please add these as are the only two working sites that providate movies with albanian subtitles :)
Let me know if I can help you more(as I'm not an expert just trying)
Also series use the same sources.
And titles are in english too
Same thing on serials
https://xxxx/wp-json/dooplayer/v2/160437/tv/1
I'm also on Europe, I know Albania :)
BTW if you're motivated, you could try to add those sites also to https://fmhy.net/non-english. Might help others.
I think I can add them soon here. Just a bit short on time..
Good to know :). Yeah Albania now is better known by all Europe, cheap prices and beautiful beaches. You should definitly visit.
I will surely do. Good list on there, will help me too lol.
I tried to do my self using chatgpt because I have some small knowlodge how programming works(I'm better in C#) but I failed...
I'm more into infrastructures and thing like that and less into programming.
All the idea is that the button click needs to be triggered to get the final link I guess.
Let's hope you will find the time to add for us :)
p.s
The data-post id shows before clicking the play button so I think it might be easy to do it
Load html
Get the post-data number and post-data type(because based on this we can validate if it is a movie or series
<li id="player-option-trailer" class="dooplay_player_option" **data-post="159968"** data-type="movie" data-nume="trailer"><i class="fas fa-play-circle"></i><span class="title">Shiko Trailerin</span><span class="server">youtube.com</span><span class="flag"><i class="yt fab fa-youtube"></i></span><span class="loader"></span></li>Fetch the final link(https://xxxxxx/wp-json/dooplayer/v2/159968/movie/1)
Format final link({"embed_url":"https://chuckle-tube.com/e/esmkmukvojwf","type":"iframe"})
yes, relax a bit :) I basically found that out in https://github.com/webstreamr/webstreamr/issues/409#issuecomment-3386004097 but didn't look at any further details yet. but I also think it should be easy now
Yes but before I thought that you need to click(simulate) the play button to get that data-post number but today I realised that is not nessecary.
I just got a working result (but assuming that I know the direct movie link)
Check it out my idea
https://github.com/GLlgGL/Mamma/blob/main/Kokoshka.ts
What I have to find out is how to do the search and get the full link of the movie based on the movie I click on stremio...Can you help with that?
I was able to implement direct search formating the result from tmdb to mach the movie format on the website.
https://github.com/GLlgGL/Mamma/blob/main/Kokoshka.ts
I have to implement the series part now which might be more difficult I guess...
I am looking also at dsvcom(doodstream) but it seems that the play buttun needs to be clicked I guess...
Do you have any tips for that?
I'll add your sites in the next couple of days. Please don't push this so much. I appreciate you finding out more and trying to implement it though.
I will wait for you of course...
I just added the movie part as I am tired to go to that website and open a ton of ads...Also I am trying to learn a bit
Now I am curious how to get the dodostream
Thanx because you pointed me to the right direction with the voe part...
The good part is that the site doesnt have any protection and it works via vercel deployment where I can test and learn
I also found the hint for dodostream.
what is changing is only one number
for movies
dooplayer/v2/160601/movie/1 = voe
dooplayer/v2/160601/movie/2 = dodostream
for series
dooplayer/v2/160437/tv/1 = voe
dooplayer/v2/160437/tv/2 = dodostream
p.s if you can please remove(or hide) the main domain name on comment 409 because is better not exposing this info in this way it will last longer
Trying to get from dodo but don't know why it shows 0 results
`
13 Total
2025-10-14T07:44:27.060Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Search stream for type "movie" and id "tt31909270" for ip xxxxxxxxx
2025-10-14T07:44:27.083Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Fetch GET https://api.themoviedb.org/3/find/tt31909270?external_source=imdb_id
2025-10-14T07:44:27.136Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Got 200 (OK) for https://api.themoviedb.org/3/find/tt31909270?external_source=imdb_id
2025-10-14T07:44:27.156Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Fetch GET https://api.themoviedb.org/3/movie/1265344
2025-10-14T07:44:27.174Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Got 200 (OK) for https://api.themoviedb.org/3/movie/1265344
2025-10-14T07:44:27.178Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Fetch GET https://kokoshka.digital/filma/swiped-2025-me-titra-shqip/
2025-10-14T07:44:27.613Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Got 200 (OK) for https://kokoshka.digital/filma/swiped-2025-me-titra-shqip/
2025-10-14T07:44:27.654Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Fetch GET https://kokoshka.digital/wp-json/dooplayer/v2/159078/movie/2
2025-10-14T07:44:27.757Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Got 200 (OK) for https://kokoshka.digital/wp-json/dooplayer/v2/159078/movie/2
2025-10-14T07:44:27.763Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Extract https://dsvplay.com/e/299oh2qqklbm using doodstream extractor
2025-10-14T07:44:27.765Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Fetch GET http://dood.to/e/299oh2qqklbm with referer https://kokoshka.digital
2025-10-14T07:44:28.109Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Got 200 (OK) for http://dood.to/e/299oh2qqklbm
2025-10-14T07:44:28.114Z [32minfo[39m d8cd5f8d-c3f3-4ad4-aff0-362fe2fea62f: Got 0 url results, including 0 errors`
It seems that is doesn't detect the md5 hash part to get the final link?
There is a JS I think that is generated client side which after generates the md5 hash because I am able to see it on the logger I'm using
The hash and token is generated on fly
" $.get('/pass_md5/226939325-95-107-1760426069-6d7a7d7129270bad43792ed6a4efe105/a2kt6adzla0zt1c66cc36ssm', function(data) {
dpload(data);
dsplayer.src({
type: "video/mp4",
src: data + makePlay()
});
dsplayer.removeClass("vjs-waiting");
});
dsplayer.on('error', function() {
errMsg();
var error = this.player().error();
var sentPE = !1;
if (!sentPE) {
$.get("/?op=player_error&token=a2kt6adzla0zt1c66cc36ssm&error_code=" + error.code);
sendGA('player_error', '' + error.message + '-a2kt6adzla0zt1c66cc36ssm');
sentPE = !0
}
});
function StartPlay() {
var adb = 0;
if (hab() || window.googleAd === undefined) {
adb = 1;
}
$.get("/dood?op=watch&hash=226939325-95-107-1760426069-6d7a7d7129270bad43792ed6a4efe105&token=a2kt6adzla0zt1c66cc36ssm&embed=" + oemb + "&ref2=" + encodeURIComponent(oref) + "&adb=" + adb + "&ftor=" + oftor)
}
;function makePlay() {
for (var a = "", t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", n = t.length, o = 0; 10 > o; o++)
a += t.charAt(Math.floor(Math.random() * n));
return a + "?token=a2kt6adzla0zt1c66cc36ssm&expiry=" + Date.now();
}"
I tried to find a workaround but failed...The default dodo extractor class seems to not work by default and might need teaks for this...
Doodstream extractor exists and is working via https://github.com/webstreamr/webstreamr/blob/main/src/extractor/DoodStream.ts
but doodstream is a bit crappy when it comes to some ips, e.g. on my oracle vps I would never get the md5_hash, it's just missing. also not working via cloudflare warp proxy. I had to configure another proxy. that might be the issue you're facing now. it will work on the public instance, if you configure a (different) proxy for dood.to or if you e.g. run it directly from your home ip normally.
Hmm... you are right because I added other sources where they work on public instance for dodo and on vercel not working...
I will leave it to you than for dodo and see it working on public instance...
I will try to add voe for series which it seems a bit trickier for me...
if you have any tips or steps based on that page let m know...Maybe in this way I don't spend alot of time finding the best way :)
Also for the movies the best way I think is to use the search on the website by title and year and get the first result through html for the movie link because directly matching the tmdb title and year to build the movie link will not always work because the owner of the website has changed movie titles...
for ex.
on tmdb or imdb
Avatar: The Way of Water (2022)
On the website
Avatar 2: The Way of Water (2022)
The path of the movie link on the website
avatar-2-the-way-of-water-2022
I fixed this and is working just fine...
I was able to include series too...
There was also a catch...Depending on the movie the server type is scrambled between server 1 and server 2.
For example on a movie server 1 might be voe and on another movie server 1 might be dodo.
Seeing that i cant test dodo for the moment as for the ip problem i added a fallback that checks if the first server is not voe skip to the second server...
But the best way in a later time should be to detect the server(source type) and based on that use the scraper to get the final playable link...
On old movies for example i saw that the website used even other sources...
There is also another website which I will look next if we can also scrap that out...
Do you want me to share the full code so you ron't waste to much time starting from begining?
The code is fully working and maybe you can directly add it. In this way we can use it in public instance
Sure, you can share it or open a PR with what you have. I can finish it. Failing tests don't matter
I did a PR, just check it if I did it good lol as I'm not 100% familiar with it :)
Relax a bit :) and let's keep this open until it lands on develop
I thought we can discuss directly to the pull request area now :)
Anyway you are right because we still didin't start with the second website yet.
I will try to take a look today...
Anyway the first site(kokoshka) is more important because is updated more frequently and has human translated subtitles, the second site uses both human and non human(AI) generated subtitles on some movies.
So we should use on series same strategy as on movies where we build the episodes link based on the html of the main serie page(main) in this way we get always the right link even if the author of the website has used a different title from the original one...
I will try to fix that too before geting hands on the second website.
Find link on the html page = 100% success ratio
Building link from tmdb(like title+season nr+episodes number) = less success ratio because the "title" is different between tmdb and title on the website.
Do you have a proxy and tell how to use it fixed this part too.
Now what is left is the test for dodo stream.
Can you do a test with my code? Or tell
me where to find a proxy to test it?
I am too lazy to host it localy lol...
somebody shared https://www.webshare.io/ with me once and I'm using one from there for dood.to. as in I start webstreamr with smth like
PROXY_CONFIG=dood.to:http://USERNAME:PASSWORD@IP:PORT,*:socks5://172.17.0.1:1080which makes it use that proxy for doodstream only and a local warp for the restIt works........wow
Don't be mad but I will open another new issue :)
And I think you can close this now :)
The second site is more dificcult because it has the titles in Albanian language and also it's using that for the movie link...
There's one more thing you can help me with here - can you share some tmdb ids which should give results? I'm only interested in a couple of edge cases which trigger the code you had to add to make them work. I'll add them to tests later to avoid regressions
The only I can find was the TV Series "Monster".
https://m.imdb.com/title/tt13207736/?ref_=fn_all_ttl_1
https://www.themoviedb.org/tv/286801-monster-ed-gein
As I said earlier using imdb id to find the series on the tmdb wasnt working neither in your public instance nor in my code...
Also as you can see on both links the name is different, also the year.
No, sorry, you misunderstood me. I meant to ask if you can share some generic examples to test your current code and it's edge cases with. I would otherwise just choose any movie and show for my tests. But I'm sure you know of better ones. E.g. I saw that you're cleaning up the title in a specific way - was there a specific title that makes sense to test with? Those tmdb ids would be useful :)
Ah.
The formating that I did on the title or on the links of the series episode or even on the final link like for dodo was nesecary because
1- Title on some cases on tmdb has : symbols, if i not remove it before searching on the website it will give 0 result.(one example is series "Dexter: Resurrection"
2- On series episode there are some cases where search would give more than one result and I take care that the link has the /seriale on it in to eleminate movies results.
3- On a lot of movies the dodo stream used was with old dodo domain which if we dont change the domain it will
not give result, if we change to a working fomain and keep the id after the links work good(one example is the the movie "Weapons" year 2025)
My code now is near perfection.
Anyway I would be very happy to test your final code after you push it to public instance and I will try all rare cases if there is any problem.
yes, I'll keep you in the loop. I think I'll be able to do it this week, I'll not leave it hanging around for too long. just give me a bit more time please. I don't have too much of it right now unfortunately :) today I want to improve the imdb/tmdb mismatch situation slightly and add a manual workaround for the Ed Gein Monster series. your PR is next
What happened with the PR? I see failed the test and was closed...
By the way the second site is more difficult matching the titles as the website is using mixed titles in some movies are in english and in some are on Albanian language(not well translated). The search function on the website is very sensitive...
for example
The movie "Weapons" is written as "Armatime" in the second website
In the tmdb translation(albanian language of the title exists as "Arme"
If you search "Arme" on the website gives 0 results or other movies(not the correct one) because it expects the word "Armatime".
So even guessing(searching with Contains will not have a good success ratio)...Link of the movie has /armatime-2 at the end lol whih make it also difficult to build it based on title and not getting it directly from the html.
Movie link
Movie
Tmdb link of the movie
https://api.themoviedb.org/3/movie/1078605?api_key=xxxxxxxxxxx&append_to_response=translations
So for me it seems very difficult to match and find the movie link. When you take a look let me know if you find any workaround or idea...
Please when you have time take a look also at this second website because there are movies that only here exist.
Also this website has 4 sources for each movie which is a good thing
I tried today to be able to get the final link from embeded link but I failed.
Give me some hints because I'm curious.
What I am able to find is that they embed like this and there is an iframe which holds the final links
Movie link
Movie
Embed
https://filemoon.to/e/hv2wmfdx6vea/Stolen_Girl_2025
Embed
https://listeamed.net/e/8lKQxYpmjvX5DGY/Stolen.Girl.2025.mp4
Embed
https://voe.sx/e/0ovunvwqhu7i
Embed
Final
The last one is playable on the embed link but not on final link(don't understand what provider might be)
I stuck on the part on how to get that iframe link(i'm failing) because I was able to get the embed link.
As you can see this website use alot that VidGuard provider...
I as finaly able to catch them
Filemoon
Voe
And one as external link
What missing is the VidGuard as the extractoe is missing
OK, cool. You can share code when you're ready. I'll look at vidguard on the main branch when I have time
Here, its prety basic for the moment, using a direct movie link only and get the embed url and the final link(only for
movie)
0f4f195c3b/src/source/Filma365.tsThe problem I have is on the search query now
I was not able to find how to search for the movie
I tried with /?s= but doesnt work. I think might have the search dynamicly loading maybe using js or something. It's using something called live wire I guess.
If you help with that will make us move forward faster
I gave up on the search part because I failed...
what I found is that the important link is this
Livewire
But maybe the problem is in the token or something(in the cookie)
I get 405 Method Not Allowed
"g6IWyfXlP4EcPEvlHQbf4WlFUDw0N7c4QSXKS7O6"`
Help... please... I'm stuck
I think it will be difficult to have good success ratio because the second website has started to upload the movies with Albanian subtitles(not perfectly translated). This means it's impossible to match the movies. The owner started to be clever lol...
I updated my code where I am building the link directly from title also the series and I dont think is nesecary to implement native search as the title that are in english are same as those on tmdb
I'm gona PR what I have...if you see it reasonable and have time to deal with it and make it more perfect ok, otherwise just leave it(don't add it as source)...